本文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. HZNU-ACM寒假集训Day4小结 最短路

    最短路 1.Floy 复杂度O(N3)  适用于任何图(不存在负环) 模板 --kuangbin #include<iostream> #include<cstdio> #in ...

  2. 不同的二叉搜索树&II

    不同的二叉搜索树 只要求个数,递推根节点分割左右子树即可 class Solution { public int numTrees(int n) { int []dp=new int[n+1]; fo ...

  3. torch文档学习笔记

    下面为官方文档学习笔记    http://pytorch.org/docs/0.3.0/index.html 1.torch.Tensor from __future__ import print_ ...

  4. 监听配置问题,SID与Service_Name区别

    监听配置问题,SID与Service_Name区别 1.数据库实例名SID 概念:数据库实例名用于和操作系统进行联系的标识,是数据库和操作系统之间的交互用的书数据库实例名.实例名也被写入参数文件中,该 ...

  5. MyBatis 关联查询的实现:多对多

    2个实体:订单.商品,一个订单可以包含多种商品,同时一种商品可以属于多个订单,即多对多. 商品表goods_tb: 订单表order_tb: no是订单编号,user_id与用户表的id关联. 需要新 ...

  6. VMware CentOS 设置IP地址

    VMware CentOS 设置IP地址 1. 设置虚拟机网络编辑器:参考:https://www.cnblogs.com/1285026182YUAN/p/10440443.html 2. Cent ...

  7. 4)栈和队列-->受限线性表

    栈和队列叫  受限线性表  只不过他们插入和删除的位置  相对于之前的线性表有了限制   所以叫受限线性表 1)栈-->就是先进后出 2)队列-->先进先出 3)循环链表框图: 4)队列

  8. SQL基础教程(第2版)第6章 函数、谓词、CASE表达式:6-1 函数

    6-1 各种各样的函数 ● 函数的种类很多,无需全都记住,只需要记住具有代表性的函数就可以了,其他的可以在使用时再进行查询. ■函数的种类所谓函数,就是输入某一值得到相应输出结果的功能,输入值称为参数 ...

  9. Odd sum (对本菜鸡来说是个极坑题)

    https://codeforces.com/problemset/problem/797/B time limit per test 1 second memory limit per test 2 ...

  10. MySQL--Centos7下安装5.7.19

    https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html https://segmentfault.com/a/11900000 ...