编译后的 Apache – 没有 conf-enabled/conf-available/mods-available 等文件夹

编译后的 Apache – 没有 conf-enabled/conf-available/mods-available 等文件夹

我刚刚使用以下命令编译了 apache(httpd-2.4.23):

APACHE_CONFDIR=/etc/apache2
APACHE_ENVVARS=$APACHE_CONFDIR/envvars
CFLAGS="-O2 -DBIG_SECURITY_HOLE"

./configure --prefix=$APACHE_CONFDIR
make
make install

但是,缺少文件夹 conf-enabled/conf-available/mods-available 等。是我操作错误还是这是某种新的文件夹结构?

有文件夹confmodules

此外,没有像等a2ensite命令,我找不到它们。谢谢a2enmod/usr/sbin

答案1

Ubuntu 等发行版的主要功能是整合来自不同来源的大量不同软件,并将它们组合成一个连贯的系统。为此,在许多情况下必须调整或扩展原始软件。

Apache 就是这种情况。可以说,整个*-available结构*-enabled并不是 Apache 项目所做的,而是 Debian 如何将 Apache HTTPd 集成到其发行版中的一部分。因此,您会在 Debian 和基于 Debian 的发行版(如 Ubuntu)中找到它,但在您自己编译的“原始”Apache 中找不到它。

但自己构建这些结构并不难。基本上,您需要自己创建文件夹,然后让 Apache 使用 中的指令读取其中的配置IncludeOptionalapache.conf这基本上就是 Debian 版本所做的apache.conf

...
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
...
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/
...

a2ensite诸如、a2enmod等命令也是 Debian 集成的一部分。事实上,其中大多数是 上的符号链接a2enmod,这是一个 Perl 脚本。它们基本上都是从相应目录添加 ( a2en*) 或删除 ( )到目录的符号链接。例如,在 中创建一个指向 的符号链接。并且目录可以集成到 中,如上所示。a2dis**-available*-enableda2ensite mysite.confsite-enabled/mysite.confsite-available/mysite.confsites-enabledapache.conf

因此,您可以自己使用 创建符号链接ln -s,或者可以用您选择的语言编写一个小脚本来执行此操作。

答案2

这些都是 Debian 特有的;它们不存在于“原始” Apache 中,只存在于 Debian 中附带的修改版本中(因此,在 Ubuntu 中也是如此)。

因此,您的安装没有任何问题,但是您能找到的许多 Debian 特定资源并不适用于它。

顺便说一句,我不确定你为什么需要 Apache 2.4.23,但无论如何都可以从此 PPA. 这些包应该包括a2ensite等。

相关内容