gpt4 book ai didi

已安装 Apache 模块但似乎未在 Ubuntu 中加载

转载 作者:太空宇宙 更新时间:2023-11-03 16:56:33 24 4
gpt4 key购买 nike

我是 Linux 的新手。昨天设置了 VPS,安装了 Apache2、PHP5 和 MySQL。

当我执行 apache2 -l 时,我得到了这个:

Compiled in modules:  core.c  mod_log_config.c  mod_logio.c  prefork.c  http_core.c  mod_so.c

当我执行 sudo a2enmod rewrite 时,我得到了这个:

Module rewrite already enabled

rewrite.load 位于/etc/apache2/mods-enabled

谁能告诉我哪里出了问题?

最佳答案

这确实属于 ServerFault,但由于它最终可能会被迁移,所以我会继续说编译到 Apache 中的模块与动态加载的模块之间存在差异。

Apache 能够以两种不同的方式加载模块。 “更简单”的方法是将模块静态编译到服务器中。这意味着可执行文件 apache2 字面上包含模块的代码。这种方法的优点是模块始终可用,Apache 无需执行任何特殊操作即可访问其代码,但另一方面,如果您想添加、删除或更新静态编译的模块,你必须重新编译所有的 Apache。另外,静态编译的模块越多,可执行文件就越大。由于这些原因,该列表通常只包含几个最重要的模块,基本上是 Apache 运行所需的最低限度。这几个模块是您在运行 apache2 -l 时看到的列表中出现的模块。

Apache 使用的所有其他模块,包括 mod_rewrite,都是动态加载的。也就是说,它们的代码存储为单独的文件,Apache 在启动后定位并读取这些文件。这抵消了静态编译方法的缺点:由于模块存储在单独的文件中,如果你想添加/删除/更改一个,你只需要重新启动服务器,而不需要重新编译它。您可以通过在 Apache 配置文件中放置 LoadModule 指令来告诉 Apache 要加载哪些模块。这基本上就是 a2enmod 所做的:它将 LoadModule 指令添加到配置文件。 (实际上它将一个 stub 配置文件符号链接(symbolic link)到一个由主配置提供的目录)

如果你想查看已加载模块的完整列表,包括动态加载的模块,你可以运行

apache2 -M

不过,您必须确保以与 Ubuntu 的初始化脚本相同的方式运行 Apache。系统在启动 Apache 之前读取配置文件或其他内容是很常见的,如果您不这样做,它可能会更改加载的模块集。

关于已安装 Apache 模块但似乎未在 Ubuntu 中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3010052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com