宝塔面板整合 Flask/Django 搭建web应用
宝塔面板整合 Flask/Django 搭建web应用
系统环境:Ubuntu 16.04
需要安装的软件:Nginx,MySQL,Python,PHP,Redis,宝塔面板
Web框架:Flask,Django,WordPress
宝塔面板安装:
-
安装宝塔面板:wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
-
宝塔面板升级:curl http://download.bt.cn/install/update6.sh|bash
Python环境管理:
-
sudo apt-get update
-
sudo apt-get upgrade
-
sudo apt-get install python-pip python-dev build-essential
-
sudo pip install –upgrade pip #安装pip
-
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
-
update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2 #默认使用Python3.5
-
mkdir ~/.pip
-
vi ~/.pip/pip.conf #更改pip默认源为国内豆瓣源
[global] trusted-host = mirrors.aliyun.com index-url = https://mirrors.aliyun.com/pypi/simple
其它应用安装:
- sudo apt-get install git #安装Git
Django环境部署:
部署代码
-
部署前的项目配置 : https://www.zmrenwu.com/post/20/ (参考追梦人物Django教程博客)
-
涉及到 demo.zmrenwu.com 的地方通常都要替换你自己的域名
-
接下是配置 Nginx 来处理用户请求。
定位到
/www/server/panel/vhost/nginx
目录,添加自己网站conf文件,写上下面的配置内容:/etc/nginx/sites-available/demo.zmrenwu.com server { charset utf-8; listen 80; server_name demo.zmrenwu.com; ① location /static { ② alias /home/yangxg/sites/demo.zmrenwu.com/django-blog-tutorial/static; } location / { ③ proxy_set_header Host $host; proxy_pass http://unix:/tmp/demo.zmrenwu.com.socket; } }
① 服务的域名为 demo.zmrenwu.com。
② 所有URL 带有 /static 的请求均由 Nginx 处理,alias 指明了静态文件的存放目录。
③ 其它请求转发给 Django 处理。proxy_pass 后面使用了 unix 套接字,其作用是防止端口冲突,这里就不再详述。
service nginx reload
#重启nginx
使用 Gunicorn
Gunicorn 一般用来管理多个进程,有进程挂了Gunicorn 可以把它拉起来,防止服务器长时间停止服务,还可以动态调整 worker 的数量,请求多的时候增加 worker 的数量,请求少的时候减少。
在虚拟环境下,安装 Gunicorn:
(env) yangxg@localhost:~/sites/demo.zmrenwu.com/django-blog-tutorial$ pip install gunicorn
用 Gunicorn 启动服务器进程:
(env) yangxg@localhost:~/sites/demo.zmrenwu.com/django-blog-tutorial$ gunicorn --bind unix:/tmp/demo.zmrenwu.com.socket blogproject.wsgi:application
浏览器输入域名,可以看到访问成功了!
自启动/后台启动
~~~~安装 supervisor 通过它进行django 进程守护:pip install supervisor
~~ (supervisor 需要python2的版本)
nohup
如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭中断后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)
ps -aux | grep "test.sh" #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分