python服务器环境搭建——安装相关软件
在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务、自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行,一般来说,想要实现自动化部署需求,还需要安装nginx、svn、uwsgi、python3.0(系统自带python2.7.5)、supervisor、postgresql、pgbouncer、redis(nosql缓存根据自己代码的需要而定)。
PS:本人不是专业的运维,只能根据自己的研究弄弄单机版的python web服务器,而对于多服务器自动化同步的部署、服务器的监控、Linux服务器的安全、服务器的调优(很多服务安装不是重点,能将各种参数运用配置到洽到好处才是难点),大家最好找专业的运维工程师来处理。再一次感谢小戴同学的尽心帮助,让我学会了很多服务器运维方面的知识,才有这篇文章。(在这里帮小戴做做广告:人品好、技术牛、外包费用低,我们公司服务器维护外包给了他,配置各种服务器非常快,想学python与自动化运维的可以上他的博客http://www.linuxyw.com/)
一、nginx安装
首先登录官网下载安装包:
http://nginx.org/en/download.html
复制下载地址:http://nginx.org/download/nginx-1.10.3.tar.gz
打开SSH Secure Shell Client,登录服务
nginx安装,需要安装pcre开发包,openssl,gcc编译源码所需的工具,zlib库,网络下载工具等
可以逐项直接输入下面命令进行安装(如果出现y/n/d选择时,输入y加回车就可以了)
yum install -y pcre-devel
yum install -y openssl openssl-devel
yum install gcc gcc-c++ ncurses-devel perl -y
yum -y install zlib zlib-devel -y
yum install wget -y
yum install kernel-devel libxslt-devel libpqxx-devel libffi-devel python-devel zlib-devel openssl-devel libpq-dev -y
为了方便下载内容的管理,而不是将服务器里的文件搞的很乱,我们最好统一将文件下载到tmp文件夹或你自己指定的文件夹里
输入:cd /tmp/ 进入tmp文件夹
然后再次输入:wget http://nginx.org/download/nginx-1.10.3.tar.gz 就可以看到nginx很快下载下来了
然后我们对nginx-1.10.3.tar.gz进行解压缩操作
输入命令:tar -zxvf nginx-1.10.3.tar.gz
解压完后输入命令:ll 就会看到文件夹里多了一个 nginx-1.10.3 文件夹
然后进入这个文件夹进行安装,安装时不指定路径的话,会默认安装到/usr/local/nginx/这个路径下
添加nginx使用的用户组:groupadd www
添加nginx使用的帐号:useradd -g www www -s /bin/false
输入命令:cd nginx-1.10.3
输入nginx安装命令:./configure && make && make install (这是默认安装,如果你想要附加nginx的相关插件的话--比如pcre、zlib等,需要另外安装其他包,并在这里进行编译)
完成nginx安装后,我们可以检查一下nginx能否正常启动
输入nginx初次启动命令:/usr/local/nginx/sbin/nginx
检查nginx是否在进程中:ps -ef | grep nginx (可以看到nginx已在服务器上正常 运行了)
检查nginx启动后点用的端口:netstat -antup | grep nginx
这时如果想要用浏览器访问的话,需要先关闭防火墙才行
输入命令:systemctl stop firewalld
然后打开浏览器,输入地址:http://192.168.0.128/ 就可以看到下面的页面了(这个ip怎么来的,请看上一篇《python服务器环境搭建(1)——本地服务器准备》,也可以输入ifconfig命令来查询)
二、安装supervisor(Python进程管理器)
因为supervisor目前只支持python2,所以得在升级到3之前进行安装,不然会比较麻烦(文后附有升级到python3后,怎么调用python2安装的说明)
安装之前需要先安装python的pip(程序自动安装程序)
输入命令:curl https://bootstrap.pypa.io/get-pip.py | python (回车后就会自动下载pip并自动安装)
完成后查看pip版本:pip -V
安装supervisor:pip install supervisor
三、安装postgresql
登录postgresql官司网,获取使用yum安装的地址
在浏览器登录进入:https://yum.postgresql.org/
可以看到postgresql可以使用yum安装的列表
点击你要安装的版本链接,然后找到你要安装的版本地址,将它复制出来
https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
安装postgresql:yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
安装postgresql服务与扩展包:yum install postgresql96-server postgresql96-contrib (如果是其他版本,只需要修改中间对应的版本数字即可)
四、安装pgbouncer(postgresql连接池工具)
上官网选择需要安装的版本,并下载安装包:https://pgbouncer.github.io/downloads/
首先需要安装依赖包:yum install -y libevent-devel
进入tmp文件夹:cd /tmp/
然后再次输入:wget https://pgbouncer.github.io/downloads/files/1.7.2/pgbouncer-1.7.2.tar.gz
解压缩安装包:tar -zxvf pgbouncer-1.7.2.tar.gz
进入安装包文件夹:cd pgbouncer-1.7.2
执行安装命令:./configure && make && make install
五、安装redis
登录http://download.redis.io/releases/ 选择需要安装的版本
进入tmp文件夹:cd /tmp/
然后再次输入:wget http://download.redis.io/releases/redis-3.2.8.tar.gz
创建redis安装文件夹:mkdir /usr/local/redis
解压缩安装包:tar -zxvf redis-3.2.8.tar.gz
进入安装包文件夹:cd redis-3.2.8
执行安装命令:make PREFIX=/usr/local/redis/ install
上面安装命令执行完成,/usr/local/redis/目录下就有个bin目录,里面放的是redis服务相关的可执行命令
复制redis配置文件到指定目录:cp redis.conf /usr/local/redis
六、安装python3.5.2版本(python2.7.5还可以继续使用)
PS:由于升级到python3以后,在yum安装一些软件时(只是部分),可能这些软件的安装还是使用python2来写的,会导致无法使用yum安装,所以最好将相关内容先安装好以后再进行升级
首先还是登录官网,找到对应的下载链接
https://www.python.org/downloads/
点击进入下载页面
将下载地址复制出来:https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
输入:cd /tmp/ 进入tmp文件夹
然后输入命令下载源文件:wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
输入命令进行解压缩:tar -zxvf Python-3.5.2.tgz
进入解压后的文件夹:cd Python-3.5.2
安装Python3.5.2:./configure && make && make install
完成python3.5.2的安装,这时实现上在系统中,它和python2.7.5是同时存在的,现在直接操作python进入的还是旧版本(可以输入命令:python -V 查看当前的python版本),还需要做下面配置才行
输入命令重命名python软链接:mv /usr/bin/python /usr/bin/python2.7.5
创建新的链接指向新安装的python3.5.2:ln -s /usr/local/bin/python3.5 /usr/bin/python
这时再输入命令:python -V 就可以看到当前的python版本为3.5.2了
升级以后,由于python的版本不同,yum安装命令就失效用不了了,所以我们还需要修改yum的配置
输入命令:vi /usr/bin/yum
进入vi编辑器后,按一下键盘 i 就可以进入编辑模式,修改里面的内容
将第一行的#!/usr/bin/python 改为 #!/usr/bin/python2.7.5
修改完成后,按一下键盘的 Esc 键,退出编辑,然后按 Shift + : 进入vi编辑器的命令模式,输入wq + 回车键,就可以保存并退出了,这样yum命令又可以正常使用了
pip升级到最新版(由于有一些python3模块的安装需要用到pip的最新版,所以需要将pip升级到最新版本)
输入命令:pip3 install --upgrade pip
批量安装python依赖包:
输入命令:vi requirements.txt 粘贴下面内容

- argh
- asn1crypto
- Beaker
- beakeredis
- bleach
- bottle
- cffi
- click
- cryptography
- cycler
- gevent
- greenlet
- html5lib
- idna
- itsdangerous
- Jinja2
- jpush
- lxml
- MarkupSafe
- matplotlib
- numpy
- packaging
- paramiko
- pathtools
- Pillow
- psycopg2
- pyasn1
- pycparser
- pycrypto
- pyparsing
- python-dateutil
- pytz
- PyYAML
- redis
- reload
- requests
- six
- typing
- watchdog
- webencodings
- Werkzeug
- XlsxWriter

保存后,输入命令:pip3 install -r requirements.txt
安装程序会将里面常用的依赖包全部安装,方便快捷
七、安装uwsgi
输入安装命令:yum install uwsgi-plugin-python
输入安装命令:yum install uwsgi-plugin-python3
输入安装命令:pip3 install uwsgi
输入命令:uwsgi --version 就可以查询到安装的版本了
八、安装svn服务
由于已升级到python3了,直接使用yum安装会出现错误,所以我们需要操作一下,改回python2版本
删除之前创建的python3链接:rm /usr/bin/python
将之前备份的python2.7.5复制为python:cp /usr/bin/python2.7.5 /usr/bin/python
输入安装命令:yum install subversion
查看svn安装的版本:svnserve --version
另外,升级到python3以后,如果还需要使用pip安装python2的一些模块时,进行上面操作后,就可以使用下命令执行pip进行安装
pip命令:/usr/bin/pip2 install xxx
PS:一定要将python链接指向python2,不然执行的还是python3版本的命令
将python链接重新指向python3.5.2
删除刚刚复制的python链接:rm /usr/bin/python
创建新的链接指向新安装的python3.5.2:ln -s /usr/local/bin/python3.5 /usr/bin/python
python服务器需要的相关软件基本上就安装完成了(当然redis与postgresql并不是python服务器运行的必要软件,这是我自己框架所需要的),具体测试与配置,下一篇再写
版权声明:
本文由AllEmpty原创并发布于博客园,版权与博客园共同所有,欢迎转载,未经本人同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如有问题,可以通过1654937@qq.com 联系我,非常感谢。
原文链接:https://www.cnblogs.com/EmptyFS/p/6558800.html
python服务器环境搭建——安装相关软件的更多相关文章
- python服务器环境搭建(2)——安装相关软件
在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...
- python服务器环境搭建(1)——本地服务器准备
去年十月底到新公司上班,由于公司旧系统存在各种问题同时不便于扩展,而公司领导对17年寄予很大的期望,用户量.收入要上一个新台阶,我经过全面评估后,决定全部用python重构过,开发一个基于微服务架构的 ...
- python服务器环境搭建Flask,uwsgi和nginx
python服务器环境搭建Flask,uwsgi和nginx 环境配置 服务器配置 [部署系统环境Ubuntu] 使用python的Flask框架搭建好网页后台后,便要开始将网站部署到服务器平台了. ...
- python服务器环境搭建(3)——参数配置
前面我们已安装好了python服务器运行所需要的相关软件,而最重要最繁琐的就是参数配置,写这篇就踩了好多坑,花了好多时间,遇到了各种各样的问题.好了费话少说,直接进入本篇话题. PS:本人不是专业的运 ...
- python开发环境软件包安装相关 failed with error code 1 in /tmp/pip-build-vn_f_e1n/psutil/
指定源安装 pip install git+https://github.com/xxxxxx.git pip install -r requirements.txt -i https://mirro ...
- 【Python】部署上手App后端服务器 - Linux环境搭建安装Python、Tornado、SQLAlchemy
基于阿里云服务器端环境搭建 文章目录 基于阿里云服务器端环境搭建 配置开发环境 安装 Python 3.8.2 安装 Tornado 安装 MySQL 安装 mysqlclient 安装 SQLAlc ...
- LNAMP服务器环境搭建(手动编译安装)
LNAMP服务器环境搭建(手动编译安装) 一.准备材料 阿里云主机一台,操作系统CentOS 6.5 64位 lnamp.zip包(包含搭建环境所需要的所有软件) http://123.56.144. ...
- 阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装
阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装 最近琢磨着想在服务器上搭建一个hexo博客,于是就在阿里云上买了一个云服务器ECS,远程接入后默认给的是一个命令窗口,没有图形界面, ...
- 阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装
阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装1. 背景在我们购买阿里云ECS服务器之后,默认的系统环境是很干净的,我购买的是ubuntu16.04,远程登录进入之后 ...
随机推荐
- Am335x 应用层之SPI操作
SPI接口有四种不同的数据传输时序,取决于CPOL和CPHL这两位的组合.图1中表现了这四种时序, 时序与CPOL.CPHL的关系也可以从图中看出. 图1 CPOL是用来决定SCK时钟信号空闲时的电平 ...
- JS 数组以及对象的深拷贝总结
javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法 前言 在js中,数组和对象的复制如果使用=号来进行复制,那只是浅拷贝.如下图演示: 如上,arr的修改,会影响arr2的值,这 ...
- python ascii codec can't decode
提示错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 240: ordinal not in range ...
- 第二百四十五节,Bootstrap标签页和工具提示插件
Bootstrap标签页和工具提示插件 学习要点: 1.标签页 2.工具提示 本节课我们主要学习一下 Bootstrap 中的标签页和工具提示插件. 一.标签页选项卡 标签页也就是通常所说的选项卡功能 ...
- 在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据
在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据.如果在创建znode时Flag设置为EPHEMERAL,那么当创建这个znode的节点和Zook ...
- ResultSet是结果集对象
ResultSet是结果集对象 DriverManager管理一组驱动程序 PreparedStatement预编译的,用来发送和执行SQL语句的
- LoadRunner检查点实战之运行查看器
一.为什么要使用检查点 为什么要使用检查点,那就要说明一下LR如何判断脚本是否执行成功.LR判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的HTTP状态为 200 OK ,那么Vu ...
- js i++ 与 ++i 的区别
转载:http://blog.csdn.net/hjb2722404/article/details/50423804 在javascript中,我们常常搞不懂i++与++i的区别,今天我们就来简单说 ...
- [Jenkins] 解决 Gradle 编译包含 SVG Drawable 出现异常
异常信息 java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of th ...
- centos免密登录
本文是为了docker-machine增加现有虚拟机服务器为节点而做 docker-machine create -d generic --generic-ip-address=192.168.102 ...