CentOS7.2+Python3x+Flask部署标准化配置流程

发布时间:2021-12-03 公开文章

我不是程序员,也不是设计师,我只是碰巧有一些想法和一台电脑。
I am not a designer nor a coder. I'm just a guy with a point-of-view and a computer.

 

没错,用就用最新的,喷子绕道,需要转载的请注明出处!

曾用一天的时间查阅博客园、CSDN等文章都米有较好的解决该该问题,后来终于搞定了,做个记录,严格按照下面的Step,好用不谢哈:)

再次强调严格按此执行不返工!

 

@靳洪飞

 

Step1.安装最基本的开发工具,吐槽一下除此之外的任何垃圾教程

# yum groupinstall "Development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

Step2.下载代码 configure → make → make altinstall

3.5.2下载安装同 下:

 

# cd /usr/local/src
# wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz
# tar -zxvf Python-3.4.3.tgz 
# cd Python-3.4.3
# ./configure --prefix=/usr/local/python
# make && make altinstall

Step3.安装Python3.4公用库

# echo "/usr/local/python/lib" >> /etc/ld.so.conf
# ldconfig

Step4.安装Python3.4至 /usr/local/bin/

# ln -s /usr/local/python/bin/python3.4 /usr/local/bin/python

 

Step5. 确认是否安装正确

# /usr/local/python/bin/python3.4 -V
# python -V

 

 

Step6.安装Easy_Install

# cd /usr/local/src
# wget https://pypi.python.org/packages/source/s/setuptools/setuptools-18.0.1.zip
# unzip setuptools-18.0.1.zip
# cd setuptools-18.0.1
# /usr/local/bin/python setup.py install
# ln -s /usr/local/python/bin/easy_install /usr/local/bin/easy_install

Step7.安装Pip

# /usr/local/bin/easy_install pip
# ln -s /usr/local/python/bin/pip /usr/local/bin/pip

Step8.安装Virtualenv

# pip install virtualenv
# ln -s /usr/local/python/bin/virtualenv /usr/local/bin/virtualenv

Step9.安装Virtualenvwrapper

# pip install virtualenvwrapper

Step10.配置Virtualenvwrapper参数设定

$ vim ~/.bashrc
if [ -f /usr/local/python/bin/virtualenvwrapper.sh ]; then
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/python/bin/virtualenvwrapper.sh
fi

补充virtualenvwrapper用法

 

1.创建环境

mkvirtualenv env1
mkvirtualenv env2

环境创建之后,会自动进入该目录,并激活该环境。

 

2.切换环境

workon env1  # # (运行:ls ~/.virtualenvs 可见)
workon env2

3.列出已有环境

workon

4.退出环境

deactivate

5.删除环境

rmvirtualenv

6.创建project

项目将创建到PROJECT_HOME目录下,实际上相当于在某个目录下,建了一个环境。

mkproject 

补充配置nginx

1.下载nginx

yum install nginx

 

2.启动nginx服务

systemctl start nginx

3.配置

默认的配置文件在 /etc/nginx 路径下,使用该配置已经可以正确地运行nginx;如需要自定义,修改其下的 nginx.conf 等文件即可。

4.测试

在浏览器地址栏中输入部署nginx环境的机器的IP,如果一切正常,应该能看到如下字样的内容。

 

5. 列出所有端口状态

netstat -ntlp

配合 kill -9 pid

 

补充Gunicorn配置

 

Gunicorn 绿色独角兽 是一个Python WSGI UNIX的HTTP服务器。这是一个pre-fork worker的模型,从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器大致与各种Web框架兼容,只需非常简单的执行,轻量级的资源消耗,以及相当迅速。

Gunicorn 应该装在 virtualenv 环境下,安装前记得激活workon env1!

(venv) $ pip install gunicorn

一行搞定运行Web:

(venv) $ gunicorn -w 4 -b 127.0.0.1:8080 wsgi:application

注:各个参数的具体含义相信都能找到。

 

补充进程守护

 

Supervisor守护神不支持python3,centos7不支持Upstart,蛋疼!

截至现在仍旧没有找到解决方案,但是意外收获了systemd作为守护神保护常规的python程序进程

有关systemd的介绍和使用推荐阮一峰老师的以下两篇博客,写的非常详细和全面

这一篇就写到这里,部署就这样啦,中途会出现一些BUG,可以肯定是你程序的问题,仔细检查哈!