Apache 2.2.2拒绝加载/卸载PHP

时间:2013-08-19 07:44:15

标签: php macos apache

我刚刚使用自制软件将PHP的默认OS 10.8安装更新为PHP 5.5.1,并且我已在httpd.conf更新了我的/etc/apache2文件,但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"

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf" - 编辑此文件及其包含的内容。

答案 1 :(得分:0)

重要事项,阅读!

通过Apple论坛和其他资源进行大量阅读后,如果没有第三方堆栈,例如{{3},则无法在10.8上更新到更高版本的PHP,而不是默认安装的PHP是不可能的。 } [见注释]

基于此,提供更新PHP的repo的homebrew抽头必须用于此类第三方堆栈,或用于编译和上载的一些自定义PHP安装,或者在文件系统上的其他位置使用自定义Apache安装,而不是/etc/apache2/

PHP仍然预处理信息的原因是由于Apple删除了Web共享及其后续替换,例如OS X Server,这迫使PHP 5.3.15 覆盖{}中的任何PHP模块加载{1}}。

PHP只能通过OS X Server提供的“PHP On或Off”选项禁用,或者我想其他一些与同一API交互的界面。


注意

当然,上述内容是基于连锁研究,对于非常具体的情况可能不正确 - 但我认为没有证据表明其他情况。

如果您正在寻找运行+ DefaultPHP的Apache服务器,您将被迫使用第三方堆栈。

我推荐Bitnami的MAMP,因为PHP和其他组件是最新的,比其他堆栈更多。

我猜想如果一个新的,激进的PHP版本出来,你可以通过各种httpd.conf或自定义PHP编译与它进行交互,就像你应该能够做到的那样默认的brews安装;然而,这只是猜测。