在没有根权限的情况下编译mod_wsgi
我需要在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 个回答
我在系统管理员的帮助下解决了这个问题。
首先,我用命令 ./configure --with-python=/MYHOME/.MYENV/bin/python2.7
配置了 mod_wsgi。接着,我编辑了 Makefile 文件,添加了 DESTDIR=/path/to/local/dir
这一行。
然后运行 make
和 make install
,没有出现错误,因为 mod_wsgi.so 文件被写入了一个允许的目录。
在 Apache 的配置文件中(这个文件我可以在没有管理员权限的情况下编辑,感谢 Include /path/to/user-owned/directory/*.conf
),我设置了 LoadModule wsgi_module /path/to/local/dir/mod_wsgi.so
。
希望这对有类似设置的人有所帮助。