用 apache 编译 mod_wsgi 的问题

Posted

技术标签:

【中文标题】用 apache 编译 mod_wsgi 的问题【英文标题】:Problems compling mod_wsgi with apache 【发布时间】:2013-08-11 13:25:51 【问题描述】:

我有一个 centos 6 服务器,我正在尝试配置 apache + wsgi + django 但我不能。 因为我的系统有 Python 2.6 并且我使用 Python2.7.5,所以我无法安装 yum。我正在下载一个 tar 文件并尝试使用以下命令进行编译:

./configure --with-python=/usr/local/bin/python2.7

但不起作用。系统响应:

/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC

我不明白我必须在哪里使用-fPIC。我正在执行:

./configure -fPIC --with-python=/usr/local/bin/python2.7

但不起作用。

谁能帮帮我?

【问题讨论】:

你应该在 serverfault 上问这个 【参考方案1】:

这在 mod_wsgi 文档中有介绍。

http://code.google.com/p/modwsgi/wiki/InstallationIssues

您的 Python 安装在构建时未配置 --enable-shared 选项。您无法在构建 mod_wsgi 时解决它。您的 Python 安装需要使用正确的配置选项重新安装。

【讨论】:

你如何在 virtual-env 中做到这一点? 您必须重建用于构建虚拟环境的 Python 安装,然后可能会重建虚拟环境。不明白你的意思。 虚拟环境在其中添加了一个 Python。所以我应该用rm -rf 删除默认的,然后用那个选项下载并编译它? virtualenv env 不会选择--neable-shared,对吗? 安装时,必须将 --enable-shared 选项提供给主要 Python 安装的“配置”脚本。您确定上述问题与您所遇到的问题相同吗,因为如果您确实从源代码编译了 Python 安装,您就会知道并理解它。您最初是如何安装 Python 的?【参考方案2】:

我假设您在共享主机服务器上,大多数共享主机提供商不支持 mod_wsgi

【讨论】:

其实不,我在自己的服务器上工作。我正在使用用 VirtualBox 创建的虚拟服务器。我需要尽快发布【参考方案3】:

尝试使用nginx服务器,部署起来似乎容易得多。

这是一个good tutorial for deploying to EC2,但您可以使用其中的一部分来配置服务器。

【讨论】:

以上是关于用 apache 编译 mod_wsgi 的问题的主要内容,如果未能解决你的问题,请参考以下文章

apache/mod_wsgi - 如何使用不同的 python 虚拟环境配置多个 webapps

有没有人设法在 Mac OS X Leopard 上为 apache 编译 mod_wsgi?

Django/mod_wsgi/Apache - mod_wsgi 没有使用为其编译的 Python 版本 - “ModuleNotFoundError: No module named 'math'

Apache Mod_wsgi Django Anaconda Python3 配置

flask+mod_wsgi+apache在windows上的布署

macos apache中mod_wsgi的配置