【问题标题】:Trouble with mod_wsgimod_wsgi 的问题
【发布时间】:2015-08-09 19:17:06
【问题描述】:

我正在使用 Hostgator 开发 Linux Centos 虚拟主机。我正在使用 httpd 版本 2.2.15。

我用标签--with-python=/usr/local/bin/python2.7--enable-shared 配置了mod_wsgi-4.4.13。 Python 2.6 安装在/usr/bin 中。我有一个从 /usr/local/lib/python2.7/config/libpython2.7.so.1.0/usr/local/lib/libpython.2.7.so.1.0 的符号链接。

我的麻烦是当我在/var/www/html 中运行python 'index.fcgi' 时,我得到了错误

从 mod_wsgi 导入 get_wsgi_application ImportError:/usr/lib64/httpd/modules/mod_wsgi.so:未定义符号:apr_bucket_shared_split

我尝试将$PYTHONHOME 设置为/usr/local。我已经设置了$LIBRARY_LD_PATH 变量(在此之前我根本无法获取库)。我真的不确定下一步该怎么做。请帮忙!

谢谢。

【问题讨论】:

  • 你在你的 apache 配置中设置了 WSGIPythonHome 吗?

标签: python linux apache mod-wsgi


【解决方案1】:

您有以下问题。

1 - --enable-shared 不与 mod_wsgi 构建一起使用,但在构建它时与 Python 的 configure 脚本一起使用。更多详情见:

2 - 从内存中,Python 的共享库应该已经链接到 /usr/local/lib。如果不是您的 Python 安装出现问题。即使安装在备用位置,使得库不在正常的共享库搜索路径上,而不是将libpython.2.7.so.1.0 符号链接到适当的目录,您最好在从干净源构建 mod_wsgi 时设置LD_RUN_PATH 环境变量代码是 Python 共享库所在的目录。见:

3 - .fcgi 文件与 mod_wsgi 无关,那么您为什么首先运行 python index.fcgi

4 - 没有告诉您输入代码:

from mod_wsgi import get_wsgi_application

您在哪里看到需要这样做?为什么还要加载 mod_wsgi.so 我不知道,因为 Python 不应该像这样在 Apache 模块目录中找到它,因为该目录不在正常的 Python 模块搜索路径上。

简而言之,您似乎在做您没有告诉我们的事情,而且您所做的并不是 mod_wsgi 文档告诉您要做的事情。请提供一个指向您用于设置的官方 mod_wsgi 文档部分的指针。

【讨论】:

  • 谢谢!你给了我一些继续前进的想法。
  • 你好,我还在破解,试图让它工作。我正在尝试在 hostgator 上设置 django,他们的说明说要使用这个 index.fcgi 文件:
  • #!/home/username/mydjango/bin/python import os import sys from flup.server.fcgi import WSGIServer from django.core.wsgi import get_wsgi_application sys.path.insert(0, "/ home/username/mydjango") os.environ['DJANGO_SETTINGS_MODULE'] = "testproject.settings" WSGIServer(get_wsgi_application()).run() 它适用于我的共享经销商帐户,但不适用于我的虚拟专用服务器帐户。跨度>
  • 我应该注意我没有在我的虚拟服务器上设置 DNS 名称服务器,我只使用 http://[ipaddress]/index.fcgi/admin,应该(也许?) 像在我的其他帐户上一样引导到 django 管理站点。感谢您的帮助。
猜你喜欢
  • 2011-03-16
  • 1970-01-01
  • 2011-07-29
  • 1970-01-01
  • 1970-01-01
  • 2013-08-11
  • 2011-02-04
  • 2011-05-24
相关资源
最近更新 更多