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

之前做了十多年的.net,最近有兴趣突然想研究点别的语言,选中了python,结果愈发不可收拾,越陷越深,喜欢上了python,主要是这种风格很让我着迷,我现在甚至有放弃.net的念头,花了一周的时间,也了解了周边相关的知识,部署在虚拟机上,现在记录于此:

--------------------------------------------------------升级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
如果不行
[[email protected] 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

大功告成!

时间: 2024-11-08 03:19:12

centos7+python flask+nginx一套完整的部署流程的相关文章

CentOS7.2安装配置nginx+uwsgi+python+flask运行环境

操作系统:CentOS 7.2 Nginx安装请参考centos7.2安装nginx这个文章 1.  安装python3.5 执行命令 wget --no-check-certificate https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz 等待下载完成 下载完成后,执行tar -zxvf Python-3.5.0.tgz解压安装包,因文件太多,只取最后几个截图 Cd到python的解压目录下执行./configure命令,同样只取

Python Flask构建微信小程序订餐系统

call--->q-2304636824-q 第1章 <Python Flask构建微信小程序订餐系统>课程简介 本章内容会带领大家通览整体架构,功能模块,及学习建议.让大家在一个清晰的开发思路下,进行后续的学习.同时领着大家登陆https://food.54php.cn(使用微信扫码二维码体验下哦横须)一起来演示一下项目.本次课程是严格按照商业系统进行架构开发的,从PC管理员端到小程序会员端,从项目搭建到部署上线,通俗易懂.... 1-1 导学--Python Flask 构建微信小程

使用树莓派部署python flask 环境

最近刚刚开始学习python,老师让部署python环境,在x86平台上部署完毕了没有压力,想想可以不可以在树莓派上弄一套.因为使用raspbian系统和debian差不多就是安装mysql-python时出现点问题.现在记录如下: 首先raspbian切换到root模式下 安装flask工具集 apt-get install Python-setuptools easy_install pip pip install ipython pip install flask 先安装apt-get i

Flask+Nginx+uWSGI在Ubuntu服务器上的配置

Flask+Nginx+uWSGI在Ubuntu服务器上的配置 Step1 安装系统环境 Ubuntu服务器选择是阿里云的ECS服务,ECS提供单独的内存\CPU\带宽\存储规格可以选择,并且提供合适的镜像可以安装.安装镜像后通过ssh进行远程管理,配置.配置的自由程度非常高,也适合进行远程的编程和调试,作为编程调试的服务器和测试服务器非常棒. 服务器的环境: * 确认系统版本 cat /proc/version Linux version 3.13.0-95-generic ([email p

Flask+Nginx+uwsgi部署

python安装 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 yum update yum install openssl-devel -y ./configure make make install Nginx安装 yum install nginx python 虚拟环境创建 python3 -m venv venv pip

Python Flask+Gentelella+Jinja2 快速完成企业内部系统平台快速布局;

1.最近公司运维需求,学习python flask 满足环境治理系统的开发 原生前端Bootstrap 也能满足需求,但是需要前端功基本功(html,css,js)等,折腾了2周发现 实在是太麻烦: 而且布局样式特别low 很难看 各种 按钮和样式效果实现特麻烦(哈哈,原谅我初学者吐槽下,Bootstrap 社区开发人别喷我,谢谢) 2.githup 意外发现一个 gentelella 这套后台模板; (非常强大和适用且美观,不用说立马拿下;) 源码获取地址:https://github.com

Python Flask 狗书电子版pdf

Python Flask 狗书电子版pdf 链接:https://pan.baidu.com/s/197PUp5jXLnDRnkpr3VfHJw 提取码:87xx 内容简介 · · · · · · 本书不仅适合初级Web开发人员学习阅读,更是Python程序员用来学习高级Web开发技术的优秀参考书. 学习Flask应用的基本结构,编写示例应用: 使用必备的组件,包括模板.数据库.Web表单和电子邮件支持: 使用包和模块构建可伸缩的大型应用: 实现用户认证.角色和个人资料: 在博客网站中重用模板.

centos7 &nbsp; Python安装及yum问题解决

centos7  Python安装及yum问题解决 当前系统centos7.2,系统自带Python版本为2.7.5.现在需要使用Python2.6版本,需要降级. 一,安装Python2.6 1.wget下载python,Python版本为2.6.6.wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz 2.解压pythontar xzf Python-2.6.6.tgzcd Python-2.6.6 3.编译安装python

python flask model 序列化

class DictSerializable(object): def as_dict(self,*args): result = OrderedDict() keys=args or self.__mapper__.c.keys() for key in keys: if hasattr(self,key): obj=getattr(self, key) if isinstance(obj,basestring): value=obj elif isinstance(obj,int) or i