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

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

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

 

  1、安装经常使用工具包python

  输入下面命令,安装各类经常使用工具包,能够逐项直接输入下面命令进行安装(若是出现y/n/d选择时,输入y加回车就能够了)linux

 

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安装源来提高安装效率,下面是使用网易源(阿里源在虚拟机上好像使用不了,若是使用阿里云的话能够替换为阿里源)nginx

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升级,好像会将内核一些程序也升级了。c++

 

  2、安装nginx服务web

 

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

 

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这些组件不安装问题也不大,不过这些经常使用的组件安装好了,之后须要时就没必要从新安装了sql

 

  一、安装pcreshell

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

  二、安装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

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

  四、安装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

  

  这时若是想要用浏览器访问的话,须要先关闭防火墙才行

  输入命令:systemctl stop firewalld

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

  

 

 

  3、安装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

 

  4、安装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  (若是是其余版本,只须要修改中间对应的版本数字便可)

  

 

  5、安装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

 

  6、安装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

 

  7、安装uwsgi

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

yum -y install epel-release

  安装uwsgi依赖

yum -y install uwsgi-devel

   使用python的pip再安装一次uwsgi(这样能够避免后续安装后,uwsgi运行时执行的是python2.7版本的问题)

pip3 install uwsgi

 

 

  下载uwsgi安装包

cd /usr/local/src/
wget https://projects.unbit.it/downloads/uwsgi-2.0.18.tar.gz
tar zxvf uwsgi-2.0.18.tar.gz
cd uwsgi-2.0.18
make -j 8
python3 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(若是你修改了python35为其余名称,记录同步修改下面复制的文件名)

python3 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.18

  查找一下你的Python3安装路径,并将python35_plugin.so复制到python3安装根目录下 

  能够经过执行python3命令,进入python命令模式,而后导入sys文件(import sys),跟着打印系统路径查看(print(sys.path)),而后用cp命令将文件复制到python3安装目录下面就能够了

 

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

 

  8、安装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原创并发布于博客园,版权与博客园共同全部,欢迎转载,未经本人赞成必须保留此段声明,且在文章页面明显位置给出原文连接,不然保留追究法律责任的权利。若有问题,能够经过1654937@qq.com 联系我,很是感谢。

 

    发表本编内容,是为了和你们共同窗习共同进步,有兴趣的朋友能够加加Q群:669058475(本群已满)、733466321(能够加2群),你们一块儿探讨。

 

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

相关文章
相关标签/搜索