PHP 5.4.19 在终端中运行,而 PHP 5.3.26 在我的本地主机上运行,​​如何切换本地主机版本?

PHP 5.4.19 在终端中运行,而 PHP 5.3.26 在我的本地主机上运行,​​如何切换本地主机版本?

我刚刚使用 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。

相关内容