在VPS上部署的实例

给大家的部署说明

因为很多同学的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即可访问

点赞