【发布时间】:2013-08-19 07:44:15
【问题描述】:
我刚刚使用自制软件将 PHP 的默认 OS 10.8 安装更新为 PHP 5.5.1,并且我已经在 /etc/apache2 更新了我的 httpd.conf 文件,但 Apache 仍然加载旧的 PHP 5.3.15。
我什至取消了所有 php5_module 行的注释,它仍然加载 PHP...我非常生气,这拒绝工作 - 它现在甚至不应该加载 php,这证明它甚至没有读取该配置文件。
然后我继续更改我的/etc/apache2 目录中的所有其他配置文件,但它仍然拒绝加载正确的 PHP 版本并继续首先加载 PHP。
然后我删除了/etc/apache2 中的所有文件,只包含httpd.conf,它仍然不会改变它的行为 - 我准备在我的屏幕上打一个洞。
我完全按照自制程序的说明进行操作,包括明显的 apache 重启,我什至尝试重启我的机器作为最后的恐慌手段。
我花了 2 个小时的大部分时间试图“解决”这个问题,有人对如何解决这个问题或发生了什么有任何想法吗?
这是我当前的httpd.conf,在 php5_module 区域附近
555 是额外的预防措施,但它仍然顽固得要命。
# LoadModule php5_module 55555libexec/apache2/libphp5.so
# LoadModule php5_module 555555/usr/local/opt/php55/libexec/apache2/libphp5.so
这是我转到localhost时看到的内容
Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch mod_ssl/2.2.22 OpenSSL/0.9.8x
查询二进制给出:
[ 558 / 58 / 0 ] $ apachectl -V
Server version: Apache/2.2.22 (Unix)
Server built: Dec 9 2012 18:57:18
Server's Module Magic Number: 20051115:30
Server loaded: APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FLOCK_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/usr"
-D SUEXEC_BIN="/usr/bin/suexec"
-D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/private/var/run/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"
我该如何解决这个问题?
【问题讨论】:
-
运行apache2ctl -V时HTTPD_ROOT的值是多少
-
@Marek $ apachectl -V [OUTPUT] -D HTTPD_ROOT="/usr"
-
所以你必须查看 /usr + SERVER_CONFIG_FILE (再次在 apache2ctl -V 的输出中)
-
/usr/private/ ... - 不存在。
-
我写的时候没有看到完整的输出。 SERVER_CONFIG_FILE 以 / 开头,所以它是绝对路径。 /private/etc/apache2/httpd.conf 是 apache 读取的文件。可能是启动脚本设置了不同的路径,检查一下。