您的位置:首页 > 运维架构 > Nginx

centos7+python flask+nginx一套完整的部署流程

2016-10-12 15:10 357 查看
--------------------------------------------------------升级python2.7.11-------------------------------------

下载好2.7.11,然后目录下

./configure --prefix=/usr/local/python2.7

make && make install

然后在/usr/local/python2.7 会多出python2.7的文件夹

移动以前的,软连接

mv /usr/bin/python /usr/bin/python275

ln -s /usr/local/python2.7/bin/python2.7 /usr/bin/python # 添加软连接

注意以后安装的python工具包例如easy_install,pip等,都会安装在/usr/local/python2.7/bin 目录下

要想直接使用这些命令还需要把/usr/local/python2.7/bin添加到$PATH变量中

1、编辑/etc/profile文件(永久生效)

vi /etc/profile

找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL这行上面加入

PATH=$PATH:/usr/local/python2.7/bin

重新初始化文件,使文件立即生效

source /etc/profile or . /etc/profile

--------------------------------------------------------然后yum将失灵-----------------------------------------

(#!/usr/bin/python)升级完2.7.11之后的样子

#修改yum文件

vi /usr/bin/yum

将文件头部的

#!/usr/bin/python

改为如下内容

#!/usr/bin/python275

(特别注意:有时候用yum安装会提示异常,比如少了 urlgrabber-ext-down 这时需要vi /usr/libexec/urlgrabber-ext-down 然后把头文件改成和vi /usr/bin/yum第一行一样的,即#!/usr/bin/python275)

(题外话 yum下载的东东安装后跑哪里去了 ,用rpm -ql 包名 来查查吧)

---------------------------------------------------------来安装nginx吧-----------------------------------------

在解压好的nginx-1.8.0目录中

./configure --prefix=/home/tony/nginx-1.8.0

make

sudo make install

这个过程不能停啊...

启动nginx服务器

sudo /home/tony/nginx-1.8.0/sbin/nginx -c /home/tony/nginx-1.8.0/conf/nginx.conf

其中/home/tony/nginx-1.8.0/sbin/nginx表示启动程序,这里用全路径更加直观,可以根据自己的习惯做软链接到系统路径。

(题外话 如何重启nginx 需要先kill了进程 ps -ef|grep nginx ps kill -9 进程号)

(题外话 查看端口被占用 lsof -i tcp:80)

 

--------------------------------------------------------该安装虚拟环境virtualenv了------------------------------------------

先说说安装这两个

下载解压 setuptool

python setup.py install

然后下载解压 pip

python setup.py install

由于上面设置了,所以都安装到新的python2.7.11中了

但是悲催的是,pip找不到命令......我用的笔记本安装,据说台式机是好的

在pip-7.1.2目录下

cd ..

sudo easy_install pip-7.1.2/

又报错了,md,查看之后说要下载

发现命令运行会报错。重新安装python的distribution-0.6.49(0.7.3的会报错)

下载distribution链接https://pypi.python.org/pypi/distribute/0.6.49

cd distribute-0.6.49

python setup.py install

还是不行啊!!

后来 我用了这个可以了

/usr/local/python2.7/bin/pip install virtualenv

(后来发现 在这个目录下=>"/usr/local/python2.7/bin/" 用./pip install virtualenv 也行)

 

在pip中 安装virtualenv (用root用户装)

创建如下

(/usr/local/python2.7/bin/python2.7下 ./)

./virtualenv -p /usr/local/python2.7/bin/python2.7 /home/tony/py2711env(后面不写 就找不到装哪里了)

激活

source /home/tony/py2711env/bin/activate(注意激活之前不要装flask等等)

退出

deactivate

--------------------------------------------该安装mongodb了----------------------------------------------------------

在bin里

dbpath=/home/tony/mongodb301/db

logpath=/home/tony/mongodb301/logs/mongodb.log

port=27017

fork=true

nohttpinterface=true

新建文件夹 logs 和 db

然后启动吧

/home/tony/mongodb301/bin/mongod --config /home/tony/mongodb301/bin/mongodb.conf

(题外话 做成开机启动)

配置开机自动启动mongodb

vi /etc/rc.d/rc.local

在文件中加入:

/home/tony/mongodb301/bin/mongod --config /home/tony/mongodb301/bin/mongodb.conf

--------------------------------------------------安装uwsgi------------------------------------------------------

先安装相关依赖python-devel、setuptools,libxml2-devel,直接用yum安装。如果是自行编译安装的python,可以不用安装python-devel。

进入到 /usr/bin 里 用root用户

sudo ./yum -y install python-devel python-setuptools libxml2-devel

下载uwsgi后解压

python setup.py install

-----------------------------------------------------安装flask等插件--------------------------------------------------------------

pip install flask 就是安装最新的flask

---------------------------------------------------nginx集成到uwsgi-------------------------------------------------------------------------

uwsgi在nginx是标准模块,所以不需要安装。编辑nginx的配置文件,使其加载uwsgi。

location / {

include uwsgi_params;

uwsgi_pass 127.0.0.1:3031;

root html;

index index.html index.htm;

}

修改完成后可以测试下配置文件是否没有错误。

sudo /home/tony/nginx-1.8.0/sbin/nginx -t -c /home/tony/nginx-1.8.0/conf/nginx.conf

kill掉进程 重启nginx

启动uwsgi

在flask项目中,添加config.xml

<uwsgi>

<pythonpath>/home/tony/py2711env/app</pythonpath>

<module>manage</module>

<callable>app</callable>

<socket>127.0.0.1:4000</socket>

<master/>

<processes>4</processes>

<memory-report/>

</uwsgi>

启动

sudo /usr/local/python2.7/uwsgi -x /home/tony/py2711env/app/appconfig.xml

如果不行

[root@localhost bin]# ./uwsgi -x /home/tony/py2711env/appconfig.xml

注意啦,犯了一个错误,之前的uwsgi是在建虚拟环境之前装的,所以需要虚拟环境里在装一遍

用pip install uwsgi

然后在虚拟环境中执行

uwsgi -x /home/tony/py2711env/app/appconfig.xml

---------------------------------------最后 配置一下虚拟机的ip------------------------------------------------

cd /etc/sysconfig/network-scripts

ls

编辑后

service network restart

别忘记桥接模式

-------------------------以后这样就ok了---------------------------------

/home/tony/mongodb301/bin/mongod --config /home/tony/mongodb301/bin/mongodb.conf

source /home/tony/py2711env/bin/activate

sudo /home/tony/nginx-1.8.0/sbin/nginx -c /home/tony/nginx-1.8.0/conf/nginx.conf

uwsgi -x /home/tony/py2711env/appconfig.xml

大功告成!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python centos nginx 部署