Python apache2错误日志。致电';site.addsitedir()和#x27;对于'失败;(空)和#x27;,停止

Python apache2错误日志。致电';site.addsitedir()和#x27;对于'失败;(空)和#x27;,停止,python,django,apache,amazon-web-services,wsgi,Python,Django,Apache,Amazon Web Services,Wsgi,我想在Ubuntu中连接Python和Apache2服务器 所以aws必须在ubuntu服务器上输入以下代码 pip install Django sudo apt-get install appache2 sudo apt-get install libapache2-mod-wsgi-py3 然后我创建了Python项目和app文件夹pythonvenv Apache 2000-default.conf的代码如下所示: <virtualhost *:80> WSGIDaem

我想在Ubuntu中连接Python和Apache2服务器

所以aws必须在ubuntu服务器上输入以下代码

pip install Django

sudo apt-get install appache2

sudo apt-get install libapache2-mod-wsgi-py3
然后我创建了Python项目和app文件夹pythonvenv

Apache 2000-default.conf的代码如下所示:

<virtualhost *:80>
WSGIDaemonProcess bot python-path=/home/ubuntu/Django/bot:/home/ubuntu/Django/myvenv/lib/python3.5/site-packages
ServerAdmin webmaster@localhost
WSGIScriptAlias /52.78.108.223 /home/ubuntu/Django/bot/wsgi.py
<Directory /home/ubuntu/Django/bot>
<Files wsgi.py>
        Require all granted
</Files>
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</virtualhost> 

WSGIDaemonProcess bot python path=/home/ubuntu/Django/bot:/home/ubuntu/Django/myvenv/lib/python3.5/site-packages
服务器管理员webmaster@localhost
WSGIScriptAlias/52.78.108.223/home/ubuntu/Django/bot/wsgi.py
要求所有授权
ErrorLog${APACHE_LOG_DIR}/error.LOG
CustomLog${APACHE\u LOG\u DIR}/access.LOG组合
位置正确。没有打字失误

“WSGIScriptAlias”的第一个参数​​/' 应该是空白的,但是如果你把它放在一个空白处,当你点击这个IP时,你将看不到“it walked”页面。所以我把服务器的外部IP。然后它走得很好

查看Apache2错误日志

[Wed May 02 21:32:28.100569 2018][wsgi:warn][pid 22648:tid 140282945592]mod_wsgi:Compiled for Python/3.5.1+

[Wed May 02 21:32:28.100633 2018][wsgi:warn][pid 22648:tid 140282945592]mod_wsgi:Runtime using Python/3.5.2

[Wed May 02 21:32:28.101406 2018][mpm_事件:通知][pid 22648:tid 14028294592]AH00489:Apache/2.4.18(Ubuntu)mod_wsgi/4.3.0 Python/3.5.2已配置--恢复正常操作

[Wed May 02 21:32:28.101426 2018][core:notice][pid 22648:tid 140282945592]AH00094:命令行:'/usr/sbin/apache2'

[Wed May 02 21:32:28.191175 2018][wsgi:error][pid 22651:tid 140282945592]mod_wsgi(pid=22651):调用'site.addsitedir()'失败(null)',正在停止

[Wed May 02 21:32:28.192041 2018][wsgi:error][pid 22651:tid 140282945592]mod_wsgi(pid=22651):调用'site.addsitedir()'失败,因为'/home/ubuntu/Django/myvenv/lib/python3.5/site packages'

[2018年5月2日星期三21:33:21.733277][mpm_事件:通知][pid 22648:tid 14028294504592]AH00494:已收到通知。正在尝试重新启动

[Wed May 02 21:33:21.787095 2018][wsgi:warn][pid 22648:tid 140282945592]mod_wsgi:Compiled for Python/3.5.1+

[Wed May 02 21:33:21.787410 2018][wsgi:warn][pid 22648:tid 140282945592]mod_wsgi:Runtime using Python/3.5.2

[Wed May 02 21:33:21.788397 2018][mpm_事件:通知][pid 22648:tid 14028294592]AH00489:Apache/2.4.18(Ubuntu)mod_wsgi/4.3.0 Python/3.5.2已配置--恢复正常操作

[Wed May 02 21:33:21.788447 2018][core:notice][pid 22648:tid 140282945592]AH00094:命令行:'/usr/sbin/apache2'

[Wed May 02 21:33:21.860854 2018][wsgi:error][pid 22781:tid 140282945592]mod_wsgi(pid=22781):调用'site.addsitedir()'失败(null)',正在停止

[Wed May 02 21:33:21.860889 2018][wsgi:error][pid 22781:tid 140282945592]mod_wsgi(pid=22781):调用'site.addsitedir()'失败,因为'/home/ubuntu/Django/myvenv/lib/python3.5/site包'

结果是这样的

我在网上搜索。据说wsgi版本很低

但是,apache2使用的wsgi只能与“sudo apt get install libapache2-mod-wsgi-py3”一起安装

Apache2错误日志显示wsgi版本为4.3.0

如果使用“pip install mod wsgi”安装最新版本的wsgi,Apache 2错误日志将显示4.3.0

'调用'site.addsitedir()'失败,原因为'(null)”,正在停止。'错误日志仍会显示


如何解决此错误?

不要使用mod_wsgi 4.3.0。它非常旧,内存方面存在问题,无法为
python路径提供多个目录。或者使用:

WSGIDaemonProcess bot python-home=/home/ubuntu/Django/myvenv python-path=/home/ubuntu/Django/bot
您不应该将
站点包
python路径
一起使用。这不是推荐的方法,自mod_wsgi 3.3以来就没有过

有关使用虚拟环境的更多详细信息,请参阅:


如果在使用
pip install mod_wsgi
后,它没有显示最新的mod_wsgi,那是因为您没有禁用/卸载系统mod_wsgi包。您需要手动配置Apache以加载更新的mod_wsgi,方法是运行
mod_wsgi-express module config
并获取输出并将其添加到Apache配置中。

谢谢。我安装了wsgi的最新版本。通过使用“mod_wsgi-express start server wsgi.py”命令进行修复。@如果这是解决方案,请将其标记为选中答案!