我试图让我的Apache服务器运行mod_wsgi并收到此错误:
[Fri Jul 19 10:24:05 2013] [warn] mod_wsgi: Compiled for Python/2.7.3.
[Fri Jul 19 10:24:05 2013] [warn] mod_wsgi: Runtime using Python/2.7.4.
这是通过进入Python所在的/usr/local/src
并运行来解决的:
./configure --enable-shared
make install
到目前为止我所看到的似乎是修复需要mod_wsgi必须能够访问所有Python库,因此运行--enable-shared
命令将允许它工作。在我的Apache error.log中看到上面的[warn]
行后,它说它无法在我的DJANGO_SETTINGS_MODULE
settings.py
文件中查找环境变量。当我替换这些变量时,它会说它可以在其他地方查找其他Python包。
我在Rackspace VPS上运行Ubuntu Linux 13.04,使用Django 1.5.2,在我的本地机器上运行Python 2.7.3,但Rackspace VPS的原生Python是2.7.4。我目前使用的mod_wsgi版本是3.4
我找到了这个链接
http://code.google.com/p/modwsgi/wiki/InstallationIssues
在“Python补丁程序级别不匹配”一节中似乎说我必须重建mod_wsgi,但这听起来有些困难所以想问一下是否有更简单的修复?
提前谢谢你,
答案 0 :(得分:5)
构建mod_wsgi并不复杂。
但是,如果您使用的是发行版默认的python,那么您的发行版通常会打包mod_wsgi,以便它已经可以使用。
删除您上传到服务器的mod_wsgi。
在ubuntu上尝试:
apt-get install libapache2-mod-wsgi
重新启动apache然后它应该可以工作。
答案 1 :(得分:0)
如果mod_wsgi最初是针对Python共享库与静态链接的,那么您不必重建任何内容。您引用的文档说:
如果两个版本都提供,这通常不会成为问题 Python最初安装时带有'--enable-shared'选项 提供给'configure'。如果使用此选项,则使用Python 库将在运行时动态链接,因此升级到 将自动使用Python版本。
由于您使用的是系统安装的软件包,因此它们应该使用共享库,因此应该没有问题。
您可以按照以下列出的步骤进行验证: