环境:ubuntu16.04
准备工作:
首先python环境中,ubuntu16.04中已经默认安装了python2.7 和python3.5
而我所编写的程序是基于python3的,ubuntu默认都是2.7 ,所以需要先切换版本为3.5
update-alternatives --config python #切换python版本
apt-get install pip #安装pip
pip install virtualenv #安装沙盒环境
把项目放在/var/www文件夹之下,cd进入项目文件夹
virtualenv venv #创建沙盒环境文件夹
source venv/bin/activate #进入沙盒环境
pip install python3-dev #安装依赖包
pip install uwsgi #安装uwsgi
pip install -r requirements.txt #安装flask等所需第三方库
deactivate #退出沙盒环境
安装mysql
apt-get update
apt-get install mysql-server
修改数据
vi /etc/mysql/mysql.conf.d/mysqld.cnf
找到bind-address = 127.0.0.1 这一行注释掉 实现外网访问数据库
在lc-messages-dir = /usr/share/mysql这一句下面添加:
character-set-server=utf8 #设置编码为utf-8 保存退出
vi /etc/mysql/conf.d/mysql.cnf
default-character-set=utf8 #添加这一行设置编码为utf-8 保存退出
service mysql start 启动mysql服务
mysql -uroot -p #登录数据库 进入mysql命令行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; # 授权外网用户访问
至此mysql配置完毕。
配置uwsgi:
cd 进入项目目录 ,创建config.ini 文件为uwsgi配置文件
[uwsgi]
#application's base folder
base = /var/www/community
#python module to import
app = run
module = %(app)
home = %(base)/venv
pythonpath = %(base)
#socket file's location
socket = /var/www/community/uwsgi.sock
#permissions for the socket file
chmod-socket = 666
#the variable that holds a flask application inside the module imported at line #6
callable = app
安装Nginx
apt-get install nginx #安装nginx
vi /etc/nginx/sites-available/default #修改nginx配置文件
配置内容:
server {
listen 80;
server_name ip或域名;
charset utf-8;
client_max_body_size 75M;
access_log /var/www/community/log/access.log;
error_log /var/www/community/log/error.log;
location / {
include uwsgi_params;
uwsgi_pass unix:/var/www/community/uwsgi.sock;
}
location /static {
root /var/www/community/app/;
}
}
service nginx start #启动nginx
安装supervisor
因为supervisor不支持python3,所以切换python默认版本为2.7
update-alternatives --config python #切换python版本
安装supervisor:
apt-get install supervisor
cd /etc/supervisor/conf.d #进入此目录
创建一个任意名.conf 配置文件
内容如下:
[program:community]
# 启动命令入口
command=/var/www/community/venv/bin/uwsgi /var/www/community/config.ini
# 命令程序所在目录
directory=/var/www/community
#运行命令的用户名
user=root
autostart=true
autorestart=true
#日志地址
stdout_logfile=/var/www/community/log/uwsgi_supervisor.log
配置完毕就启动进程管理器:
supervisorctl start all #启动全部进程
supervisorctl start all #查看进程状态
至此全部配置完毕,可正常访问web应用,中途还有一些坑忘记了,以后想起来再补。