繁体   English   中英

Apache和Terminal在Mac OS 10.8上运行2个不同的php构建

[英]Apache and Terminal runs 2 different php builds, on Mac OS 10.8

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

任何想法如何解决此问题?

我只是遇到了同样的问题,想尝试需要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需要Mcrypt PHP扩展
  2. https://sourcegear.com/diffmerge/

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

我如何在Mac OS X Lion上安装php 5.4?

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

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

答对了! Terminal和Apache运行相同版本的PHP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM