由于 Mac OS 10.8 有一个旧的 PHP 版本,我不得不安装一个 never 版本的 PHP。所以我只编译 PHP 5.4.13。然后我在终端上执行 php -v,它显示新的 php 版本正在运行。但是当我从浏览器执行 phpinfo 时,它会显示旧的 PHP 版本,即 PHP 5.3.x。这甚至是在创建到新 php 构建的软链接(soft link)之后, /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 配置。在页面上,我在 Loaded Configuration File 下看到了这个:
/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 符号链接(symbolic link)到自制软件
ln -s /usr/local/etc/php/5.3/php.ini /private/etc/php.ini
终于在重新加载 Apache 之后
sudo apachectl restart
并且加载了 mcrypt,现在他们使用的是单一配置。
如果您的本地主机上有另一个应用程序因新配置而中断,只需删除符号链接(symbolic link),并将其更改为 .apple 版本并重新启动 Apache 即可恢复。
关于php - Apache 和 Terminal 在 Mac OS 10.8 上运行 2 个不同的 php 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15800197/