python服务器环境搭建(2)——安装相关软件

  在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务、自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行,一般来说,想要实现自动化部署需求,还需要安装nginx、svn、uwsgi、python3.0(系统自带python2.7.5)、supervisor、postgresql、redis(nosql缓存根据自己代码的需要而定)。

  PS:本人不是专业的运维,只能根据自己的研究弄弄单机版的python web服务器,而对于多服务器自动化同步的部署、服务器的监控、Linux服务器的安全、服务器的调优(很多服务安装不是重点,能将各种参数运用配置到洽到好处才是难点),大家最好找专业的运维工程师来处理。再一次感谢小戴同学的尽心帮助,让我学会了很多服务器运维方面的知识,才有这篇文章。(在这里帮小戴做做广告:人品好、技术牛、外包费用低,我们公司服务器维护外包给了他,配置各种服务器非常快,想学python与自动化运维的可以上他的博客http://www.linuxyw.com/)

 

  一、安装常用工具包

  输入下面命令,安装各种常用工具包,可以逐项直接输入下面命令进行安装(如果出现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
yum install wget lrzsz libxml2 -y
yum install kernel-devel libxslt-devel libpqxx-devel libffi-devel python-devel libpq-dev -y

 

  在使用yum安装各种工具包时,由于使用的源默认是国外的,所以有时有一些源由于网络或什么原因会安装不上,所以可以通过更改yum安装源来提升安装效率,下面是使用网易源(阿里源在虚拟机上好像使用不了,如果使用阿里云的话可以替换为阿里源)

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
cd /etc/yum.repos.d/
wget -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
## wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
yum makecache 
yum -y update

   PS:如果Python已升级到3,更改yum源需要将python的软链接指回2的版本(即输入命令python -V可看到的是2.7版本),不然运行yum -y update后可能会出错,导至yum无法使用。另外,使用yum升级,好像会将内核一些程序也升级了。

 

  二、安装nginx服务

 

  首先在网上找到下面安装包(如果下面组件版本对不上,可能会造成nginx安装失败)

 

nginx-1.10.3.tar.gz
openssl-1.0.2n.tar.gz
pcre-8.39.tar.gz
zlib-1.2.11.tar.gz

 

  将它们上传到服务器:/usr/local/src 目录下面,openssl、pcre和zlib这些组件不安装问题也不大,不过这些常用的组件安装好了,以后需要时就不必重新安装了

 

  1、安装pcre

cd /usr/local/src
mkdir /usr/local/pcre
tar zxvf pcre-8.39.tar.gz
cd pcre-8.39
./configure --prefix=/usr/local/pcre
make
make install

  2、安装openssl

cd /usr/local/src
mkdir /usr/local/openssl
tar zxvf openssl-1.0.2n.tar.gz
cd openssl-1.0.2n
./config --prefix=/usr/local/openssl
make
make install
vi /etc/profile
在vi编辑器的最后面添加下面代码(vi编辑器的使用请自己百度)
export PATH=$PATH:/usr/local/openssl/bin
按esc键,输入:wq! 保存退出
输入下面代码让刚添加的代码生效
source /etc/profile

  3、安装zlib

cd /usr/local/src
mkdir /usr/local/zlib
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make
make install

  4、安装Nginx

groupadd www
useradd -g www www -s /bin/false
cd /usr/local/src
tar zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.2n --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.39
make
make install

 

 

  完成nginx安装后,我们可以检查一下nginx能否正常启动

  输入nginx初次启动命令:/usr/local/nginx/sbin/nginx

  检查nginx是否在进程中:ps -ef | grep nginx    (可以看到nginx已在服务器上正常 运行了)

  检查nginx启动后点用的端口:netstat -antup | grep nginx

  python服务器环境搭建(2)——安装相关软件_第1张图片

  这时如果想要用浏览器访问的话,需要先关闭防火墙才行

  输入命令:systemctl stop firewalld

  然后打开浏览器,输入地址:http://192.168.0.128/   就可以看到下面的页面了(这个ip怎么来的,请看上一篇《python服务器环境搭建(1)——本地服务器准备》,也可以输入ifconfig命令来查询)

  python服务器环境搭建(2)——安装相关软件_第2张图片

 

 

  三、安装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安装的列表

  python服务器环境搭建(2)——安装相关软件_第3张图片

  点击你要安装的版本链接,然后找到你要安装的版本地址,将它复制出来

  https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

  python服务器环境搭建(2)——安装相关软件_第4张图片

  安装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  (如果是其他版本,只需要修改中间对应的版本数字即可)

  

 

  五、安装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.4版本(python2.7.5还可以继续使用)

  PS:由于升级到python3以后,在yum安装一些软件时(只是部分),可能这些软件的安装还是使用python2来写的,会导致无法使用yum安装,所以最好将相关内容先安装好以后再进行升级

  安装python依赖包:

yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

  下载Python3.5.4安装包并进行安装

cd /usr/local/src
wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz
tar -zxvf Python-3.5.4.tgz
cd Python-3.5.4
./configure --prefix=/usr/local --enable-shared && make && make install

  在运行Python之前需要配置库:

echo /usr/local/lib >> /etc/ld.so.conf.d/local.conf
ldconfig

  备python2.7bin

mv /usr/bin/python /usr/bin/python2.7.5
ln -s /usr/local/bin/python3 /usr/bin/python

  完成安装,入下面命令就可以查看到当前安装python版本信息Python 3.5.4

 

python --version

 

  升pip3安装

pip3 install --upgrade pip

 

  修改python2.7运行的脚本链接,以下文件vi编辑器打开,第一行的 #!/usr/bin/python 改 #!/usr/bin/python2.7.5

vi /usr/bin/yum
vi /usr/sbin/tuned
vi /usr/libexec/urlgrabber-ext-down

  批量安装python3各种常用包

  输入命令:vi requirements.txt    粘贴下面内容

 

amqp
anyjson
argh
asn1crypto
Beaker
beakeredis
beautifulsoup4
bleach
bottle
bs4
cffi
click
cryptography
cycler
decorator
dynaconf
enum-compat
eventlet
flasgger
Flask
gevent
greenlet
html5lib
idna
itsdangerous
Jinja2
jpush
jsonschema
kombu
lxml
MarkupSafe
matplotlib
mistune
mock
Naked
nameko
networkx
numpy
olefile
packaging
panda
pandas
paramiko
pathtools
path.py
pbr
Pillow
print
psycopg2
psycopg2-binary
pyasn1
pycparser
pycrypto
pycryptodome
pyparsing
python-dateutil
python-alipay-sdk
python-box
python-dateutil
python-dotenv
pytz
PyWavelets
PyYAML
qrcode
redis
reload
requests
scikit-image
scipy
shellescape
six
typing
tushare
watchdog
webencodings
Werkzeug
wrapt
XlsxWriter
yagmail
View Code

 

  

  保存后,输入命令:pip3 install -r requirements.txt

  安装程序会将里面常用的依赖包全部安装,方便快捷

 

  PS:使用源码包编译安装python3以后,还会保留原python2的相关命令,所以直接使用pip安装的是python2的包,要安装python3的包,必须使用pip3

 

  七、安装uwsgi

  安装pepl源(不安装有时安装相关模块时会找不到源)

yum -y install epel-release

  安装uwsgi依赖

yum -y install uwsgi-devel

   安装下面两项时,有时候没有按前面的操作更换为国内的源,输入下面命令可能后两项安装不上,导致最终uwsgi运行出错,所以代码运行完成后要认真看看是否安装成功了

yum -y install uwsgi-plugin-python uwsgi-plugin-python3

   如果出现下面提示,那就得想办法装上才行,不然uwsgi运行时很容易出错

No package uwsgi-plugin-python available.
No package uwsgi-plugin-python3 available.

 

 

  下载uwsgi安装包

cd /usr/local/src/
wget https://projects.unbit.it/downloads/uwsgi-2.0.16.tar.gz
tar zxvf uwsgi-2.0.16.tar.gz
cd uwsgi-2.0.16
make -j 8
python uwsgiconfig.py --build
cp uwsgi /usr/bin/

 

  修改配置文件:vi buildconf/core.ini  ( buildconf/core.ini 文件中添加下面内容) 

plugin_dir = /etc/uwsgi
bin_name = /usr/bin/uwsgi

   创建uwsgi配置文件夹

mkdir /etc/uwsgi

   编译 python3.5 版本的uwsgi plugins

python uwsgiconfig.py --plugin plugins/python core python35

 

  把生成好的*python35*.so复制到/usr/lib64/uwsgi/下面

cp /etc/uwsgi/python35_plugin.so /usr/lib64/uwsgi/
cp /etc/uwsgi/python35_plugin.so /usr/local/src/uwsgi-2.0.16

 

  输入命令:uwsgi --version 就可以查询到安装的版本了

 

  八、安装svn服务

  由于已升级到python3了,直接使用yum安装会出现错误,所以我们需要操作一下,改回python2版本(PS:这是一个安装了Python3后,需要使用Python2进行安装软件的例子)

  删除之前创建的python3链接:rm -rf /usr/bin/python

  将之前备份的python2.7.5复制为python:cp /usr/bin/python2.7.5 /usr/bin/python 

  输入安装命令:yum install subversion

  查看svn安装的版本:svnserve --version

 

  PS:一定要将python链接指向python2,不然执行的还是python3版本的命令

 

  将python链接重新指向python3.5.2

  删除刚刚复制的python链接:rm -rf /usr/bin/python

  创建新的链接指向新安装的python3.5.4:ln -s /usr/local/bin/python3 /usr/bin/python

  

  python服务器需要的相关软件基本上就安装完成了(当然redis与postgresql并不是python服务器运行的必要软件,这是我自己框架所需要的),具体测试与配置,下一篇再写

 

 

 版权声明:

  本文由AllEmpty原创并发布于博客园,版权与博客园共同所有,欢迎转载,未经本人同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如有问题,可以通过[email protected] 联系我,非常感谢。

 

    发表本编内容,是为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:669058475(本群已满)、733466321(可以加2群),大家一起探讨。

 

  更多内容,敬请观注博客:http://www.cnblogs.com/EmptyFS/

 

你可能感兴趣的:(python服务器环境搭建(2)——安装相关软件)