Django+uwsgi在linux和windows上的部署

但使书种多,会有岁稔时。这篇文章主要讲述Django+uwsgi在linux和windows上的部署相关的知识,希望能为你提供帮助。
最近自己写了一个简单的Django项目,打算部署到内部服务器上使用,这几天在Django官网以及百度各种技术博客的搜索,终于在两种平台都部署成功了,为了避免以后遇到类似问题,先暂时记录下整个步骤。
Linux环境:CentOS7 + Pyhton38 +uwsgi + django,我的django项目目录:/app/apps/studyweb
官网文档参考:https://docs.djangoproject.com/zh-hans/3.2/howto/deployment/wsgi/uwsgi/
1、安装uwsgi和django
          python -m pip install https://projects.unbit.it/downloads/uwsgi-lts.tar.gz
          pipinstall Django
2、进入django项目目录,编辑 uwsgi.ini
        cd /app/apps/studyweb
        vimuwsgi.ini
【Django+uwsgi在linux和windows上的部署】            [uwsgi]
            chdir=/app/apps/studyweb
            module=studyweb.wsgi:application
            http=0.0.0.0:8000
            processes=4
            threads=2
            master=true
            pidfile=/app/comm/uwsgi/uwsgi.pid
            vacuum=true
            max-requests=5000
            daemonize=/app/logs/uwsgi/uwsgi.log
      上述内容中的每个字段的解释可以到官网参考文档查询
3、新建uwsgi.ini里面的pidfile文件目录和daemonize日志目录
        mkdir -p /app/comm/uwsgi
        cd /app/comm/uwsgi
        touch uwsgi.pid
        mkdir -p /app/logs/uwsgi
4、进入项目目录启动
cd/app/apps/studyweb
      uwsgi --ini uwsgi.ini          #启动服务
        ps -ef |grep uwsgi& kill -9 pid    #关闭服务


Windows环境:window server 2016  + python36  +  Apache24 +  mod_wsgi +Django,我的django项目目录:D:\\Program Files\\studyweb,Apache目录:D:\\Program Files\\Apache24
官网文档参考:https://docs.djangoproject.com/zh-hans/3.2/howto/deployment/wsgi/modwsgi/
部署过程中查阅了这个博客:https://blog.csdn.net/qq_26621613/article/details/80180066
1、下载windows版本的apache,下载后直接解压到本地,我的Apache版本httpd-2.4.51-o111l-x64-vc15
        https://www.apachelounge.com/download/
2 、安装mod_wsgi
              下载mod_wsgi Python: http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
              安装.whl文件(我为了省事,直接将该文件拷到D盘根目录了,然后运行cmd如下命令安装):
              cd \\
              D:
              pip install "mod_wsgi-4.5.15+ap24vc14-cp36-cp36m-win_amd64.whl"
3、修改D:\\Program Files\\Apache24\\conf\\httpd.conf
              安装mod_wsgi成功后打开cmd运行mod_wsgi-express module-config:                   
                        LoadFile "d:/program files/python/python36/python36.dll"
                      LoadModule wsgi_module "d:/program files/python/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
                      WSGIPythonHome "d:/program files/python/python36"
        上面的内容加到apahce的httpd.conf中的LoadModule后面,另外还要添加WSGIScriptAlias,WSGIPythonPath,Directory
?
            LoadFile "d:/program files/python/python36/python36.dll"
            LoadModule wsgi_module "d:/program files/python/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
            WSGIPythonHome "d:/program files/python/python36"
            WSGIScriptAlias / "D:\\Program Files\\studyweb\\studyweb\\wsgi.py"
            WSGIPythonPath "D:\\Program Files\\studyweb"
            < Directory "D:\\Program Files\\studyweb">
                < Files wsgi.py>
                  Require all granted
                < /Files>
            < /Directory>
以上添加的内容中每个字段的说明可以到官网上查阅
4、启动apache
      cdD:\\Program Files\\Apache24\\bin
      安装apache服务
        httpd.exe -k install
        启动已安装的apache服务
        httpd.exe -k start
      测试安装结果
        http://ip:port
      停止Apache服务
      httpd.exe -k stop
      重启Apache服务(重新加载配置文件)
        httpd.exe -k restart



    推荐阅读