2018-09-05 部署django网站到阿里云(真实环境下部署)

阿里云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打开网站


2018-09-05 部署django网站到阿里云(真实环境下部署)_第1张图片

你可能感兴趣的:(2018-09-05 部署django网站到阿里云(真实环境下部署))