我花了一些时间在我的 Mac Os X 10.6.8 上安装更新版本的 Apache2.x。
通过 ./configure 配置 apache 时,我指定了 Darwin 布局。此布局假定现有 apache 安装的路径设置,这是我想要的,因为我的目标是替换旧的。
我跑了make,然后当然是sudo make install。
我通过做检查了apache版本
apachetcl -v
Run Code Online (Sandbox Code Playgroud)
我得到了
Server version: Apache/2.4.1 (Unix)
Server built: Mar 31 2012 01:52:54
Run Code Online (Sandbox Code Playgroud)
哪个好。但这里是奇怪的部分。我检查了 /etc/apache2 中的“旧”httpd.conf 文件,它有一个旧的修改日期。
直到我尝试运行 apache 之后,我才真正弄清楚这一点。Apache 尝试加载一些与新版本不兼容的扩展。
这让我检查了 /usr/libexec/apache2 目录,我看到除了两三个模块外,这些模块最近没有被修改。基本上 sudo make install 并没有覆盖所有可能的文件。
What is the convention here? Should make install overwrite everything or not?
Run Code Online (Sandbox Code Playgroud)
我假设这仅取决于开发人员如何编写配置脚本和 Makefile。
在再次运行 make install 之前,我最终在我知道的任何现有 apache 目录上执行了一些 rm -rf 。在那之后,一切都是新鲜的。