本文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. map构造同时初始化

    Map<String, Object> mtest =  new HashMap<String, Object>(){{put("test","M ...

  2. spring_mybatis :整合

    第一步:导入相关架包(使用maven构建项目) 在pom.xml文件中导入相关依赖 1.Junit测试架包 <dependency> <groupId>junit</gr ...

  3. [DDCTF 2019]homebrew event loop

    0x00 知识点 逻辑漏洞: 异步处理导致可以先调用增加钻石,再调用计算价钱的.也就是先货后款. eval函数存在注入,可以通过#注释,我们可以传入路由action:eval#;arg1#arg2#a ...

  4. 一个例子搞清楚Java程序执行顺序

    当我们new一个GirlFriend时,我们都做了什么? 一个例子搞懂Java程序运行顺序 public class Girl { Person person = new Person("G ...

  5. 关于Java中内省的总结

    内省基于JavaBean规范对反射进行了封装,提供了更加便捷的通过getter/setter方法来访问字段的方式 Java内省的知识结构图 JavaBean的规范 JavaBean在现在可以认为就是普 ...

  6. C++中substr()详解

    #include<string> #include<iostream> using namespace std; int main() { string s("123 ...

  7. 112.限制请求的method装饰器

    客户端与服务器之间最常用的两种请求方式: 1. GET请求一般是用来向服务器索取数据,但不会向服务器提交数据,不会对服务器的状态进行更改. 2.POST请求一般是用来向服务器提交数据,会对服务器的状态 ...

  8. maven项目集成Quartz定时任务框架,实现批处理功能

    一.Quartz简介 主要做定时任务,即:在指定时间点或时间段,执行某项任务,可设置执行次数.时间间隔等. 二.Springcloud简介 对比传统的.庞大的.复杂的.以ssm或ssh为框架的web项 ...

  9. 步进电机加减速S曲线算法

    一.Sigmoid 函数 1.1 Sigmoid函数原型 1.2 sigmoid函数波形: 由图形可看出在-10时已经接近于0,一般取值区间在[-5,5]. 1.3 sigmoid函数的导数 转载CS ...

  10. opencv matchTemplate函数用法

    模板匹配函数,就是在一幅图中,找到另外一幅的在本图的相似的地方 CV_EXPORTS_W void matchTemplate( InputArray image, InputArray templ, ...