我刚刚使用自制软件将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"
我该如何解决这个问题?
答案 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
安装;然而,这只是猜测。