首页 > 解决方案 > apache2(mod_wsgi-express):语法错误

问题描述

我不小心从持有我的 Django 网站的 apache 服务器中删除了虚拟环境。我创建了新的虚拟环境并在服务器上重新安装了所有内容,但是当我尝试使用命令重新启动服务器时:

sudo /etc/mod_wsgi-express-80/apachectl restart

我得到错误:

apache2 (mod_wsgi-express): Syntax error on line 155 of /etc/mod_wsgi-express-80/httpd.conf: Cannot load /www/site_name/venv/lib/python3.5/site-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so into server: /www/site_name/venv/lib/python3.5/site-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so: cannot open shared object file: No such file or directory

我检查了venv/lib/python3.5/site-packages/文件夹,其中没有名为mod_wsgi的文件夹。我应该手动创建文件夹吗?我是服务器处理的新手,不确定这是正确的解决方案。(早些时候我做了一个 git clean -fd 从服务器中删除了虚拟环境,最终导致了这种情况。)

一段/etc/mod_wsgi-express-80/httpd.conf看起来像这样:(第 155 行是以 "LoadModule.." 开头的行)

<IfModule mpm_prefork_module>
<IfDefine MOD_WSGI_WITH_PHP5>
<IfModule !php5_module>
Loadmodule php5_module '${MOD_WSGI_MODULES_DIRECTORY}/libphp5.so'
</IfModule>
AddHandler application/x-httpd-php .php
</IfDefine>
</IfModule>

LoadModule wsgi_module '/www/site_name/venv/lib/python3.5/site-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so'

<IfDefine MOD_WSGI_SERVER_METRICS>
<IfModule !status_module>
LoadModule status_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_status.so'
</IfModule>
</IfDefine>

请帮忙!

标签: djangopython-3.xapachemod-wsgi

解决方案


推荐阅读