zoukankan      html  css  js  c++  java
  • centos7下部署django服务

    网址参考:https://www.cnblogs.com/djangocn/p/9538551.html

    一、python虚拟环境中安装uwsgi:

      workon mypython3

      pip install uwsgi  或者 pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple  uwsgi

      安装uwsgi注意事项:

    从yum源上下载安装对应python版本的python-devel,如果不清楚的话先用 python --version 命令查看python版本,然后yum search python3,Tab键搜索出来下载。
    
    [root@VM_0_13_centos ~]# yum install python36u-devel

     解决uwsgi安装失败问题:

    1./mnt/udisk/project/myenv/myfirstenv/bin/python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip    #升级pip到最新
    2.centos8安装依赖命令:
      yum -y install python3-devel libevent-devel libjpeg-devel
    centos7安装依赖命令:
      yum -y install python-devel libevent-devel libjpeg-devel
    3.重新安装uwsgi:
      pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple  uwsgi

    二、安装完成后,为uwsgi建立软连接

      cd //

      find . -name mypython3  :找到虚拟环境所在目录

      ln -s /root/.virtualenvs/mypython3/bin/uwsgi /usr/bin/uwsgi   :建立软连接

    三、在django项目的根目录下创建项目的创建文件:wanwenyc.xml,用于uwsgi连接nginx

      cd  /usr/local/mydjangoweb/wanwenyc

      touch wanwenyc.xml   #wanwenyc.xml中的“wanwenyc”对应django项目的名字,例如django项目名为"mysite",则此处应该为mysite.xml

      vim wanwenyc.xml:

      wanwenyc.xml内容如下:

    <uwsgi>    
       <socket>127.0.0.1:8997</socket><!-- 内部端口,自定义 -->
       <chdir>/usr/local/mydjangoweb/wanwenyc</chdir><!-- 项目路径 -->           
       <module>wanwenyc.wsgi</module>
       <processes>4</processes> <!-- 进程数 -->    
       <daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
    </uwsgi>

      :wq! :保存

      uwsgi -x wanwenyc.xml     #运行wanwenyc.xml文件

      

    四、将所有静态文件整合到一个目录下

      进入项目的settings.py文件中,将所需所有的静态文件整合到一个静态目录中

      1.在项目中创建文件夹“staticall”;

      2.在settings中配置静态文件路径

      

    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'staticall')   #将"staticall"文件夹作为总的静态文件的根目录,需要运行python manage.py collectstatic才能使用
    STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'),
                        os.path.join(BASE_DIR,'extra_apps/xadmin', 'static'),  #将xadmin下的静态文件加到总的静态文件路径下
                        ]   #将static加入python根搜索路径,总的静态文件路径

      其中STATIC_URL与STATIC_ROOT不同,不能用同一个文件夹,否则会混乱

      STATIC_ROOT:运行manage.py collectstatic后静态文件将复制到的目录。注意:不要把你项目的静态文件放到这个目录。

              这个目录只有在运行collectstatic时才会用到。我最开始想当然的以为这个目录和MEDIA_ROOT的作用是相同的,

              致使在开发环境下一直无法找到静态文件。
      STATIC_URL:设置的static file的起始url,这个只可以在template里面引用到。这个参数和MEDIA_URL的含义差不多。
      STATICFILES_DIRS:除了各个app的static目录以外还需要管理的静态文件位置,比如项目公共的静态文件差不多。和TEMPLATE_DIRS的含义差不多。

      3. 运行python manage.py collectstatic,将所有静态文件收集到“staticall”文件夹中,以便nginx静态文件配置使用

      

    五、安装nginx并配置:

      1. wget http://nginx.org/download/nginx-1.13.7.tar.gz      #下载nginx-1.13.7.tar.gz

      2. tar -zxvf nginx-1.13.7.tar.gz   #解压nginx-1.13.7.tar.gz

      3. mv nginx-1.13.7  /opt/nginx     #将解压后的文件移动到/opt/nginx的路径下

      4.cd  /opt/nginx   #进入/opt/nginx路径下

      5.  依次执行以下命令:

          ./configure

          make

          make install

       或者  ./configure  &&  make  && make install

    centos8安装nginx:yum install nginx
      配置文件路径:/etc/nginx

      6.执行完成后,nginx一般默认安装好的路径为/usr/local/nginx

        在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。

          cp nginx.conf nginx.conf.bak

        然后打开nginx.conf,把原来的内容删除,直接加入以下内容:

    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        server {
            listen       62061;    #服务器启动的端口
            server_name  www.django.cn;   #服务器的名字,没有则用127.0.0.1
            charset utf-8;
            location / {
               include uwsgi_params;
               uwsgi_pass 127.0.0.1:8997;
               uwsgi_param UWSGI_SCRIPT wanwenyc.wsgi;
               uwsgi_param UWSGI_CHDIR /usr/local/mydjangoweb/wanwenyc;  #djang项目的根路径
               
            }
            location /static/ {
            alias /usr/local/mydjangoweb/wanwenyc/staticall/;  #django项目的静态文件路径,alias为别名的意思,即指定/static/路径为/usr/local/mydjangoweb/wanwenyc/staticall/
            }
        }
    }

      注意:

        1. 此处 uwsgi_pass 后的内容“127.0.0.1:8997”一定要与wanwenyc.xml中的<socket>127.0.0.1:8997</socket>中的内容一致。

        2.    location /static/ {
            alias /usr/local/mydjangoweb/wanwenyc/staticall/;  #django项目的静态文件路径,alias为别名的意思,即指定/static/路径为/usr/local/mydjangoweb/wanwenyc/staticall/
            }   中配置的静态目录“/usr/local/mydjangoweb/wanwenyc/staticall/”一定不要是root用户下的路径,因为nginx访问不到(如果django项目的路径在root用户的用户目录下,即“/root/”目录下,要把django的项目移动到非root目录下,如此处将djang项目由“/root/PycharmProjects/wanwenyc”移动到“/usr/local/mydjangoweb/wanwenyc/”)

    六、运行nginx:

      1.cd  /usr/local/nginx/sbin/   #进入/usr/local/nginx/sbin/路径

      2. ./nginx  -t   #运行nginx,查看/usr/local/nginx/conf/中的配置文件(nginx.conf文件)是否有错

      3. 无错后, ./nginx  运行nginx

      4.如果有修改内容,需要重新运行uwsgi和nginx:

        运行uwsgi:

          cd  /usr/local/mydjangoweb/wanwenyc/    #进入项目根目录

          uwsgi -x wanwenyc.xml

        云心nginx:

          cd  /usr/local/nginx/sbin/

          ./nginx -s reload     #重新加载运行nginx

    七、访问网址:http://192.168.100.198:62061/ (本机IP+端口号),也可以为:http://127.0.0.1:62061/

    八、root用户下的django项目也可以,但是要把静态文件放到一个nginx能访问的目录,例如:/ usr/local/djangostatefile/路径下:

        cd  /usr/local

        mkdir djangostatefile

        cd /root/PycharmProjects/wanwenyc    #/root/PycharmProjects/wanwenyc为root根目录下的django项目根路径

        cp -r staticall  /usr/local/djangostatefile/    #将staticall文件复制放到 /usr/local/djangostatefile/路径下

        然后在/usr/local/nginx/conf/下的nginx.conf文件的配置如下:

    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        server {
            listen       62061;
            server_name  www.django.cn;
            charset utf-8;
            location / {
               include uwsgi_params;
               uwsgi_pass 127.0.0.1:8997;
               uwsgi_param UWSGI_SCRIPT wanwenyc.wsgi;
               uwsgi_param UWSGI_CHDIR /root/PycharmProjects/wanwenyc;  #root目录下的项目
               
            }
            location /static/ {
            alias /usr/local/djangostatefile/staticall/;    #非root目录下的django静态文件目录
            }
        }
    }

      

          cd  /usr/local/nginx/sbin/

          ./nginx -s reload     #重新加载运行nginx

    九、nginx设置开机启动:https://www.cnblogs.com/gimin/p/8893559.html

    十、nginx 使用使用memcached:

    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        upstream memcacheds {
            server 127.0.0.1:11211;
        }  #使用memcached
    
        server {
            listen       62060;
            server_name  www.django.cn;
            charset utf-8;
            location / {
               include uwsgi_params;
               uwsgi_pass 127.0.0.1:8997;
               uwsgi_param UWSGI_SCRIPT wanwenyc.wsgi;
               uwsgi_param UWSGI_CHDIR /root/PycharmProjects/wanwenyc;  #root目录下的项目
               
            }
            location /static/ {
            alias /usr/local/djangostatefile/staticall/;    #非root目录下的django静态文件目录
            }
        }
    }

     十一、不使用/usr/local/nginx/ 下的ngixn配置,使用 /usr/sbin/nginx (配置文件在/etc/nginx/路径下)部署:

        cp -r staticall /mydjango/    :把staticall路径下的文件放到 /mydjango路径下

  • 相关阅读:
    借贷宝什么鬼 砸钱推广是妙招还是险棋
    div+css 怎么让一个小div在另一个大div里面 垂直居中
    php重新整理数组索引
    JS 得细心的坑位
    chrome表单自动填充导致input文本框背景变成偏黄色问题解决
    phpstorm配置xdebug
    MySQLi基于面向对象的编程
    PHP中开启gzip压缩的2种方法
    SVN创建主干,分支、合并分支
    懒加载和预加载【转载】
  • 原文地址:https://www.cnblogs.com/jingzaixin/p/13375719.html
Copyright © 2011-2022 走看看