用brew升級
首先要確保 Brew 是最新的:
brew update
接下來,升級 PHP:
brew upgrade php
通過執行php -v
以下命令檢查當前版本:
php -v
重新啟動 Nginx 或 Apache:
sudo nginx -s reload
sudo apachectl restart
並通過訪問以下指令碼確保本地 Web 伺服器也使用 PHP最新版本:
# index.php, accessible to your web server
phpinfo(); die();
版本號應顯示為PHP最新版本。
注意:如果您使用的是 Laravel Valet,請繼續閱讀,您需要一些額外的步驟才能使Web伺服器正常工作。
#Valet
如果您使用的是 Laravel Valet,則應執行以下步驟對其進行升級:
composer global update
現在執行valet install
:
valet install
#pecl
Homebrew 不再支援 PHP 擴充套件的安裝,您應該使用 pecl 代替。我個人使用 Imagick,Redis 和 Xdebug。
它們可以像這樣安裝:
pecl install imagick
pecl install redis
pecl install xdebug
您可以執行pecl list
以檢視安裝了哪些擴充套件:
pecl list
# Installed packages, channel pecl.php.net:
# =========================================
# Package Version State
# imagick 3.4.4 stable
# redis 5.1.1 stable
# xdebug 2.8.0 stable
您可以使用來搜尋其他副檔名pecl search
:
pecl search pdf
# Retrieving data...0%
# ..
# Matched packages, channel pecl.php.net:
# =======================================
# Package Stable/(Latest) Local
# pdflib 4.1.2 (stable) Creating PDF on the fly with the PDFlib library
安裝新軟體包後,請確保重新啟動Web伺服器:
sudo nginx -s reload
sudo apachectl restart
如果您使用的是 Laravel Valet,則也應重新啟動它。
valet restart
通過檢查 PHP Web 伺服器和 CLI 安裝,確保正確安裝和載入了所有擴充套件:
php -i | grep redis
var_dump(extension_loaded('redis'));
如果擴充套件未正確載入,則有兩個簡單的修復程式。
首先,請確保將副檔名新增到正確的 ini 檔案中。您可以執行php --ini
以瞭解載入了哪個檔案:
Configuration File (php.ini) Path: /usr/local/etc/php/7.4
Loaded Configuration File: /usr/local/etc/php/7.4/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.4/conf.d
Additional .ini files parsed: /usr/local/etc/php/7.4/conf.d/ext-opcache.ini,
/usr/local/etc/php/7.4/conf.d/php-memory-limits.ini
現在檢查 ini 檔案:
extension="redis.so"
extension="imagick.so"
extension="xdebug.so"
請注意,如果您正在通過 CLI 測試已安裝的擴充套件,則無需重新啟動 nginx,apache 或 Valet。
如果要從也使用 pecl 安裝擴充套件程式的舊 PHP 版本進行更新,則可以做第二件事。是分別重新安裝每個擴充套件。
pecl uninstall imagick
pecl install imagick
#最後一步
最後,您應該測試和升級專案以實現 PHP 7.4相容性。
本作品採用《CC 協議》,轉載必須註明作者和本文連結