如何在Mac OSX上轻松切换PHP版本?

时间:2016-01-20 19:44:18

标签: php macos

我想在PHP 5.3上测试我的应用程序,直到PHP 7.0。

我在哪里以及如何安装版本以及如何通过运行小脚本来切换它们?

7 个答案:

答案 0 :(得分:15)

使用brew

显示当前版本

$ php -v

更改为其他版本
(例如,从5.5.x更改为版本7.0.latest):

$ brew unlink php55
$ brew install php70

答案 1 :(得分:13)

我找到了关于如何在OSX上安装和切换php版本的this very good tutorial

我可以像

那样切换版本
$ sphp 54 => PHP 5.4
$ sphp 55 => PHP 5.5
$ sphp 56 => PHP 5.6
$ sphp 70 => PHP 7.0

正是我想要的!

答案 2 :(得分:12)

示例:让我们从php 7.4切换到7.3

brew unlink php@7.4
brew install php@7.3
brew link php@7.3

如果您获得Warning: php@7.3 is keg-only and must be linked with --force 然后尝试:

brew link php@7.3 --force

答案 3 :(得分:8)

如果使用 homebrew 安装PHP,则可以非常轻松地在版本之间切换。假设您希望php56指向版本5.6.17,您只需:

brew switch php56 5.6.17

答案 4 :(得分:2)

我认为unlink&链接php版本是不够的,因为我们经常使用php与apache(httpd),所以需要在切换php版本后更新httpd.conf。

我已在php_module内自动编写用于禁用/启用httpd.conf的shell脚本,请查看第46行到第54行https://github.com/dangquangthai/switch-php-version-on-mac-sierra/blob/master/switch-php#L46

按照我的步骤:

1)通过brew检查已安装的php版本,确保一切正常

> brew list | grep php
#output
php56
php56-intl
php56-mcrypt
php71
php71-intl
php71-mcrypt

2)运行脚本

> switch-php 71 # or switch-php 56
#output
PHP version [71] found
Switching from [php56] to [php71] ... 
Unlink php56 ... [OK] and Link php71 ... [OK]
Updating Apache2.4 Configuration /usr/local/etc/httpd/httpd.conf ... [OK]
Restarting Apache2.4 ... [OK]
PHP 7.1.11 (cli) (built: Nov  3 2017 08:48:02) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

3)最后,当您收到上述消息时,请检查我的笔记本电脑中的httpd.conf

vi /usr/local/etc/httpd/httpd.conf

你可以在LoadModule线附近看到

LoadModule php7_module /usr/local/Cellar/php71/7.1.11_22/libexec/apache2/libphp7.so
#LoadModule php5_module /usr/local/Cellar/php56/5.6.32_8/libexec/apache2/libphp5.so

4)打开httpd://localhost/info.php

我希望它有用

答案 5 :(得分:0)

如果同时安装了两个版本的PHP,则可以使用linkunlink brew命令在两个版本之间进行切换。

例如,在PHP 7.4和PHP 7.3之间切换

brew unlink php@7.4
brew link php@7.3

PS:已经安装了两个版本的PHP才能使这些命令正常工作。

答案 6 :(得分:0)

brew link --overwrite php@7.3

非常适合我:-)