导入数据库表
- (venv)$ python3 manage.py db init
- (venv)$ python3 manage.py db migrate
- (venv)$ python3 manage.py db upgrade
退出虚拟环境
- (venv)$ deactivate
2.配置uwsgi
在项目文件夹中新建一个uwsgi.py的文件和uwsgi.ini的文件,并填入配置
- $ cd /path/to/your/project
新建uwsgi.py
- $ vi uwsgi.py
导入创建应用的工厂函数
- from webapp import create_app
- app = create_app("production)"
新建uwsgi.ini
- $ vi uwsgi.ini
输入以下内容:
- [uwsgi]
- module = uwsgi:app
- master = true
- processes = 5
- uid = user
- socket = /run/uwsgi/myapp.sock
- chown-socket = user:nginx
- chmod-socket = 660
- vacuum = true
- die-on-term = true
上面的配置文件中的user是你新建的Linux用户名,第一句是告诉uwsgi我们的应用是uwsgi文件中的app,master和processes是服务器是否启用主进程和进程数,uid是启动uwsgi的用户,scoket是指把uwsgi生成的sock放在什么地方,chown-socket是修改sock的所有者,这样nginx和uwsgi可以同时访问,chmod-socket是修改sock的权限,vacuum是在程序退出时移除sock,因为后面我们会使用systemd来控制uwsgi,因为其中控制信号存在差别,所以使用die-on-term参数。
使用systemd控制uwsgi
新建uwsgi服务
- $ sudo vi /etc/systemd/system/uwsgi.service
填入如下内容:
- [Unit]
- Description=uWSGI instance to serve myapp
- [Service]
- ExecStartPre=-/usr/bin/bash -c 'mkdir -p /run/uwsgi; chown user:nginx /run/uwsgi'
- ExecStart=/usr/bin/bash -c 'cd /home/user/myapp; source myappenv/bin/activate; uwsgi --ini myapp.ini'
- [Install]
- WantedBy=multi-user.target
这样就完成了uwsgi的配置,我们可以像控制mysql一样来控制uwsgi了。
- $ sudo systemctl start uwsgi
- $ systemctl status uwsgi
- $ sudo systemctl enable uwsgi
- $ sudo systemctl stop uwsgi
3.配置nginx
nginx的配置文件位于/etc/nginx/nginx.conf
- $ sudo vi /etc/nginx/nginx.conf
我们只需要修改相应部分就可以了,关于nginx更多的细节将单独再写。
- server {
-
- listen 80;
-
- server_name server_domain_or_IP;
-
- location / {
-
- include uwsgi_params;
-
- uwsgi_pass unix:/run/uwsgi/myapp.sock;
-
- }
-
- location /static/ {
-
- alias /home/user/myapp/static/;
-
- }
这里我们添加了location /static/,这是为了让js css这些静态文件直接由nginx接管,所以要修改这些静态文件的访问权限。
- $ cd /home/user/myapp/static/
- $ chown -R user:nginx static
- $ chmod -R 660 static
最后还有一个小坑,nginx在启动加载时会报错。
- $ sudo mkdir /etc/systemd/system/nginx.service.d
- $ cd /etc/systemd/system/nginx.service.d
- $ sudo vi override.conf
填入如下内容:
- [Service]
- ExecStartPost=/bin/sleep 0.1
保存退出!
到此配置就完成了,启动服务看看效果吧!
测试nginx
- $ sudo nginx -t
启动nginx
- $ sudo systemctl start nginx
设置开机启动
- $ sudo systemctl enable nginx
(编辑:开发网_开封站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|