用 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 配置