看來短時間很難將主機的 PHP 版本升級到 8.1,特別是有 host 一些相依關係特別複雜的網站,像是:WordPress (一堆 plugins),或是 vendor
底下一堆 packages 的專案。
以下提供我自己來檢查伺服器上的專案,是否已經可用 PHP 8.1 來執行的方法 ….
首先安裝 PHP 8.1 的 command line interface package (注意:/usr/bin/php
的 symbolic link 會被指向 php 8.1 的 binary,安裝完記得手動改回來):
sudo aptitude install php8.1-cli
安裝完成以後,應該會有 PHP 8.1 的指令可以使用:
$ which php8.1 /usr/bin/php8.1
接下來就可以使用 php -l
的方式,來檢查是否有程式碼還繼續使用舊版本的語法。
下面的指令使用 find
找出所有 PHP 程式碼,並檢查語法。另外因為 Deprecated
訊息不影響程式執行,用 grep
把他忽略掉:
find -name '*.php' -exec php -l {} \; 2>&1 1>/dev/null | grep -v Deprecated
通常看到 Fatol Error
就表示無法相容,看到 Warning
的話還有機會,但要注意錯誤訊息是什麼。