阿里云Ubantu16.04+django+uwsgi+nginx部署django项目(真实环境)
弄这个弄了好几天,网上各种找资料,最后总算完成,也是站在大佬们的肩膀上完成的,原理推荐去看一下bilibili上
https://www.bilibili.com/video/av10247256?from=search&seid=12533707057638545380 在此也感谢大佬传授
1、申请阿里云(这里不详细赘述了)
2、刚购买的阿里云有python2.7和python3.5两个版本,python2.7以后都不会用了,所以直接卸载掉
1、卸载: 命令:sudo apt-get autoremove python2.7
2、如果要使用python启动python3.5,否则只能用python3启动
命令:sudo ln -s /usr/bin/python3.5 /usr/bin/python
3、安装并启动nginx(安装自动启动)
1、安装前最好先升级一下apt 命令:apt update
2、安装nginx命令:apt install nginx
3、启动和停止命令:/etc/init.d/nginx start/restart/stop 坑一:此处可以输入阿里云的公网ip(不用输入端口,Nginx的默认端口80,但是要在阿里云中配置安全组规则,入方向和出方向配置80端口,否则会报错)
4、安装django
1、此处我安装的django1.11.8,需要别的版本可以直接修改数字
命令:pip3 install django==1.11.8
先安装pip3这里可以先升级一下pip pip3 install --upgrade pip
坑:再用pip3下载模块会报错,解决办法cd /usr/bin vim pip3将from开始的内容换成 :
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
5、上传django项目
1、我是用的winscp上传的文件,此处我上传在 /var/www下
6、安装数据库
1、sudo apt-get install mysql-server(中间有输入root用户密码) pip3 install pymysql
2、创建数据库 (django项目中的数据库配置的数据库名)
3、创建日志(需要切换到django项目中)命令:python manage.py makemigrations
报错:安装pip install Pillow
4、同步数据库
命令:python manage.py migrate
5、加载项目中初始化数据(有则加)
命令:python manage.py loaddata初始数据json文件
6、收集一下静态资源
命令:python manage.py collectstatic
7、创建三个文件 uwsgi.ini 、 nginx.conf、uwsgi_params1、uwsgi.ini(路径修改为自己的项目路径)
内容:(我都是手敲的,你们有福了,注意一下复制进去的时候前几个字母会丢)
[uwsgi]
chdir =/var/www/librepath这里
module =librepath.wsgi这里(项目主应用)
home =/var/www/env(坑二:这个参数在虚拟环境中才需要,真实环境不需要)
master =true
processes =10
socket = :8001
chmod-socket =666
vacuum =true
2、nginx.conf(路径修改为自己的项目路径,配置文件修改后要重启nginx)
内容:
upstream django {
server 127.0.0.1:8001;
}
server {
listen 80;
server_name .librepath.com;这里
charset utf-8;
client_max_body_size 75M;
location /static{
alias /var/www/librepath/static;这里
}
location / {
uwsgi_pass django;
include /var/www/uwsgi_params;
}
}
3、uwsgi_params(不用修改)
内容:
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
8、用nginx.conf覆盖一下default
命令:cd /etc/nginx/sites-enabled
rm default
ln -s /var/www/nginx.conf nginx.conf
9、安装uwsgi
pip3 install uwsgi
在uwsgi.ini文件的目录中启动服务 uwsgi --ini uwsgi.ini
10、重启nginx 坑三:nginx 如果启动失败
[....] Restarting nginx (via systemctl): nginx.serviceJob for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
使用报错信息中systemctl status nginx.service命令去查找错误信息,会指出路径
11、设置随服务器启动而启动
命令:vim /etc/rc.local
加入/usr/local/bin/uwsgi --ini /var/www/uwsgi.ini
12、重启服务器 reboot
13、重启后输入ip打开网站