美文网首页零基础使用Django2.0.1打造在线教育网站
零基础使用Django2.0.1打造在线教育网站(二十七):项目

零基础使用Django2.0.1打造在线教育网站(二十七):项目

作者: 啃饼小白 | 来源:发表于2018-08-21 12:04 被阅读12次

    写在前面

    本篇笔记我们将介绍如何把我们的django项目部署到服务器上,里面涉及到的东西很多,特别是小白第一次接触可能不清楚,但是没关系,你跟着我的节奏走就可以。注意本文是部署Python3.6.4和Django2.0.1与bobby老师讲的大体上差不多,只是部分命令不一样。注意我已经把win10里面的eduline文件放到deepin的桌面上了。(推荐使用U盘导入文件,否则VMware导入本地文件很麻烦。)使用Centos的朋友请点击这里: centos7 下通过nginx+uwsgi部署django应用

    nginx + uwsgi

    首先在win10上面利用虚拟机安装Ubantu系统,这里我个人推荐使用国产deepin操作系统。不会安装的请点击这里:VmWare安装深度deepin操作系统

    安装nginx

    1、使用命令,安装nginx:

    sudo apt-get install nginx
    

    2、使用下面的命令查看是否启动nginx

    ps aux | grep nginx
    

    3、使用下面的命令查看本地ip

    ifconfig
    

    4、本地输入获取到的ip到浏览器访问一下:


    安装数据库

    1、使用命令,安装数据库:

    sudo apt-get install mysql-server
    

    出现下面的图片:

    输入root,按上下箭头进行选择,回车进行确定!
    2、使用下面的命令查看是否启动mysql

    ps aux | grep mysql
    

    3、使用下面的命令进入数据库:

    mysql -u root -p
    

    查看数据库命令:show databases;,退出数据库命令:exit

    4、在终端中输入sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
    修改其中bind-address =127.0.0.1为bind-address =0.0.0.0,注意这样会暴露端口,我们这里仅仅是为了让win10进行连接。所以真正部署的时候,尽量127.0.0.1,不要修改。(在vim中修改文件使用键盘上的i键进入,然后进行修改。修改完成以后,按键盘上的Esc键退出插入模式,再按shift+:,输入wq进行保存。仅仅输入q!是退出,而wq是保存并退出。)


    5、使用下面的命令重启数据库:
    sudo service mysql restart  # 重启数据库
    
    ifconfig # 查看ip
    

    6、打开win10上面的Navicat,将获取到的ip地址新建数据库,然后测试一下:发现链接不允许。



    7、在终端中输入

    mysql -h 192.168.118.128 -u root -p
    

    发现还是有问题。这时我们要修改数据库访问权限:

    mysql -u root -p  # 进入数据库
    
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    
    flush privileges;
    

    然后exit退出数据库。
    8、重新链接测试一下,发现可以正常连接了。

    9,新建数据库:

    10、使用下面的命令安装pip3:
    sudo apt-get install python3-pip
    

    11、使用下面的命令安装virtualenv:

    sudo apt-get install virtualenv
    

    12、使用下面的命令安装virtualenvwrapper:

    sudo apt-get install virtualenvwrapper
    

    13、修改配置文件:

    vim ~/.bashrc
    
    export WORKON_HOME=$HOME/.virtualenvs
    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    
    source ~/.bashrc
    

    14、新建虚拟环境:

    workon #测试一下
    
    mkvirtualenv eduline
    

    15、win10导出requirements.txt

    pip freeze > requirements.txt
    

    16、虚拟机deepin安装requirements.txt

    sudo pip3 install -r requirements.txt
    

    17、如果遇到安装不了的软件或者第三方库,可以使用下面的命令

    sudo pip3 install Django==2.0.1
    

    18、出现这种情况,使用下面的命令:

    sudo apt-get install libmysqlclient-dev
    


    19、如果第三方库安装太慢,可以使用豆瓣源加速:

    sudo pip3 install -i https://pypi.douban.com/simple pillow==4.10.1
    

    20、查看已经安装的包使用:

    pip3 list
    

    安装uwsgi

    1、使用下面的命令进行安装:

    sudo pip3 install uwsgi
    

    2、运行一下wsgi

    uwsgi --http :8000 --module eduline.wsgi
    

    3、启动本地服务器:

    python3 manage.py runserver
    

    4、重新设置监听窗口:

    python3 manage.py runserver 0.0.0.0:8000
    

    5、数据库迁移:



    6、使用你本地的ip地址进行访问,页面出现,没有问题。


    7、配置nginx:

    新建uc_nginx.conf
    
    
    # the upstream component nginx needs to connect to
    upstream django {
    # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
    server 127.0.0.1:8000; # 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 你的ip地址 ; # 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 你的目录/eduline/media;  # 指向django的media目录
    }
    
    location /static {
        alias 你的目录/eduline/static; # 指向django的static目录
    }
    
    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django;
        include     uwsgi_params; # the uwsgi_params file you installed
    }
    }
    
    

    8、将该配置文件加入到nginx的启动配置文件中:

    sudo ln -s 你的目录/eduline/conf/nginx/uc_nginx.conf /etc/nginx/conf.d/
    

    9、拉取所有需要的static file 到同一个目录

    在django的setting文件中,添加下面一行内容:
    
        STATIC_ROOT = os.path.join(BASE_DIR, "static/")
    

    10、运行命令:

        python manage.py collectstatic
    

    11、通过配置文件启动uwsgi:

    新建uwsgi.ini 配置文件, 内容如下:
    
        # mysite_uwsgi.ini file
        [uwsgi]
    
        # Django-related settings
        # the base directory (full path)
        chdir           = /home/licheetools/eduline
        # Django's wsgi file
        module          = eduline.wsgi
        # the virtualenv (full path)
    
        # process-related settings
        # master
        master          = true
        # maximum number of worker processes
        processes       = 10
        # the socket (use the full path to be safe
        socket          = 127.0.0.1:8000
        # ... with appropriate permissions - may be needed
        # chmod-socket    = 664
        # clear environment on exit
        vacuum          = true
        virtualenv = /home/licheetools/.virtualenvs/mxonline
    
        logto = /tmp/mylog.log
    
    注:
        chdir: 表示需要操作的目录,也就是项目的目录
        module: wsgi文件的路径
        processes: 进程数
        virtualenv:虚拟环境的目录
    
    

    检查虚拟环境是否有问题:


    然后在终端输入:

    workon eduline
    
    uwsgi -i 你的目录/eduline/conf/uwsgi.ini 
    
    

    如果在conf目录下,只需使用命令:

    uwsgi -i uwsgi.ini
    

    最后一步,在浏览器地址里面输入你的ip就可以访问到我们的项目了。

    至此,我们Django项目就成功的部署到服务器上面了。回顾这个项目,收获很多,但是坑也很多,坚持到最后才会感受成功的喜悦!

    相关文章

      网友评论

        本文标题:零基础使用Django2.0.1打造在线教育网站(二十七):项目

        本文链接:https://www.haomeiwen.com/subject/klaubftx.html