美文网首页
如何在Centos里部署Django?

如何在Centos里部署Django?

作者: 黑色汪汪汪 | 来源:发表于2018-07-20 11:32 被阅读0次

    在Centos里部署Django,为了使服务器可以部署更多的项目而不冲突,最好使用虚拟环境。
    python2 如何安装虚拟环境,在下不清楚,见谅,是时候切换到python3了,骚年。

    首选安装python3,我安装的是最新的python3.6版本,命令:

    yum install python36 python36-devel
    

    安装完成之后,我习惯在用户home目录下建立虚拟环境,比如创建用户:django

    #useradd django
    #passwd Django
    

    创建完用户之后就切换到指定用户下面:su - django
    在 visudo里,把django加上sudo权限(不细说了)。
    创建虚拟环境:

    sudo python3.6 -m venv .venv
    

    后面的.venv 是你创建的虚拟环境名称,如果你有多个项目要部署,那最好起一个有意义的名字。

    到.venv目录下看看:


    image.png

    ok,建立好了。我们激活虚拟环境:

    source ~/.venv/bin/activate
    

    剩下的事就是安装项目依赖的库了

    pip3 install django==2.0.1
    pip3 install mysql-connector
    pip3 install pillow
    pip3 install mysql-connector-python
    pip3 install uwsgi
    

    依赖的库都安装好以后,可以在项目目录下执行:python3.6 manage.py runserver

    如果可以正常运行,那么说明项目没问题了,可以继续下一步。

    下一步,用uwsgi跑项目。

    上面已经安装了uwsgi,只需创建一个配置文件即可,我放到/etc/uwsgi.ini
    编辑uwsgi.ini

    [uwsgi]
    socket = 127.0.0.1:9002
    chdir=/data/myproject
    wsgi-file=/data/myproject/wsgi.py#项目文件自带的uwsgi.py
    virtualenv = /root/.venv#虚拟环境目录
    processes=4#进程数
    threads=4#线程数
    stats = 127.0.0.1:9008 #状态
    daemonize = /data/log/httpServer.log#日志,改成自己喜欢的目录
    pidfile = /tmp/uwsgi.pid#pid
    vacuum = true
    log-maxsize = 50000000
    

    运行uwsgi:

    找到虚拟环境目录bin下面的uwsgi,执行他:

    /root/.venv/bin/uwsgi       /etc/uwsgi.ini#后面跟上配置文件
    

    查看日志,daemonize = /data/log/httpServer.log#日志,改成自己喜欢的目录,没有报错就ok了。
    同时看看9002端口起来了没有,命令:

    netstat -an |grep 9002
    

    起来了,日志不报错就OK了。这时候您用浏览器访问9002端口就可以打开网站了。

    安装Nginx

    yum install nginx
    

    讲究的人可以自己下载源码编译安装。
    安装完成之后,找到nginx配置文件,/etc/nginx/nginx.conf
    修改它:
    这里只贴出server部分,其余部分属于优化,不影响功能。

    server {
            listen 80;#监听80端口
            server_name s2.test.com;#监听的域名
            access_log /data/log/access.log;#日志
            error_log /data/log/error.log;#日志
            charset     utf-8;
            client_max_body_size 75M;
            location / {
            include     /etc/nginx/uwsgi_params;
                    uwsgi_pass  127.0.0.1:9002;
            }
            location /static {
                root /data/myproject;#对应项目静态目录/data/myproject/static
            }
            location /media {
                root /data/myproject;#同上media目录
           }
    }
    

    nginx -t 测试配置文件是否有错误。
    准确无误后,启动nginx

    #nginx
    

    访问域名试试吧~,不明白请留言。

    相关文章

      网友评论

          本文标题:如何在Centos里部署Django?

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