我正在尝试在apache服务器(Xampp)上部署django应用程序
当前版本:-
Python 3.7.3
Xampp :- 3.2.4
Apache :- 2.4
windows 10
注意:-我正在使用虚拟环境
正在搜索操作方法并遇到了Tutorial
但是,进行与django文档相同的更改后。我的apache服务器未运行
引发错误
错误:Apache意外关闭。这可能是由于被阻止 端口,缺少依赖项,权限不当,崩溃或 通过另一种方法关闭。按日志按钮查看错误日志 并检查Windows事件查看器以获取更多线索。 帮助,复制并在论坛上发布整个日志窗口
我确实将 httpd.conf 中的端口更改为其他应用程序未使用的其他端口,我无法确定问题所在。
已添加到httpd.conf
LoadModule wsgi_module "c:/users/xxxx/appdata/local/programs/python/python37-32/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win32.pyd"
WSGIScriptAlias / "K:/Work/DevNet/first_project/first_project/wsgi.py"
WSGIPythonHome "C:/Users/xxxx/AppData/Local/Programs/Python/Python37-32"
WSGIPythonPath "K:/Work/Net/first_project"
<Directory "K:/Work/Net/first_project">
<Files wsgi.py>
Require all granted
</Files>
</Directory>
在httpd.conf中,如果我评论添加的行,则apache可以正常工作,但是当我取消注释这些行时,apache则行不通。 :-(
感谢那些乐于助人的人。 :-)
Windows事件查看器日志:-
[Sat Aug 10 19:00:05.852622 2019] [ssl:warn] [pid 9612:tid 560] AH01909: www.example.com:4433:0 server certificate does NOT include an ID which matches the server name
[Sat Aug 10 19:00:05.928109 2019] [core:warn] [pid 9612:tid 560] AH00098: pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Sat Aug 10 19:00:06.027802 2019] [ssl:warn] [pid 9612:tid 560] AH01909: www.example.com:4433:0 server certificate does NOT include an ID which matches the server name
[Sat Aug 10 19:00:06.049409 2019] [mpm_winnt:notice] [pid 9612:tid 560] AH00455: Apache/2.4.39 (Win64) OpenSSL/1.0.2s PHP/7.1.30 configured -- resuming normal operations
[Sat Aug 10 19:00:06.049409 2019] [mpm_winnt:notice] [pid 9612:tid 560] AH00456: Apache Lounge VC14 Server built: May 29 2019 14:38:49
[Sat Aug 10 19:00:06.049409 2019] [core:notice] [pid 9612:tid 560] AH00094: Command line: 'c:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Sat Aug 10 19:00:06.072102 2019] [mpm_winnt:notice] [pid 9612:tid 560] AH00418: Parent: Created child process 12636
[Sat Aug 10 19:00:06.769853 2019] [ssl:warn] [pid 12636:tid 524] AH01909: www.example.com:4433:0 server certificate does NOT include an ID which matches the server name
[Sat Aug 10 19:00:06.959523 2019] [ssl:warn] [pid 12636:tid 524] AH01909: www.example.com:4433:0 server certificate does NOT include an ID which matches the server name
[Sat Aug 10 19:00:06.981305 2019] [mpm_winnt:notice] [pid 12636:tid 524] AH00354: Child: Starting 150 worker threads.
答案 0 :(得分:1)
https://github.com/GrahamDumpleton/mod_wsgi/blob/develop/win32/README.rst这里有四个要求,您应该遵守。
据我所知,您没有遵循第一条规则,因为您拥有Apache Win64版本Apache/2.4.39 (Win64)
,但您使用的是32位python版本和mod_wsgi python37-32/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win32.pyd
此外,我注意到您说您正在使用虚拟环境。确保您的wsgi.py
首先加载虚拟环境。我的文件是这样开始的:
python_home='/path/to/the/djangoproject/venv'
activate_this=python_home+'/bin/activate_this.py'
with open(activate_this) as file_:
exec(file_.read(), dict(__file__=activate_this))
此外,我建议通过在VirtualHost文件中指定WSGIDaemonProcess和WSGIProcessGroup指令,将mod_wsgi配置为在守护程序模式下运行。
答案 1 :(得分:0)
在日志中(在配置的步骤中),它也应该显示WSGI模块版本。 但是您的日志中没有任何关于WSGI的信息-因此我怀疑您没有正确进行WSGI设置。 我已经从我的apache发布了一个示例日志(当然,它是不同的操作系统,但是应该相似)。
[Fri Aug 02 13:51:39.962856 2019] AH00163: Apache/2.4.39 (Unix) mod_wsgi/4.6.7 Python/3.7 configured -- resuming normal operations