為什麼要使用受支援的PHP版本?

為什麼要使用受支援的PHP版本?

PHP 是當今網路上最流行的指令碼語言之一。根據 W3Techs 的統計,在所有使用伺服器端程式語言的網站中,有 77% 以上的網站使用 PHP。這意味著,在你訪問的每 10 個網站中,幾乎有 8 個都可能以某種形式使用了 PHP,這也意味著 PHP 並沒有消亡。當然,PHP 在 WordPress 生態系統中也扮演著非常重要的角色,因為整個內容管理系統都是基於 PHP 構建的。

需要快速檢查 PHP 版本?建立一個 phpinfo 頁面

我們今天面臨的一個困境是,許多企業、開發人員和主機在支援最新的 PHP 版本方面已經落後了。下面的一些資料可能會讓你大吃一驚。今天,我們想討論一下為什麼每個人都必須使用最新的 PHP 版本,這不僅是出於安全考慮,也是為了獲得更好的效能和支援。

舊的 PHP 版本

與任何軟體一樣,PHP 也有一個釋出生命週期,必須遵守這個週期才能不斷向前推進和改進。 PHP 的每個主要版本在釋出後通常都會得到兩年的全面支援。在此期間,錯誤和安全問題會定期得到修復和打補丁。

WordPress 支援的 PHP 版本

WordPress 支援的 PHP 版本

您還可以看到最新版本的 PHP 是如何處理的。

目前支援的 PHP 版本

目前支援的 PHP 版本

PHP 5.6、7.0、7.1、7.2、7.3 和 7.4 生命週期

壽命終止意味著這些版本將不再有安全支援,並可能暴露於未修補的安全漏洞。

  • 截至 2022 年 11 月 28 日,PHP 7.4 的生命週期已結束。
  • 截至 2021 年 12 月 6 日,PHP 7.3 已達到生命週期終點。
  • 截至 2020 年 11 月 30 日,PHP 7.2 的生命週期已結束。
  • 截至 2019 年 12 月 1 日,PHP 7.1 達到其生命週期終點。
  • 截至 2018 年 12 月 3 日,PHP 7.0 達到其生命週期終點。
  • 截至 2018 年 12 月 31 日,PHP 5.6 也達到了生命週期的終點。這正式標誌著 PHP 5 一個時代的結束,因為第一個版本 5.0 是在 14 年前推出的。

WordPress 官方統計頁面顯示,截至發稿時,超過 55% 的 WordPress 使用者仍在使用 PHP 7.4 或更低的版本。如果將這一資料與其他已停用的 PHP 版本結合起來,那麼目前有高達 85% 的使用者使用的 PHP 版本到 2022 年 11 月就不再受支援了。

如果你看看 WordPress 社羣以外的統計數字,情況就更可怕了。根據 W3Techs 的統計,目前有 22.9% 的使用 PHP 的網站使用 PHP 5。

這不僅從安全形度看是個壞訊息,而且因為仍有很大一部分 WordPress 網站沒有利用 PHP 8.2 的額外效能增強功能。

WordPress PHP 版本統計

WordPress PHP 版本統計

為什麼新版本的採用速度緩慢?

新版本採用速度不快的主要原因可能來自幾個不同的因素:

  • 首要原因是,企業主不知道或不關心他們的 PHP 版本。當然,這在某些情況下是可以理解的,因為我們並不指望每個人都知道這一點。 很多時候,這個責任落在了開發人員、代理商或主機上。
  • 開發人員需要時間更新程式碼以支援新版本的 PHP。這包括那些開發網站、主題、外掛等的開發人員。
  • 更新程式碼不僅需要精力和時間,還需要大量測試以確保相容性。僅 WordPress 儲存庫就有超過 49,000 個外掛!
  • 許多 WordPress 主機都不願意推送 PHP 更新版本,因為如果導致網站崩潰,最終可能會產生額外的支援單。作為一家提供應用程式、資料庫和託管服務的 WordPress 託管商,我們非常理解這一點,但從我們的經驗來看,這通常是反過來的。我們看到的許多支援問題都是由舊 PHP 版本引起的。
  • 開發人員或代理公司在與客戶和其他第三方應用程式打交道時,可能會陷入進退兩難的境地,他們不願意花費資源進行更新

