Apache和终端在Mac OS 10.8上运行2个不同的php版本

时间:2013-04-03 23:46:19

标签: php macos apache osx-mountain-lion

由于Mac OS 10.8有一个旧的PHP版本,我不得不安装一个从不版本的PHP。所以我只编译PHP 5.4.13。然后我在终端上做了一个php -v,它告诉我新的php版本正在运行。但是当我从浏览器中执行phpinfo时,它向我展示了旧的PHP版本,即PHP 5.3.x.甚至在创建到新的php构建的软链接之后, / opt / local / lib / php(旧的) - > / usr / bin / php(新的)

有任何想法如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

我刚遇到同样的问题,想要尝试需要mcrypt的Laravel。

简而言之,我一直在使用Mountain Lion附带的内置PHP 5.3.26,几个月后我对自制软件越来越熟悉,我用它来安装更新的版本PHP。

brew update
brew upgrade
brew install php53 php53-mcrypt ...

我把

<?php phpinfo(); 

进入〜/ Sites / info.php然后转到localhost / info.php查看我的Apache + PHP配置。在页面上,我在加载配置文件

下看到了这一点
/private/etc/php.ini 

然后在Termninal,我跑了这个:

php -i | grep ini

显示了此输出

Loaded Configuration File => /usr/local/etc/php/5.3/php.ini

另外还加载了更多的配置......

Additional .ini files parsed => /usr/local/etc/php/5.3/conf.d/ext-mcrypt.ini,
/usr/local/etc/php/5.3/conf.d/ext-xdebug.ini,
/usr/local/etc/php/5.3/conf.d/redis.ini

我遇到的问题是mcrypt正在加载php cli版本,但是我的Laravel测试页面无法加载而没有找到mcrypt扩展错误[1]

我使用diffmerge工具[2]将/ private / etc /中的原始Apple php.ini与安装在/usr/local/etc/php/5.3/中的一个自制软件进行比较,发现存在显着差异!所以在尝试之前请仔细检查:

接下来我要做的就是备份

sudo mv /private/etc/php.ini /private/etc/php.ini.apple

然后将php.ini符号链接到自制软件

ln -s /usr/local/etc/php/5.3/php.ini /private/etc/php.ini 

最后重新加载Apache

sudo apachectl restart

加载了mcrypt,现在他们正在使用单个配置。

如果你的本地主机上有另一个应用程序打破了新配置,只需删除符号链接,然后将其更改为.apple版本并重新启动Apache以恢复。

  1. Laravel requires the Mcrypt PHP extension
  2. https://sourcegear.com/diffmerge/

答案 1 :(得分:1)

这可能是一个很好的参考:

how do i install php 5.4 on Mac OS X Lion?

有一些关于将PHP升级到5.4的详细说明,还有关于MacPorts如何使其变得非常轻松的说明。

答案 2 :(得分:0)

我正在运行OS X 10.9。我将PHP更新到v5.5.8并发现Apache正确运行新版本但终端仍在运行旧版本。在寻找解决方案一段时间之后,我最终想,“我会重新开始。”

宾果!终端和Apache运行相同版本的PHP。