在上一篇我们在本地的虚拟服务器上安装好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
yum -y install zlib zlib-devel
yum install wget
为了方便下载内容的管理,而不是将服务器里的文件搞的很乱,我们最好统一将文件下载到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/这个路径下
输入命令:cd nginx-1.10.3
输入nginx安装命令:./configure && 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
登录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 nginx-1.10.3.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
解压缩安装包:tar -zxvf redis-3.2.8.tar.gz
进入安装包文件夹:cd redis-3.2.8
执行安装命令:make && make install
六、升级python到3.5.2版本
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升级到最新版本)
输入命令:pip install --upgrade pip
七、安装uwsgi
输入安装命令:pip 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 联系我,非常感谢。
发表本编内容,主要是为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:327360708 ,大家一起探讨。
更多内容,敬请观注博客:http://www.cnblogs.com/EmptyFS/
python服务器环境搭建(2)——安装相关软件的更多相关文章
-
python服务器环境搭建——安装相关软件
在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...
-
python服务器环境搭建(3)——参数配置
前面我们已安装好了python服务器运行所需要的相关软件,而最重要最繁琐的就是参数配置,写这篇就踩了好多坑,花了好多时间,遇到了各种各样的问题.好了费话少说,直接进入本篇话题. PS:本人不是专业的运 ...
-
python服务器环境搭建Flask,uwsgi和nginx
python服务器环境搭建Flask,uwsgi和nginx 环境配置 服务器配置 [部署系统环境Ubuntu] 使用python的Flask框架搭建好网页后台后,便要开始将网站部署到服务器平台了. ...
-
centos 7.3 服务器环境搭建——MySQL 安装和配置
centos 7.3 服务器环境搭建——MySQL 安装和配置服务器信息如下:服务器:阿里云系统 centos 7.3 (阿里云该版本最新系统)mysql版本:5.7.18 (当前时间最新版本)连接服 ...
-
python服务器环境搭建(1)——本地服务器准备
去年十月底到新公司上班,由于公司旧系统存在各种问题同时不便于扩展,而公司领导对17年寄予很大的期望,用户量.收入要上一个新台阶,我经过全面评估后,决定全部用python重构过,开发一个基于微服务架构的 ...
-
appium+python+iOS 环境搭建,安装fbsimctl
(1)设置postBuffer的值 开始如下的安装之前,需先修改postBuffer的值,默认的比较下,会导致下载大文件时失败, 参考链接:http://blog.sina.com.cn/s/blog ...
-
ubuntu下python flask环境搭建
ubuntu下python flask环境搭建 1. 安装pip sudo apt-get install python-dev pyhton-pip 2. 安装virtualenv sudo apt ...
-
LNAMP服务器环境搭建(手动编译安装)
LNAMP服务器环境搭建(手动编译安装) 一.准备材料 阿里云主机一台,操作系统CentOS 6.5 64位 lnamp.zip包(包含搭建环境所需要的所有软件) http://123.56.144. ...
-
阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装
阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装 最近琢磨着想在服务器上搭建一个hexo博客,于是就在阿里云上买了一个云服务器ECS,远程接入后默认给的是一个命令窗口,没有图形界面, ...
随机推荐
-
hdu3087 LCA + 暴力
Network Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Su ...
-
Cache的使用
公共方法Add 将指定项添加到 Cache 对象,该对象具有依赖项.过期和优先级策略以及一个委托(可用于在从 Cache 移除插入项时通知应用程序). Equals(从 Object 继承) 已重载. ...
-
【转】vim取消高亮显示
vim是vi的加强版. 进入vim或编辑完毕按esc后,输入/可帮助查找字符串,例如/main帮助查找main函数,找到的main高亮显示. 取消高量显示的两个办法: 1)按esc键,输入:nohl ...
-
Scala之隐式转换
概述 简单说,隐式转换就是:当Scala编译器进行类型匹配时,如果找不到合适的候选,那么隐式转化提供了另外一种途径来告诉编译器如何将当前的类型转换成预期类型. 隐式转换有四种常见的使用场景: 将某一类 ...
-
jzoj100029
陪审团制度历来是司法研究中的一个热议话题,由于陪审团的成员组成会对案件最终的结果产生巨大的影响,诉讼双方往往围绕陪审团由哪些人组成这一议题激烈争夺. 小 W 提出了一个甲乙双方互相制衡的陪审团成员挑选 ...
-
Qt ------ 主事件循环与 QEventLoop
1.事件循环一般用exec()函数开启.QApplicaion::exec().QMessageBox::exec()都是事件循环.其中前者又被称为主事件循环. 事件循环首先是一个无限“循环”,程序在 ...
-
J.U.C之AQS
AQS是J.U.C的核心 AQS(AbstractQueuedSynchronizer)队列同步器,AQS是JDK下提供的一套用于实现基于FIFO等待队列的阻塞锁和相关的同步器的一个同步框架. 同步器 ...
-
python2.7练习小例子(二十四)
24):1.题目:利用递归方法求5!. 程序分析:递归公式:fn=fn_1*4! #!/usr/bin/python # -*- coding: UTF-8 -*- def fact( ...
-
什么是AWS Lambda?——事件驱动的函数执行环境
AWS CTO Werner Vogels在AWS re:Invent 2014大会的第二场主题演讲上公布了两个新服务和一系列新的实例,两个新服务都相当令人瞩目:第一个宣布的新服务是Amazon EC ...
-
css3 display:box 属性
先看例子: .ub{ display: -webkit-box !important; display: box !important; position:relative;}.ub-f1{ posi ...