使用 Homebrew 升级
首先确保 brew 是最新的:
brew update
接下来,升级PHP。您可以使用内置的 php 配方,但我建议使用shivammathur/homebrew-php
。
#正常升级
brew upgrade php
#升级用shivammathur/homebrew-php
brew tap shivammathur/php
brew install shivammathur/php/php@8.2
要在版本之间切换,请使用以下命令:
brew link --overwrite --force php@8.2
您可以在存储库中阅读更多内容。
#下一步
通过运行检查当前版本php -v
:
php -v
重启 Nginx 或 Apache,如果你使用的是 Laravel Valet,你可以跳到下一节;您需要一些额外的步骤才能使 Web 服务器正常工作。
sudo nginx -s reload
sudo apachectl restart
并通过访问此脚本确保您的本地 Web 服务器也使用 PHP 8.2:
# index.php, accessible to your web server
phpinfo();
版本应该显示8.2.x
。
#Valet
如果您使用的是 Laravel Valet,您应该执行以下步骤来升级它:
composer global update
您可以使用valet use
在 PHP 版本之间切换:
valet use php@8.2
valet use php@8.1
#扩展
PHP 扩展是使用 pecl 安装的。我个人使用 Redis 和 Xdebug。它们可以像这样安装:
pecl install redis
pecl install xdebug
您可以运行pecl list
以查看安装了哪些扩展:
pecl list
# Installed packages, channel pecl.php.net:
# =========================================
# Package Version State
# redis 5.3.4 stable
# xdebug 3.1.1 stable
您可以使用以下方式搜索其他扩展pecl search
:
pecl search pdf
# Retrieving data...0%
# ..
# Matched packages, channel pecl.php.net:
# =======================================
# Package Stable/(Latest) Local
# pdflib 4.1.4 (stable) Creating PDF on the fly with the PDFlib library
确保在安装新包后重新启动 Web 服务器:
sudo nginx -s reload
sudo apachectl restart
valet restart
通过检查您的 PHP 网络服务器和 CLI 安装,确保所有扩展都已正确安装和加载:
php -i | grep redis
var_dump(extension_loaded('redis'));
如果没有正确加载扩展,有两个简单的修复方法。
首先,确保将扩展名添加到正确的 ini 文件中。您可以运行php --ini
以了解加载了哪个文件:
Configuration File (php.ini) Path: /opt/homebrew/etc/php/8.2
Loaded Configuration File: /opt/homebrew/etc/php/8.2/php.ini
Scan for additional .ini files in: /opt/homebrew/etc/php/8.2/conf.d
Additional .ini files parsed: /opt/homebrew/etc/php/8.2/conf.d/error_log.ini,
/opt/homebrew/etc/php/8.2/conf.d/ext-opcache.ini,
/opt/homebrew/etc/php/8.2/conf.d/php-memory-limits.ini
现在检查ini文件:
extension="redis.so"
zend_extension="xdebug.so"
请注意,如果您通过 CLI 测试已安装的扩展,则在更改 ini 设置时无需重新启动 nginx、apache 或 Valet。
你可以做的第二件事,如果你是从一个旧的 PHP 版本更新,它也使用 pecl 安装扩展;是单独重新安装每个扩展。
pecl uninstall redis
pecl install redis
#最后一步
最后,您应该测试和升级您的项目以实现PHP 8.2 兼容性。
相关博文
在 Mac 上使用 Homebrew 升级到 PHP 8.2