请问如何解决这个问题?Invalid command 'WSGIScriptAlias',可能是拼写错误或由于未包含在服务器配置中的模块定义而导致的“configtest”操作失败。
尝试在Apache中启用wsgi模块
sudo a2enmod wsgi
如果您遇到以下错误
ERROR: Module mod-wsgi does not exist!
您需要按照以下步骤安装mod wsgi。您需要运行以下命令:
sudo apt-get install libapache2-mod-wsgi
sudo a2enmod wsgi
sudo service apache2 restart
要在httpd中启用wsgi_mod,请安装该模块。
sudo yum install mod_wsgi
确保在httpd配置文件中加载模块
sudo nano /etc/httpd/conf/httpd.conf
然后在配置文件中添加以下行,加入其他已加载模块的列表:
LoadModule wsgi_module modules/mod_wsgi.so
我在搞砸了Apache安装并在apt purge apache2
后重新启动设置时遇到了这个错误。这似乎还删除了wsgi模块,但Ubuntu 20 LTS仍然认为它存在。
所以我不得不从头开始清除并重新安装wsgi模块:
apt purge -y libapache2-mod-wsgi-py3
apt install -y libapache2-mod-wsgi-py3
a2enmod wsgi
此后,Apache 又能够找到它了。
我安装了与Python3.5兼容的mod_wsgi,但我的项目虚拟环境使用的是Python3.7。所以需要使用适用于Python3.7的mod_wsgi。我也安装了它(python3.7 -m pip install mod_wsgi)。但是Apache2缺少一个配置,导致了这个问题。
运行:mod_wsgi-express module-config
将输出添加到/etc/apache2/apache.conf中。
(LoadModule wsgi_module "/home/user/.local/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so"
WSGIPythonHome "/usr" )
然后重新启动 - sudo service apache2 restart
这样就解决了问题。
我认为你需要在你的apache2.conf文件中添加这一行
LoadModule wsgi_module "/usr/local/lib/python3.6/dist-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
以下命令将会给你上述输出
mod_wsgi-express module-config
apt-get update --fix-missing
命令更新了软件包,然后我就能安装了。 - Alex Stewart