在没有根权限的情况下编译mod_wsgi

0 投票
1 回答
557 浏览
提问于 2025-04-18 09:45

我需要在CentOS上编译mod_wsgi,但没有管理员权限。系统上有一个预编译的mod_wsgi版本,但它是为python2.6准备的。我的django应用需要python2.7,所以我需要用python2.7来编译mod_wsgi。我已经下载并编译了python2.7,并创建了一个虚拟环境。现在我用这个虚拟环境来编译mod_wsgi:./configure --with-python=/MYHOME/.MYENV/bin/python2.7。配置步骤进行得很顺利,make也没问题。但是,当我执行make install时,我遇到了一个错误:

cp: cannot create regular file `/usr/lib64/httpd/modules/mod_wsgi.so': Permission denied
apxs:Error: Command failed with rc=65536`

这也不奇怪,因为我没有管理员权限。那我现在该怎么办呢?有没有办法告诉apache从其他位置加载mod_wsgi.so?我可能可以请系统管理员来编辑apache的配置文件。

补充一下,我的http.conf文件里有一个指令Include /path/to/user-owned/directory/*.conf。我希望能找到一个尽量少依赖系统管理员的选项。

1 个回答

2

我在系统管理员的帮助下解决了这个问题。

首先,我用命令 ./configure --with-python=/MYHOME/.MYENV/bin/python2.7 配置了 mod_wsgi。接着,我编辑了 Makefile 文件,添加了 DESTDIR=/path/to/local/dir 这一行。

然后运行 makemake install,没有出现错误,因为 mod_wsgi.so 文件被写入了一个允许的目录。

在 Apache 的配置文件中(这个文件我可以在没有管理员权限的情况下编辑,感谢 Include /path/to/user-owned/directory/*.conf),我设置了 LoadModule wsgi_module /path/to/local/dir/mod_wsgi.so

希望这对有类似设置的人有所帮助。

撰写回答