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,远程登录进入之后 ...
 
随机推荐
- 华为/中兴 3G 模块的调试
			
1 检查/etc/init.d/pppd『红颜色的使上电自动上网注册(如果没有红颜色的语句),请添加』 #!/bin/sh#DAEMON=/usr/sbin/pppdPIDFILE=/var/run/ ...
 - UCOS2系统内核讲述(四)_创建任务
			
Ⅰ.写在前面 学习本文之前可以参看我前面的文章: UCOS2_STM32移植详细过程(汇总文章) UCOS2系统内核讲述(一)_总体描述 UCOS2系统内核讲述(二)_初始化调用函数 UCOS2系统内 ...
 - PHP——0128练习相关1——window.open()
			
Window.open()方法参数详解 1, 最基本的弹出窗口代码 window.open('page.html'); 2, 经过设置后的弹出窗口 window.open('page.html ...
 - mysql实现经纬度计算两个坐标之间的距离sql语句
			
select *,(2 * 6378.137* ASIN(SQRT(POW(SIN(PI()*(111.86141967773438-latitude)/360),2)+COS(PI()*33.070 ...
 - 如何远程备份sql server数据库
			
方法一(不使用SQLDMO): /// ///备份方法 /// SqlConnection conn = new SqlConnection("Server=.;Database=mas ...
 - 通过http输出流的方式从将html写入到Excel
			
private void HtmlResponseToExecl() { //将数据(html)导入到Excel中 Response.Charset = "gb2312"; Res ...
 - C语言 百炼成钢23
			
/* 题目59:链表如下 typedef struct _LinkList { int data; struct _LinkList*next; } LinkList; 有如下结点数据域 1 2 3 ...
 - javascript -- 阻止默认事件  阻止事件冒泡
			
1. event.preventDefault(); -- 阻止元素的默认事件.注:a元素的点击跳转的默认事件 , button,radio等表单元素的默认事件 , div 元素没有默认事件 例: ...
 - Elasticsearch JVM Heap Size大于32G,有什么影响?
			
0.引言 在规划ES部署的时候,会涉及到data node的分配堆内存大小,而Elasticsearch默认安装后设置的内存是1GB,对于任何一个业务部署来说,这个都太小了. 设置Heap Size的 ...
 - ERROR getting 'android:label' attribute: attribute is not a string value
			
这个的原因很多地方都有描述,原因多半是多国语言string.xml 有的有这个值, 有的没有. 关键是怎么定位? 实际上他报错的是当前处理的xml element有问题, 而出错的时候盖住了要处理的. ...