brew link 換 php 版本失敗?

我透過 brew 安裝三種php版本
php 5.6
php 7.4
php 8.0

$ php -v

PHP 8.0.3 (cli) (built: Mar  4 2021 20:45:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.3, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.3, Copyright (c), by Zend Technologies

停用8.0使用7.4

$ brew unlink php@8.0 && brew link php@7.4
Unlinking /usr/local/Cellar/php/8.0.3... 0 symlinks removed.
Linking /usr/local/Cellar/php@7.4/7.4.16... 264 symlinks created.

$ php -v
還是一樣版本
我開新的終端機也是一樣8.0.3

PHP 8.0.3 (cli) (built: Mar  4 2021 20:45:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.3, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.3, Copyright (c), by Zend Technologies

中規中矩操作了
這是哪裏有少設置了?

阅读 5.2k
2 个回答

你可以尝试安装一个PHP选择器

brew update
brew upgrade

参考文档

https://github.com/shivammathur/homebrew-php
  • 安装指定php brew install shivammathur/php/php@7.3
  • 链接php版本 brew link --overwrite --force php@7.3

如果出现报错

Warning: Already linked: <Cellar Path>
To relink:
  brew unlink <formula> && brew link <formula>

执行

brew unlink php@7.3
brew link --overwrite --force php@7.3

重启服务

  • apache brew services restart httpd
  • nginx brew services restart nginx

安装结果

To enable PHP in Apache add the following to httpd.conf and restart Apache:
    LoadModule php7_module /usr/local/opt/php@7.0/lib/httpd/modules/libphp7.so

    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>

Finally, check DirectoryIndex includes index.php
    DirectoryIndex index.php index.html

The php.ini and php-fpm.ini file can be found in:
    /usr/local/etc/php/7.0/

php@7.0 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have php@7.0 first in your PATH run:
  echo 'export PATH="/usr/local/opt/php@7.0/bin:$PATH"' >> ~/.zshrc
  echo 'export PATH="/usr/local/opt/php@7.0/sbin:$PATH"' >> ~/.zshrc

For compilers to find php@7.0 you may need to set:
  export LDFLAGS="-L/usr/local/opt/php@7.0/lib"
  export CPPFLAGS="-I/usr/local/opt/php@7.0/include"


To have launchd start shivammathur/php/php@7.0 now and restart at login:
  brew services start shivammathur/php/php@7.0
Or, if you don't want/need a background service you can just run:
  php-fpm

vim ~/.bash_profile

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题