我已经按照这些说明在我的 Mountain Lion 系统上安装了最新的 PHP 版本 (http://mac.tutsplus.com/tutorials/server/upgrading-the-native-php-installation-on-os-x-mountain-lion/)。我甚至将 /usr/local/bin 放在路径变量的首位,因此当我在命令行运行 php -v 时,我得到的是 php v5.4.x。问题是,当我运行一个简单的脚本(其中包含 phpinfo() 函数)时,页面告诉我,我正在运行 mac os mountain lion 预装的旧 5.3.x php 版本。我甚至尝试重新启动 apache,但问题仍然存在。对此有什么想法吗?谢谢。
答案1
您遵循的教程有点危险。它似乎告诉您用新的 X11 替换默认的 X11,这是一个非常糟糕且不必要的想法。
您在哪里更改了局部变量?如果您使用了 .profile 或 .bash_profile,它仅对您的用户有效。要影响所有用户,您需要更改 /etc/paths。但我认为这与 PATH 变量无关。
关于您的问题,这意味着 Apache 没有加载正确的 PHP 模块。(libphp5.so)
检查创建日期/usr/libexec/apache2/libphp5.so
如果它早于您的构建时间,那么它就不会被替换。
首先关闭 Apache(在设置中或
sudo apachectl stop
在控制台中运行)。然后重命名
/usr/libexec/apache2/libphp5.so
-->sudo mv /usr/libexec/apache2/libphp5.so /usr/libexec/apache2/libphp5.so.bak
然后转到源目录并运行
make install
。(如果您删除了目录,makefile 或运行了,make clean
则需要重新启动编译过程)然后检查是否
libphp5.so
存在/usr/libexec/apache2/
。如果不存在,则您的编译参数错误。如果存在,请转到步骤5。将新版本重命名
/usr/libexec/apache2/libphp5.so
为 libphp5.4.8.so(或您正在安装的版本)。备份 httpd.conf -->
sudo cp /usr/libexec/apache2/httpd.conf /usr/libexec/apache2/httpd.conf.bak
编辑 httpd.conf -->
sudo nano /usr/libexec/apache2/httpd.conf
并更改LoadModule php5_module libexec/apache2/libphp5.so
为LoadModule php5_module libexec/apache2/libphp5.4.8.so
将旧的 libphp5.so 放回去。-->
sudo mv /usr/libexec/apache2/libphp5.so.bak /usr/libexec/apache2/libphp5.so
重新启动 apache(在设置中或使用
sudo apachectl start
)
让我知道它是否对你有用