给大家的部署说明
因为很多同学的VPS已经装了LNMP或者nginx等环境或软件
这个帖子就尽量详细说一下如何在这样的VPS上面部署一个django应用(fairybbs为例)
(这里采用supervisor配合nginx+uwsgi的方式)
1.配置Django
首先,登陆到你的VPS上(暂时不说安全性,全程root账户)
然后,cd到一个拿来放网站的目录,比如/data/www/
在这里 我们先使用virtualenv创建一个虚拟环境名为fairyenv
执行virtualenv fairyenv
(virtualenv的安装各个distro各个版本都不一样 就不在这里说了)
再来 source fairyenv/bin/activate
这个时候,clone一个fairybbs(git clone https://github.com/ericls/FairyBBS.git)
(git没有就apt-get或者yum)
cd入/data/www/FairyBBS 确保里面有我们想要的东西,后面所有目录相对于此
好了 然后pip install -r requirements.txt会装好一些必要的包
这里没有mysql支持,需要再运行pip install mysql-python
可能遇到一个问题,mysql_config not found
如果遇到的话用ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config解决它
然后,我们就可以开始编辑fairy/settings.py了
主要是Debug,ALLOWED_HOST,SECRET_KEY,数据库(DATABASE)和EMAIL相关设置
DEBUG为False的时候,才需要设置ALLOWED_HOST
数据库的设置有个backend,如果是mysql就不用改了 其它支持的数据库见这里
另外,由于git上没有包含migration,所以如果需要用south,需要在这里把INSTALLED_APPS里面的 forum和account注释掉
设置完了保存
然后就可以运行python manage.py syncdb创建数据库,和添加超级用户
完了之后,再编辑fairy/settings.py,把之前注释掉的app再添加回去,保存
然后执行
python manage.py schemamigration forum --initial
python manage.py schemamigration account --initial
python manage.py migrate forum
python manage.py migrate account
这个时候 数据库就创建完毕了
我们可以执行python manage.py runserver 0.0.0.0:8000来测试一下(DEBUG为True才行)
然后访问ip:8000 如果没错 就能访问了
先别急,用ctrl+c关闭服务器
然后开始配置uwsgi、supervisord和nginx
2.配置uwsgi
先安装:pip install uwsgi
建立文件uwsgi.ini
写入如下内容(参数请参考uwsgi文档)
[uwsgi]
socket=0.0.0.0:3333
py-autoreload=3
virtualenv=/data/fairyenv/
chdir=/data/FairyBBS/
env = DJANGO_SETTINGS_MODULE=fairy.settings
module=django.core.handlers.wsgi:WSGIHandler()
master=True
workers=1
pidfile=/data/FairyBBS/uwsgi-master.pid
max-requests=5000
3.配置Nginx
为Nginx建立新的虚拟主机
(军哥的LNMP环境可以直接建立文件/usr/local/nginx/conf/vhost/fairybbs.conf)
server {
listen 80;
server_name my_domain.com;
location /static/ {
root /data/FairyBBS/;
expires 30d;
}
location / {
uwsgi_pass 127.0.0.1:3333;
include uwsgi_params;
uwsgi_param SCRIPT_NAME '';
}
}
4.配置supervisord
同样先安装:pip install supervisor
然后执行
echo_supervisord_conf > /etc/supervisord.conf
然后编辑/etc/supervisord.conf
在末尾加入:
[program:my_project]
command = uwsgi --ini /data/FairyBBS/uwsgi.ini
stopsignal=QUIT
autostart=true
autorestart=true
stdout_logfile=/data/FairyBBS/log.log
redirect_stderr=true
5.运行
执行
supervisord
就会开始运行,通过域名my_domain.com即可访问