本文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. WEB一周总结(1)待补充

    1.网页设计作业--小组介绍 图片来自https://weibo.com/hxLMo?sudaref=www.baidu.com&display=0&retcode=6102 2.WE ...

  2. POJ 3911:Internet Service Providers

    Internet Service Providers Time Limit: 2MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I ...

  3. Java执行js加密算法

    Java执行js加密算法 今日需求:在后端执行一段加密算法,算法是js写的 明白需求以后疯狂百度.最后发现JDK提供了各种脚本的支持(怪笔者学艺不精,第一次见识到这个库,留下不学无术的泪水),正题开始 ...

  4. 新浪SAE云平台下使用codeigniter的数据库配置

    新浪SAE云平台下使用codeigniter的数据库配置 投稿:shichen2014 字体:[增加 减小] 类型:转载 这篇文章主要介绍了新浪SAE云平台下使用codeigniter的数据库配置,主 ...

  5. Java并发分析—volatile

    在https://www.cnblogs.com/xyzyj/p/11148497.html中已经说明了在多线程并发的情况下,会出现数据的不一致问题,但归根结底就是一个原因,在宏观上就是线程的执行顺序 ...

  6. UML-架构分析-架构原则

    1.高内聚 2.低耦合 3.防止变异(间接性等) 4.关注点分离 方法1: 事物模块化,封装到单独的子系统中 方法2: 装饰者模式 方法3: 面向方面(AOP)

  7. LNMP安装问题

    查什么占用了端口   netstat -nlp |grep :80 root@zzx:/usr/local/mysql# netstat -nlp |grep :80tcp        0      ...

  8. OpenMP笔记(六)

    OpenMP有三种常见的加锁操作: critical是OpenMP的指令,它规定其后的代码为临界块,任何时候只允许一个线程访问: omp_set_lock是OpenMP的库函数,要跟omp_unset ...

  9. symmetry methods for differential equations,exercise 1.4

    tex文档: \documentclass[a4paper, 12pt]{article} % Font size (can be 10pt, 11pt or 12pt) and paper size ...

  10. 35. docker swarm dockerStack 部署 投票应用

    1. 编写 docker-compose.yml # docker-compose.yml version: "3" services: redis: image: redis:a ...