我刚刚使用 Homebrew 在我的 OS X 10.6.8 Mac 上安装了 PHP 5.4.19。我之前使用的是 PHP 5.3.26,可能是通过 MacPorts 安装的。
如果我php -v
在终端中输入,则会得到 PHP 5.4.19。如果我phpinfo()
通过本地主机加载文件,则会得到 PHP 5.3.26。如何指示 Apache 加载我新安装的 PHP?
如果我运行php --ini
,我会得到:
Configuration File (php.ini) Path: /usr/local/etc/php/5.4
Loaded Configuration File: /usr/local/etc/php/5.4/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.4/conf.d
Additional .ini files parsed: /usr/local/etc/php/5.4/conf.d/ext-mcrypt.ini
我的 /etc/apache2/httpd.conf 文件有以下设置:
LoadModule php5_module libexec/apache2/libphp5.so
#LoadModule fastcgi_module libexec/apache2/mod_fastcgi.so
我尝试将 httpd.conf 文件中的 LoadModule 更改为:
/usr/local/Cellar/php54/5.4.19/libexec/apache2/libphp5.so
,
但我收到一条错误,内容如下:
httpd: Syntax error on line 118 of /private/etc/apache2/httpd.conf: Cannot load /usr/local/Cellar/php54/5.4.19/libexec/apache2/libphp5.so into server: dlopen(/usr/local/Cellar/php54/5.4.19/libexec/apache2/libphp5.so, 10): Library not loaded: /usr/local/opt/curl/lib/libcurl.4.dylib\n Referenced from: /usr/local/Cellar/php54/5.4.19/libexec/apache2/libphp5.so\n Reason: Incompatible library version: libphp5.so requires version 8.0.0 or later, but libcurl.4.dylib provides version 6.0.0
有什么建议么?
答案1
首先在终端中打开你的 Apache2 配置文件:
sudo nano /private/etc/apache2/httpd-conf
结束ctrl + w
搜索libphp5.so
。找到其行后,将#
行首置入以使其禁用。因此,这是最后一个视图:
#LoadModule php5_module libexec/apache2/libphp5.so
通过运行重新启动 apache 后sudo apachectl graceful
,localhost 将识别 PHP 5.4 作为默认版本。
答案2
我在终端中运行的 PHP 版本是 5.3,而 localhost 显示的是 5.4。但在我尝试了第一篇文章中失败的方法后,我能够在两个环境中同步 php 版本。
只需重新加载 php5_module
LoadModule php5_module /usr/local/Cellar/php53/5.3.28/libexec/apache2/libphp5.so
答案3
我不确定 brew 和 ports 配合得如何,但也许你应该使用 brew install apache2 和 PHP。