python服务器环境搭建(2)——安装相关软件
在上一篇我们在本地的虚拟服务器上安装好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
这时如果想要用浏览器访问的话,需要先关闭防火墙才行
输入命令: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
登录官网获取安装版本安装地址 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服务器运行的必要软件,这是我自己框架所需要的)
- 点赞
- 收藏
- 关注作者
评论(0)