本文python脚本实现自动化安装是源码安装。实现任意版本安装,默认版本是1.13.11,也可以更改默认版本,手动配置安装目录。

环境:Ubuntu16.04,python3以上版本,Ubuntu自带python3.5.

下面是完整的代码实现:

#导入 os,sys模块

import os,sys

#检查用户是否是root

if os.getuid() != 0:

print("当前用户不是root,请以root身份执行脚本")

sys.exit(1)

# 版本号的选择

# http://nginx.org/download/nginx-1.13.11.tar.gz

def_var = '1.13.11'

var = input('请输入版本(默认{}):'.format(def_var))

var = var or def_var

# 安装目录的配置

def_path = '/usr/local/nginx'

path = input('请输入安装目录(默认{}):'.format(def_path))

path = path or def_path

# 如果存在同名文件先删除

if os.path.exists('nginx-{}.tar.gz'.format(var)):

os.remove('nginx-{}.tar.gz'.format(var))

# 下载源码包

url = 'http://nginx.org/download/nginx-{}.tar.gz'

cmd = 'wget ' + url.format(var)

res = os.system(cmd)

if res != 0:

print('下载失败')

sys.exit(1)

# 解压

cmd = 'tar -zxf nginx-{}.tar.gz'.format(var)

if os.system(cmd) != 0:

print('解压失败')

sys.exit(1)

# 安装依赖

cmd = 'apt install -y gcc make libpcre3-dev zlib1g-dev openssl libssl-dev'

if os.system(cmd) != 0:

print('安装依赖失败')

sys.exit(1)

# 配置

cmd='cd nginx-{} && ./configure --prefix=/usr/local/nginx --with-http_ssl_module'.format(var)

if os.system(cmd) != 0:

print('配置失败')

sys.exit(1)

# 编译

cmd='cd nginx-{} && make && make install'.format(var)

if os.system(cmd) != 0:

print('编译失败')

sys.exit(1)

print('安装成功')

python脚本实现自动安装nginx的更多相关文章

  1. python第三方库自动安装脚本

    #python第三方库自动安装脚本,需要在cmd中运行此脚本#BatchInstall.pyimport oslibs = {"numpy","matplotlib&qu ...

  2. LNMP一键安装包-CentOS/Ubuntu/Debian自动安装Nginx,MySQL,PHP

    适用环境: 系统支持:CentOS.Ubuntu.Debian 内存要求:≥128M 安装了什么: 1.Nginx-1.2.1 2.MySQL 5.5.25 3.PHP 5.2.17或PHP 5.3. ...

  3. python脚本-开机自动联网

    办公室的电脑开机之后,需要打开浏览器登录校园用户认证网页,输入用户名密码登录认证之后才能联网,每次都这样搞很麻烦,写了个Python脚本自动完成这个工作. onStartup.py #file:onS ...

  4. Zabbix之Python脚本端口自动发现

    Zabbix监控服务端口,可以手动添加配置,但是如果一个服务器上需要监控的端口数较多,那么利用Zabbix自动发现,比较高效,下面是自动发现port的Python脚本. #!/usr/bin/pyth ...

  5. python脚本实现自动保留ctime最近的几个文件

    使用了给字典排序的sorted方法 #!/usr/bin/env python # coding:utf-8 import os def rm_backup(rm_path,days): files_ ...

  6. python脚本-实现自动按规则创建指定大小和指定个数的文件案例

    # -*- coding: cp936 -*-#---------------------------------------------------------------------------- ...

  7. 【Linux】apt-get install 怎么阻止弹出框,使用脚本默认自动安装?

    You can do a couple of things for avoiding this. Setting the DEBIAN_FRONTEND variable to noninteract ...

  8. 用vim写python脚本的自动缩进格式设置

  9. nginx脚本自动安装

    nginx脚本自动安装 脚本功能: 自动安装nginx 自动判别系统是否安装nginx 自定义安装nginx路径 自定义安装nginx版本. #!/bin/bash #2019年10月30日16:00 ...

随机推荐

  1. 浅谈__slots__

    __slots__在python中是扮演属性声明(Attribute Declaration)的角色,当然属性本身不用声明,只需要在使用前赋值即可,但是实际上,属性的应用远非在使用前赋值就行,所以有a ...

  2. 201812-2 小明放学 Java

    思路: 红绿灯每种灯亮划分区间,在[0,r]区间内红灯亮,在(r,g+r]区间内绿灯亮,在(r+g,r+g+y]区间内黄灯亮,在划分好区间后只需要判断当小明到达红绿灯时是哪个灯在亮,就可以判断出通过红 ...

  3. quartz详解4:quartz线程管理

    http://blog.itpub.NET/11627468/viewspace-1766967/ quartz启动后有多个线程同时在跑.启动时会启动主线程.集群线程.检漏线程.工作线程.主线程负责查 ...

  4. JSON整理

    1.什么是JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 2.JSON基于两种结构: (1 )“名称/值“对的集合(A co ...

  5. JZOJ-2019-11-7 A组

    T1 Input 从文件 awesome.in 中读入数据. 第一行 2 个用空格隔开的整数 \(n\), \(P\). 第二行 n 个用空格隔开的整数 \(A_1, \cdots , A_n\). ...

  6. Causal Corpus 事件因果关系语料统计

    Causal Corpus 事件因果关系语料统计 本文是对因果关系抽取领域数据库标注及开源情况的统计.除了对因果关系的标注,一些类似的语料也包含在内,从而为语料的使用提供灵活性,可以根据不同的目标选取 ...

  7. php对象:__autoload()函数及单入口文件,__set(), __get(), get_class_methods(),get_class_vars()

    __autoload():当类中找不到相关类的时候,会自动执行__autoload()函数,可以自动加载相关文件 __set() : 当对类的私有变量进行调用赋值时,自动调用该方法.  __get() ...

  8. JavaScript—面向对象小例子

    什么是面向对象 要是以前别人问我.随口道来,封装继承多态,万物皆对象...一大推.说的自己都以为自己掌握了面向对象.呵呵一笑.确实掌握了 只是不会用..... 什么是面向对象编程 以前 学.Net 虽 ...

  9. zabbix几个配置的关系

  10. jquery 第一节 什么是jQuery

    简单来说,jQuery就是javascript的一个框架,也可以说是javascript的一个库.