不過,儘管如此,這仍然不能成為使用過時的、不受支援的 PHP 版本的藉口,而且實際上可能會拖慢 WordPress 網站的執行速度。好在目前已經取得了一些進展。你可以看到,PHP 仍然佔據著巨大的市場份額,而且不會有任何變化。

更新 PHP 版本的原因

看看下面的一些原因,為什麼你應該考慮更新(如果你還沒有更新的話)。

1. 安全

更新 PHP 的最重要原因之一是確保您執行的版本完全支援並定期修補安全漏洞。PHP 5.4 自 2015 年以來就沒有打過補丁。PHP 5.5 自 2016 年以來就沒有打過補丁。但值得注意的是,一些作業系統供應商仍會更新舊版本的 PHP(如果其中包含的話)。

根據 CVE Details,2016 年是 PHP 安全漏洞最嚴重的一年,共報告了 100 多個問題。這些問題包括 DoS、程式碼執行、溢位、記憶體損壞、XSS、目錄遍歷、繞過和獲取資訊型別。2017 年是 2000 年以來第三糟糕的一年,出現了 40 多個漏洞。

按年份分列的 PHP 安全漏洞

按年份分列的 PHP 安全漏洞

甚至 PHP 本身也對保持與時俱進給出了一些反饋意見:

與其他大型系統一樣,PHP 也在不斷接受審查和改進。每個新版本通常都會包含大大小小的改動,以增強安全性並修復任何缺陷、配置錯誤和其他會影響系統整體安全性和穩定性的問題。與其他系統級指令碼語言和程式一樣,最好的方法是經常更新,並保持對最新版本及其變化的瞭解。PHP,與時俱進

推薦閱讀: 如何提高 WordPress 中的 PHP 記憶體限制

2. 效能

隨著 PHP 7.4、8.0、8.18.2 的釋出,效能大幅提升! 8.1 版的效能提升更大,而 8.2 版剛剛釋出。事實上,8.2 的效能提升如此之大,以至於它應該優先於你可能在 WordPress 網站上進行的許多小優化。

我們還執行了自己的 PHP 基準測試。與上述基準測試類似,我們發現 PHP 8.0 和 8.1 每秒執行事務(請求)的速度比舊版本快得多。

WordPress 5.9-RC2 PHP基準測試

WordPress 5.9-RC2 PHP基準測試

Christian Vigh 還發布了 PHP 效能對比,他發現 PHP 5.2 比 PHP 7 慢 400%。

純 CPU 基準測試結果比較

純 CPU 基準測試結果比較

3. 支援

支援是您希望使用最新和受支援的 PHP 版本的另一個原因。很多時候,外掛和主題的開發者只能對舊版本提供支援。這主要是因為時間有限,沒有時間測試相容性。當你在舊版本上執行時,最終會出現問題,你可以在 WordPress 論壇上親眼目睹這種情況。下面是一個常見的錯誤,通常是由於舊版本的 PHP 及其處理某個函式的方式造成的:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Parse error: syntax error, unexpected ‘’ (T_VARIABLE), expecting function (T_FUNCTION) in /pub/file.php on line xxx
Parse error: syntax error, unexpected ‘’ (T_VARIABLE), expecting function (T_FUNCTION) in /pub/file.php on line xxx
Parse error: syntax error, unexpected ‘’ (T_VARIABLE), expecting function (T_FUNCTION) in /pub/file.php on line xxx

你可以在 WordPress 論壇上搜尋 “unexpected T_Function“,會出現 2000 多個主題,其中很多都是最近幾天的結果。下面是最近出現的幾個問題,都是由於執行了舊版本的 PHP 導致的:

這些執行緒中的很多都是因為執行了過時的 PHP 版本。不過,由於 PHP 7 相容性問題而被開啟的執行緒也有同樣的情況。這表明 WordPress 開發社羣仍在努力追趕新版本的 PHP。

