但使书种多,会有岁稔时。这篇文章主要讲述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
推荐阅读
- gitlab 搭建go modules私有仓库
- Android 控件架构与自定义控件详解
- Android使用 SO 库时要注意的一些问题
- WordPress自定义程序在自定义程序界面中可完美运行,但在实际设计中却无法运行
- WordPress Customizr主题现代风格-子主题和覆盖模板
- WordPress-定制程序设置会覆盖以前的设置
- WordPress的自定义器隐藏自定义section()
- WordPress自定义器自定义控件传输postMessage不起作用
- WordPress自定义不起作用-load-scripts.php错误