在自定义路径上安装 Apache 模块

在自定义路径上安装 Apache 模块

我已通过指定 ./configure --prefix="$HOME" 将 apache2 安装到我的主文件夹中。它工作正常。现在我正尝试安装 mod_wsgi。我尝试了 ./configure --prefix="$HOME" 以及 --libexecdir="$HOME",但是在执行 make install 时,我得到以下信息:

/usr/sbin/apxs -i -S LIBEXECDIR=/usr/libexec/apache2 -n 'mod_wsgi' mod_wsgi.la
/usr/share/httpd/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1/build-1/libtool/mod_wsgi.la /usr/libexec/apache2
/usr/share/apr-1/build-1/libtool --mode=install cp mod_wsgi.la /usr/libexec/apache2/
libtool: install: cp .libs/mod_wsgi.so /usr/libexec/apache2/mod_wsgi.so
cp: /usr/libexec/apache2/mod_wsgi.so: Permission denied
apxs:Error: Command failed with rc=65536

我猜是因为我没有使用 sudo,但我不想这样做。我怎样才能将它安装到 Home 中,这样就不需要 sudo 了。我觉得这应该是显而易见的,但也许我遗漏了什么。

答案1

正确的方法是不要手动复制 mod_wsgi.so 文件,而是在构建 mod_wsgi 时使用 --with-apxs 选项进行配置,以告诉它 Apache 安装的 apxs 脚本在哪里:

./configure --with-apxs=$HOME/bin/apxs

如果不这样做,您将针对错误的 Apache 编译 mod_wsgi,结果可能与您主目录中的 Apache 不兼容。

安装说明开始时清楚地描述了 --with-apxs 选项的使用。

只要您使用 --with-apxs,安装步骤就会将其复制到正确的 Apache 安装。

答案2

在里面安装指南它指出:

要将 Apache 模块安装到 Apache 为您的安装指定的 Apache 模块标准位置,请运行:

进行安装

如果合适,安装应以“root”用户或“sudo”命令进行。

如果您想要将 Apache 模块安装在非标准位置(由您的操作系统发行版如何构造 Apache 的配置文件和模块决定),您将需要手动将文件复制到位。

如果手动安装 Apache 模块,则文件名为“mod_wsgi.so”。如果您使用的是 Apache 1.3,则可以在源目录中找到已编译的 Apache 模块。如果您使用的是 Apache 2.X,则可以在“.libs”子目录中找到已编译的 Apache 模块。将文件复制到适当位置时,其名称应保持不变。

因此您需要将模块移动到为 Apache2 安装设置的目录中。

相关内容