我一直在尝试解决内部服务器错误我从本地安装的django 2.0.2 whlist尝试通过mod-wsgi在apache 2.4.27上的python 3.6.3 virtualenv中运行它-py3 4.5.17以守护进程模式运行。
更新
我已经解决了问题,并且没有剩余的额外错误。最初的问题是通过向WSGIDaemonProcess指令添加python-home和python-path参数来解决的。第二个问题是由于我没有配置静态文件引起的,我已经通过阅读有关静态文件主题的django文档进行了更正。因此,我不再需要帮助解决这些问题,我们可以将其标记为已解决
我已经完成了额外的故障排除,并且能够通过将wurst.conf中的WSGIDaemonProcess行更改为
,将内部服务器错误500转换为在处不正确配置的新错误
`WSGIDaemonProcess wurst processes = 2 threads = 15 python-home = / home / mike / blog-env python-path = / home / mike / blog-env / wurstblog
技术我已经解决了我的初始问题但提出了一个新问题。
EndUpdate `
在我的apache2 error.log文件中,我可以看到
[Thu Feb 08 10:34:24.694864 2018] [wsgi:error] [pid 94364] [remote 127.0.0.1:47002] mod_wsgi (pid=94364): Target WSGI script '/var/www/wsgi-scripts/wurstblog.wsgi' cannot be loaded as Python module.
远程搜索互联网我发现了各种可能的解决方案 WSGI Script Cannot Be Loaded as Python Module -- 500 Internal Server Error
'How python is installed'
'Missmatch of mod-wsgi and python environment version'
'conflict with mod_python and mod_wsgi'
我不知道如何纠正我的python3安装或mod_python的问题
我在某处读到了wsgi脚本需要可执行所以ls -l /var/www/wsgi-scripts
给出的
-rwxr-xr-x 1 root root 454 Feb 8 10:52 wurstblog.wsgi
它看起来像这样:
import os
import sys
from django.core.wsgi import get_wsgi_application
sys.path.append('/home/mike/blog-env/wurstblog/wurstblog')
os.environ["DJANGO_SETTINGS_MODULE"] = "wurstblog.settings"
application = get_wsgi_application()
blog-env是我的pthon3 virtualenv和wurstblog是我的django项目所在的地方 我已经配置了虚拟主机/etc/apache2/sites-enabled/wurst.conf
<VirtualHost *:80>
ServerAdmin myname@nospam.com
<Directory /var/www/wsgi-scripts>
<Files wurstblog.wsgi>
Require all granted
</Files>
</Directory>
</VirtualHost>
WSGIPythonHome /home/mike/blog-env
WSGIPythonPath /home/mike/blog-env/wurstblog
WSGIScriptAlias / /var/www/wsgi-scripts/wurstblog.wsgi
WSGIDaemonProcess wurst processes=2 threads=15
WSGIProcessGroup wurst
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
有没有人对我可以尝试纠正这个问题有任何建议,谢谢。