4. 面向開發人員的新功能

如果可以的話,大多數 WordPress 開發人員都希望只在較新版本的 PHP 上工作,原因很簡單,因為在 PHP 5.2 和 PHP 7.4 之間增加了許多新功能。PHP 7 和 7.3 的一些變化包括

  • 組合比較運算子
  • 空聚合運算子
  • 新的型別提示
  • 匿名類
  • 可歸零型別
  • 可迭代和 void 返回
  • 多重捕獲異常處理
  • 可在列表中使用的鍵
  • 更多負數字符串偏移
  • 數字運算子和畸形數字
  • HTTP/2 伺服器推送
  • 預載入
  • 陣列表示式中的展寬運算子
  • 箭頭函式 2.0(短閉包)
  • 空凝聚賦值操作符
  • 型別屬性 2.0
  • 弱引用
  • 變數返回和變數引數
  • 新的自定義物件序列化機制

支援舊版本的東西並不好玩。不幸的是,許多開發人員不得不支援各種版本。

PHP 8.0 中還有更多新功能。其中最重要的包括

  • 已命名引數
  • 聯合型別
  • 建構函式屬性推廣
  • 自定義物件序列化
  • 匹配表示式
  • 空安全操作符
  • 改進型別系統和錯誤處理

緊隨其後的是 PHP 8.1PHP 8.2。這兩個版本都包含新功能、棄用和更改。

確保主機支援最新的 PHP 版本

雖然花了點時間,但 WordPress.org 官方要求現在建議使用執行 PHP 7.4 或更高版本的主機

Yoast 最近發表了一篇名為 “整頓你的主機” 的好文章。在這篇文章中,Joost de Valk 詳細描述了真正的問題是主機提供商沒有更快地採用PHP 7.4,即使他們採用了,也沒有鼓勵使用者升級。Yoast 將對此採取一些措施。從 Yoast SEO 4.5 開始,他們將在 WordPress 儀表板上為執行 PHP 5.2 的網站顯示一個通知。 這個通知會很大、很醜,而且不可更改。

請檢視我們的深入指南,瞭解如何在 WordPress 網站上安全地更新 PHP

檢查當前的 PHP 版本

也許您不知道自己的 WordPress 網站目前使用的是哪個版本的 PHP。看看下面這些不同的方法就知道了。

1. 使用 Pingdom 檢查 PHP 版本

使用 Pingdom 或 Google Chrome Devtools 等工具是檢查 PHP 版本的最簡單方法之一。第一個 HTTP 請求頭通常會顯示版本。

在 Pingdom 中檢查 PHP 版本

在 Pingdom 中檢查 PHP 版本

這依賴於主機不修改 X-Powered-By 標頭值。出於安全考慮,有些主機可能會刪除該值。如果是這樣,您可能看不到 PHP 版本,在這種情況下,您需要使用下面的其他選項之一。或者你也可以隨時聯絡你的主機詢問。

2. 檢查 WordPress 中的 PHP 版本

如果您執行的是 WordPress 5.0 或以上版本,您可以在 “站點健康” 工具下看到 PHP 版本。

WordPress 站點健康工具 PHP 版本

WordPress 站點健康工具 PHP 版本

3. 用檔案檢查 PHP 版本

您還可以通過 FTP 向伺服器上傳檔案來檢查 PHP 版本。

Step 1

建立一個名為 phpinfo.php 的空白檔案。在該檔案中貼上以下內容:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
echo 'Current PHP version: ' . phpversion();
?>
<?php echo 'Current PHP version: ' . phpversion(); ?>
<?php
echo 'Current PHP version: ' . phpversion();
?>

Step 2

將檔案上傳到 WordPress 網站的根目錄。

上傳 phpinfo.php 檔案

上傳 phpinfo.php 檔案

Step 3

然後瀏覽到檔案的位置:domain.com/phpinfo.php。然後就會看到當前 PHP 版本的讀數。

在瀏覽器中檢查 PHP 版本

在瀏覽器中檢查 PHP 版本

