尝试win10-django-apache-wsgi两天时间终于部署成功
我卡在这里
其他内容我就先忽略了,都是按照网络各种文章攻略来的。这里直接说关键点。我最后就是卡在了wsgi.py文件的设置上面。其中的路径不能按其他攻略写的,都没用,要按这个文章的来!
https://blog.csdn.net/mmmmsunshine/article/details/78781215
我的是这么写的:
import os
import sys
from django.core.wsgi import get_wsgi_application
root_path= os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
sys.path.insert(0,root_path)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'learningLog.settings')
application = get_wsgi_application()
settings.py的修改,不知道是否必须
按其他攻略,做了如下修改
DEBUG = False
TEMPLATE_DEBUG = False
ALLOWED_HOSTS = ["*"]
httpd.conf文件改动的地方很多,有些也不知道有没有用
listen 8078
WSGIPythonPath D:\Apache24\htdocs\learningLog\venv\Lib\site-packages
<VirtualHost *:8078>
ServerName blog_analysic
WSGIScriptAlias / D:/Apache24/htdocs/learningLog/learningLog/learningLog/wsgi.py
<Directory D:/Apache24/htdocs/learningLog/learningLog/learningLog/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static D:/Apache24/htdocs/learningLog/learningLog/web/static
<Directory D:/Apache24/htdocs/learningLog/learningLog/web/static>
Require all granted
</Directory>
DocumentRoot D:/Apache24/htdocs/learningLog
<Directory D:/Apache24/htdocs/learningLog>
Options Indexes FollowSymLinks
AddHandler wsgi-script .py
Options ExecCGI
AllowOverride All
Require all granted
</Directory>
</virtualhost>
LoadFile "c:/program files/python37/python37.dll"
LoadModule wsgi_module modules/mod_wsgi.pyd
WSGIPythonHome "c:/program files/python37"
我在弄的时候发现按其他教程安装完mod_wsgi后,硬盘里实际并没有mod_wsgi.pyd文件。这个太特么坑爹了。然后就从安装包里解压了这个文件出来。
另外还有一点就是我原来想在xampp里的apache里搞,但每次写下面任何一句时,apache就无法启动。最后还是只好另外安装单独的apache。
LoadFile "c:/program files/python37/python37.dll"
LoadModule wsgi_module modules/mod_wsgi.pyd
WSGIPythonHome "c:/program files/python37"
过程中还根据错误提示怀疑是权限问题就在上面添加了,Options ExecCGI,也不知道是不是必须的。
AddHandler wsgi-script .py这句可能是增加对py文件的支持,不知道是不是必须的,后面其实也有一句是相同功能。
经过尝试上面3句都不能改,也不能改到虚拟程序的scripts里,不知道教程里教虚拟venv还有没有用
启动一些模块,但我怀疑可能不需要
按这个文章,我开启了一些模块,但我觉得可能不是必须的,mark一下
https://www.cnblogs.com/onlyou13/p/10472779.html
可能要开启cgi
按这个文章:
https://blog.csdn.net/believe646875970/article/details/53924854
相应在httpd.conf文件里添加了对py文件的支持,不知道是不是必须的
AddHandler cgi-script .cgi .pl .py
其他
我在运行两个相同app,一个通过apache,一个通过powershell,发现登录一个,另一个就登录不了。
补充:之前部署其实只是半成功,管理界面里一编辑字段就出错,提示static没有注册,试了很多方法都不成功。只好先把这个问题放一放。部署后运行过一次collectstatic,当时是搜集了1百多文件。后来在备份的原程序(部署前的)里collectstatic,结果收集有上千的文件,说明部署后再收集静态文件会漏很多。因此我尝试部署前收集静态文件,再部署,这次管理界面里的字段可以编辑了。算是完全成功了。