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

举报
AllEmpty 发表于 2020/03/10 19:14:53 2020/03/10
【摘要】   在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务、自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行,一般来说,想要实现自动化部署需求,还需要安装nginx、svn、uwsgi、python3.0(系统自带python2.7.5)、supervisor、postgresql、redis(no...

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

  一、安装常用工具包

  输入下面命令,安装各种常用工具包,可以逐项直接输入下面命令进行安装(如果出现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无法使用。

 

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

1583830601875842.png

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

  输入命令:systemctl stop firewalld

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

  

1583830619995242.png


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

  登录官网获取安装版本安装地址 https://www.postgresql.org/download/linux/redhat/

       输入命令安装pg

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql11
yum install postgresql11-server
yum install postgresql11-libs
yum install postgresql11-contrib
yum install postgresql11-devel
mkdir /data
mkdir /data/pg
mkdir /data/pg/data
mkdir /data/logs/pg
chown postgres:postgres /data/pg
chown postgres:postgres /data/pg/data
chown postgres:postgres /data/logs/pg


        初始化数据库

su postgres
/usr/pgsql-11/bin/postgresql-11-setup initdb -D /data/pg/data


        修改服务器系统环境变量

vi /etc/profile


        在尾部添加下面配置

export PGHOME=/usr/pgsql-11
export PGDATA=/data/pg/data
export PGLIB=/usr/pgsql-11/lib
export PATH=$PGHOME/bin:$PATH


        保存退出后,运行命令,让配置马上生效

source /etc/profile


        配置postgresql.conf

cd /data/pg/data
vi postgresql.conf


        修改数据库访问地址

listen_addresses = '192.168.0.128'


        localhost为本地访问,可以设置可访问地址为对应的局域网IP或外网IP,也可以改为*,即允许所有地址访问

        如果想修改访问端口,可找到#port = 5432,将前面的#删掉,这里可以指定访问数据库的端口


        配置pg_hba.conf

vi pg_hba.conf

        找到# IPv4 local connections: 在它的下面添加一行,设置数据库需要密码访问

host    all             all             0.0.0.0/0         md5


        启动pg服务

su postgres -c "/usr/pgsql-11/bin/pg_ctl -D /data/pg/data -l /data/logs/pg/logfile.log start"


        修改postgres用户登录密码

su postgres
psql -U postgres
Alter user postgres with password '123456';


      我们可以在本地的windows系统里安装postgresql11(官方下载地址:https://www.postgresql.org/download/windows/),然后使用pgAdmin连接上服务器的数据库,用图形界面来管理数据库了


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

  修改redis配置信息(可以下载/usr/local/redis/redis.conf或直接用vi /usr/local/redis/redis.conf进行编辑)

  主要修改内容有:

  bind 127.0.0.1   redis服务访问限制设置。使用127.0.0.1表示只能本机访问;如果用的是服务器在局域网里的ip:192.168.1.128,即表示局域网内的ip都可以访问;如果使用0.0.0.0由表示所有地址都可以访问。需要绑定多个时,可以添加多个bind xxx.xxx.xxx.xxx

  daemonize no  这个修改为daemonize yes  开启守护进程

  dir ./  这里需要修改为dir /usr/local/redis/data 不然redis数据会存储到root文件夹下面

  随便找个位置增加requirepass xxxxx,可以增加访问redis访问密码,如果你的redis对外网开放,这个密码一样要足够长足够复制,不然以redis的访问速度,比较容易被人破解

  可以增加maxmemory 1024M来限制redis占用内容大小,也可以不限制

  修改完成后,创建redis数据存储文件夹:mkdir /usr/local/redis/data

  修改完成,运行redis启动命令:/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf

  redis服务就启动了,可以使用RedisDesktopManager这种第三方可视化工具来访问redis,查看里面的存储数据


  六、安装python3.7.5版本(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.7.5安装包并进行安装

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


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

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


  创建python3命令链接

ln -s /usr/local/bin/python3 /usr/bin/python

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

python --version

  升pip3安装

pip3 install --upgrade pip

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

vi /usr/bin/yum
vi /usr/bin/yum-config-manager
vi /usr/sbin/tuned
vi /usr/libexec/urlgrabber-ext-down
vi /usr/bin/supervisord
vi /usr/bin/supervisorctl

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



  七、安装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.7 版本的uwsgi plugins(如果你修改了python37为其他名称,记录同步修改下面复制的文件名)

python3 uwsgiconfig.py --plugin plugins/python core python37


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

cp /etc/uwsgi/python37_plugin.so /usr/lib64/uwsgi/
cp /etc/uwsgi/python37_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 就可以查询到安装的版本了

 

  八、安装svn服务

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

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

  还原python版本为2.7:cp /usr/bin/python2 /usr/bin/python 

  输入安装命令:yum install subversion

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

 

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

 

  将python链接重新指向python3.7.5

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

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

  

  python服务器需要的相关软件基本上就安装完成了(当然redis与postgresql并不是python服务器运行的必要软件,这是我自己框架所需要的)


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。