我想在PHP 5.3上测试我的应用程序,直到PHP 7.0。
我在哪里以及如何安装版本以及如何通过运行小脚本来切换它们?
答案 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,则可以使用link
和unlink
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
非常适合我:-)