不精通技術或沒有預算的使用者該怎麼辦?

我們意識到,仍有成千上萬的 WordPress 網站與新的 PHP 版本不相容,無論是由於外掛還是主題的老舊。對於不太精通技術的使用者或沒有預算的使用者來說,最好的辦法是什麼?

以下是一些建議:

  1. 如果您還沒有更新外掛和主題,請務必將其更新到最新版本。
  2. 聯絡外掛或主題的開發人員,要求他們新增/修復對 PHP 7.2、7.3、7.4 或 8.0(或您試圖更新到的當前版本)的支援。在逐步淘汰 PHP 版本之前,我們會給客戶提個醒,以便他們在需要時有時間做這件事。這對於沒有預算聘請開發人員的客戶來說尤為重要。
  3. 尋找能提供相同功能且與 PHP 版本相容的替代外掛。由於 WordPress 擁有龐大的資源庫和數以千計的高階外掛和主題,你幾乎可以保證所有東西都有替代品。
  4. 對於那些有預算的使用者,可以聘請 WordPress 開發人員來解決問題。

如何更新 PHP

準備好更新了嗎?很好,但您首先要做的一件事就是測試您的網站,以確保相容性。您可以在本地測試 WordPress 網站,或者更好地利用暫存環境,因為這將更接近實時生產網站。安全總比遺憾好!

請記住,如果您要從舊版本的 PHP 升級,請確保同時升級您的 WordPress 安裝。新版本的 PHP 和 2 年前版本的 WordPress 可能不會有什麼好結果。一旦你測試了自己的網站並準備好更新 PHP,這裡有一些資源可以讓你快速上手。

檢視我們的深入指南,一步一步瞭解如何在 WordPress 網站上安全地更新 PHP

使用寶塔更新 PHP

如果您是寶塔面板客戶,您可以進入寶塔面板管理後臺,點選右側的“軟體商店”選單,在應用搜尋輸入“php”,即可查詢可安裝的各種 PHP 版本。點選你需要升級安裝的 PHP 版本所對應的“安裝”,即可快速在你的伺服器上安裝部署新的 PHP 版本。

安裝 PHP 版本

安裝 PHP 版本

您可以通過點選網站,進入 “工具”,選擇不同的 PHP 引擎,輕鬆更改 PHP 版本。我們目前有 PHP 8.0、8.1 和 8.2 版本可供選擇。

完成新的 PHP 版本安裝後,還是軟體商店介面,選擇應用分類未“已安裝”,找到軟體名稱為“phpMyAdmin”,點選“設定”操作,在彈窗介面即可切換已安裝的 PHP 版本。

切換 PHP 版本

切換 PHP 版本

通過 cPanel 更新 PHP

如果您的主機使用 cPanel,它們很可能已經為您提供了更改 PHP 版本的選項。只需登入 cPanel,在 “Software” 類別下點選 “Select PHP Version” 即可。

在 cPanel 中選擇 PHP 版本

在 cPanel 中選擇 PHP 版本

然後,您可以選擇主機支援的 PHP 版本。

cPanel 中的 PHP 7

cPanel 中的 PHP 7

手動更新伺服器上的 PHP

如果您管理自己的伺服器,我們建議您檢視 PHP 官方安裝文件,因為不同的作業系統會有不同的說明。您需要檢視函式、類、封裝器、擴充套件、模組等方面的變化。下面是一些遷移指南的連結:

小結

如果您還沒有升級到 PHP 8.0、8.1 或 8.2,現在正是考慮升級的時候。這不僅是因為您希望執行在受支援的軟體上,而且還能保證效能優勢! 如果您當前的主機還不支援 PHP 8.0、8.1 或 8.2,我們強烈建議您尋找新的主機。同樣,主題和外掛也是如此。如果開發者還沒有釋出補丁,那麼可能是時候尋找其他替代品了。

您最近是否遷移到了 PHP 8.0、8.1 或 8.2?我們想在下面聽聽您的想法。遷移是否容易?或者您可能還在等待第三方。

評論留言