主要内容:ubuntu下 Django + MySQL + nginx + uwsgi
操作系统环境:ubuntu 14.04
一、相关软件安装:
首先升级apt-get : sudo apt-get update
Linux系统自带python 主要使用的是python 2.7.6版本
python的相关目录:/usr/bin/python 2.7.6 或 /usr/bin/python3.4
install MySQL: sudo apt-get install mysql-server mysql-client
installMySQLdb: sudo apt-get install python-mysqldb
install Nginx: sudo apt-get install nginx
install python-dev:sudo apt-get install python-dev
install uwsgi: pip install uwsgi
install Django:
sudo apt-get install python-pip
pip install django == 1.xx(我用的是1.8)
二、其原理为:
the web client<-> the web server(nginx)<-> the socket<-> uwsgi <-> Django
1.便捷的配置:在项目的个目录下建立mysite_nginx.conf配置文件
# mysite_nginx.conf
# the upstream component nginx needs to connect to
upstream django {
server unix:///path/to/yourproject/mysite.sock; # for a file socket
#server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}
# configuration of the server
server {
# the port your site will be served on
listen 80;
# the domain name it will serve for
server_name yourweb.com; # substitute your machine's IP address or FQDN
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
# Django media
location /media {
alias /path/to/yourproject/media; # your Django project's media files - amend as required
}
location /static {
alias /path/to/yourproject/static; # your Django project's static files - amend as required
}
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include /path/to/yourproject/uwsgi_params; # the uwsgi_params file you installed
}
}
其中uwsgi_params文件,你需要从/etc/nginx/uwsgi_params拷贝到你项目的根目录下。
在mysite/yourproject/settings.py中的APPS中添加创建的app应用,配置DATABASES数据库,
在静态文件部分添加静态文件的根目录:
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
在manage.py目录下使用python manage.py collectstatic收集静态文件
创建media目录用于存放媒体文件。
为了防止权限不够,无法访问相关文件,我在nginx.conf中更改用户权限:
user root;
然后我们继续在项目的根目录下创建uwsgi.ini文件:
#uwsgi.ini file
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /path/to/yourproject/
# Django's wsgi file
module = mysite.wsgi
# the virtualenv (full path)
#home = /path/to/virtualenv
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 4
threads = 2
# the socket (use the full path to be safe
socket = /path/to/yourproject/mysite.sock
# ... with appropriate permissions - may be needed
#chmod-socket = 666
# clear environment on exit
vacuum = true
将mysite_nginx.conf文件在/etc/nginx/sites-enabled/下建立连接文件
ln -s /path/to/yourproject/mysite_nginx.conf /etc/nginx/sites-enabled/
顺便删除/etc/nginx/sites-enabled下面的default文件,如果你想再次导入default文件
可以在/etc/nginx/sites-available/文件下找到。
随后运行:
uwsgi --ini uwsgi.ini
成功后编辑/etc/rc.local文件,可以使uwsgi在开机时自动启动
/usr/local/bin/uwsgi --socket /path/to/mysite.sock --module /path/to/mysite.wsgi
#我没用该权限命令--chmod-socket=666
若以上有问题参考以下博客
主要参考网站:
http://blog.csdn.net/yjdlailin/article/details/50879449
http://www.jianshu.com/p/e6ff4a28ab5a
http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html#configure-nginx-for-your-site
http://blog.csdn.net/fengyu09/article/details/38128033