使用Apache2部署
以下指令,如非root用户,操作时记得加 sudo
本文项目路径为:/var/www/foundation下
我的Flask项目结构
- static --> html静态页面
- views --> pthon代码
- main.py --> python flask入口文件
//以上为项目文件,项目目录下还需要新建foundation.wsgi,下文将会介绍到,部署时候需要配置下
- foundation.wsgi -->wsgi(Web Server Gateway Interface)
一、安装必要的依赖,修改配置
1、安装python3和apache,以及一些相关组件:
apt-get update
apt-get install python3-dev python3-pip apache2 apache2-dev libapache2-mod-wsgi-py3
2、安装 virtualenv
apt-get install virtualenv
3、建立虚拟环境
usr/bin/python3.6 这是python 3.6软连接的地址
envPython3.6 是即将新建python虚拟环境文件夹名称
这句话的意思是,在python3.6版本下,在当前目录新建envPython3.6虚拟环境
此处python版本,依照个人机器的python3版本来,我的是Python3.6
virtualenv -p /usr/bin/python3.6 envPython3.6
开启虚拟环境
cd envPython3.6
source /bin/activate
4、在此虚拟环境下,安装要部署项目的依赖,我的是:
pip install flask flask_cors pymysql
5、建立apache 配置文件:
在项目根目录下新建foundation.wsgi
import sys
import logging
logging.basicConfig(stream=sys.stderr)
# 添加项目运行虚拟环境,把第三步执行的虚拟环境地址放入以下
sys.path.append("/home/envPython3.6/lib/python3.6/site-packages")
# 添加项目
sys.path.insert(0,"/var/www/foundation/")
# 添加app,这里main是我flask的入口文件,app是flask的程序名称:app = Flask(__name__)
from main import app as application
6、建立apache 配置文件:
这里新建的.conf文件名称自己定义,符合自己的就可以,我这里需求定义foundation.conf
vim /etc/apache2/sites-available/foundation.conf
<VirtualHost *:80>
#如果有域名,可以配置域名;没有域名,可以配置ip
#ServerName your ip like 127.0.0.1
ServerName www.baidu.com
#管理员联系方式
ServerAdmin contact@youremail.com
# 配置wsgi脚本路径 在使用Flask创建的项目目录下面
WSGIScriptAlias / /var/www/foundation/foundation.wsgi
<Directory /var/www/foundation/>
Order allow,deny
Allow from all
</Directory>
# 配置错误日志输出
ErrorLog /var/www/foundation/foundation-error.log
# 配置日志输出等级
LogLevel warn
# 配置成功日志输出
CustomLog /var/www/foundation/foundation-access.log combined
</VirtualHost>
7、将新建的.conf指定给apache2,将默认的实效,重启apache2
添加app:
a2ensite foundation.conf
使默认页失效:
a2dissite 000-default.conf
重启apache2
/etc/init.d/apache2 restart
8、浏览器验证是否成功
输入第6步配置的ip验证是否成功
阿里云的朋友注意,本文的端口是80端口,如您需要切换其他端口,且在验证第8步的时候不成功,请查看ubuntu ECS安全组配置 端口是否开放。
欢迎交流!!!