使用 Macport 从 php 5.3 升级到 php 5.4

sto*_*one 5 php mac-osx apache-2.2

PHP5.4 已经有一段时间了,Macport 最近赶上了 php54 端口的发布,但是升级的过程不是很清楚。对于那些不熟悉在同一台机器上维护多个 PHP 版本的人来说,甚至是最糟糕的。

我热衷于尝试 PHP5.4 中的一些新功能,如特征、新数组形式等,但在其他兼容性方面又回到了 php5.3。

所以我

sudo port install php5+ (all the variants, apache2 etc)
Run Code Online (Sandbox Code Playgroud)

然后我告诉它默认使用哪个 PHP 端口

sudo port select --set php php54
Run Code Online (Sandbox Code Playgroud)

使用 php -v 输出 php 5.4.3 检查终端中处于活动状态的 PHP 版本。但是我似乎在选择正确的非 cli 版本时遇到问题,因为 apache 等运行的模块版本仍然是 php5.3.12。

我是否必须更改 apache httpd.conf 中对 libphp5 的引用?非常感谢有关在 macport 上切换 php 版本的正确工作流程的任何建议!

uma*_*wer 5

我卸载并重新安装了所有东西,但后来我看到了这些:php53-apache2handler @5.3.13 (lang, php, www) & php54-apache2handler @5.4.3 (lang, php, www)。

也许这曾经不是构建 macports MAMP 堆栈的必需步骤,但如果没有它,我会在尝试启动服务器时出错。一旦我安装了它,服务器就可以工作并使用正确的版本。

sudo port install php54-apache2handler

进而

cd /opt/local/apache2/modules
sudo /opt/local/apache2/bin/apxs -a -e -n php5 mod_php54.so
Run Code Online (Sandbox Code Playgroud)

这个附加

LoadModule php5_module        modules/mod_php54.so
Run Code Online (Sandbox Code Playgroud)

到我的 httpd.conf,我不得不手动删除旧的 LoadModule,因为它们有冲突。