如何修復錯誤:“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”
已發表: 2022-11-01“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”錯誤消息可能會讓 WordPress 初學者和有經驗的用戶感到困惑。 雖然看起來您所要做的就是安裝缺少的 WordPress MySQL 擴展,但服務器端的 PHP 安裝和配置要復雜得多。 此外,有很多不同的數據庫驅動程序可用於 PHP,每一個都有相同的用途。
在這個修復“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”錯誤的綜合指南中,您將了解 WordPress 如何與其數據庫通信以及如何確保您的 PHP 安裝安裝了正確的 MySQL 擴展.
WordPress 如何與其數據庫通信?
您的 WordPress 網站是一個動態的、數據庫驅動的 Web 應用程序。 它本質上意味著兩件事:絕大多數網站內容都存儲在 WordPress 數據庫中,而 WordPress 絕對依賴於與其數據庫進行通信的能力才能正常運行。 每次您在網站上加載任何頁面時,WordPress 都會在後台執行一系列操作。
由於所有帖子、頁面和其他關鍵信息都存儲在數據庫中,而不是服務器上的文件,我們會在靜態網站上看到這些文件。 WordPress PHP 需要通過發送 SQL 查詢來檢索請求的內容,並將其與模板文件合併以創建將發送給網站訪問者的 HTML 頁面。 也就是說,WordPress 會解析你在瀏覽器中打開的地址,形成一組查詢參數,然後用來查詢數據庫。
那麼PHP在這個過程中的作用是什麼? WordPress 安裝或 WordPress 核心是一組 PHP 腳本,它們放在一起構建一個動態網站。 PHP 作為一種編程語言成為 WordPress 架構的核心,這意味著您的 PHP 安裝必須正確配置以與 WordPress 數據庫通信。 它的關鍵方面之一是安裝和啟用所需的 PHP 擴展。
用於 WordPress 的 PHP MySQL 擴展
PHP 使用特殊擴展或數據庫驅動程序來確保 WordPress 可以使用 wp-config.php 文件中提供的憑據建立與其數據庫的連接。 但是這個擴展到底是什麼? 您可能已經看過它的不同版本:mysql、mysqli、mysqlnd、pdo_mysql、libmysql,甚至更多。 很容易混淆,所以讓我們一勞永逸地解決它。
從 5.3 版本開始,PHP 使用 MySQL Native Driver 與數據庫服務器進行通信。 MySQL Native Driver 也可以稱為 mysqlnd,是 MySQL 分發的 MySQL Client Library (libmysql) 的替代品。 三個 MySQL 擴展——mysql、mysqli 和 pdo_mysql——被編譯為使用 MySQL 原生驅動程序,並廣泛用於基於 PHP 構建的網站。
PHP 在 5.5 版本中棄用了 mysql 擴展,並在 PHP 7+ 中刪除了對它的支持,轉而支持 mysqli。 與此決定保持一致,WordPress 使用 3.9 版本的 mysqli 擴展。 由於 WordPress 不支持 pdo_mysql,因此“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”錯誤消息中引用的數據庫驅動程序是 mysqli PHP 擴展。
“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”錯誤是什麼意思?
“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”錯誤意味著您的 WordPress 網站使用的 PHP 版本沒有正確安裝或配置 mysqli 擴展。 這導致 WordPress 無法與其數據庫通信,進而導致在您的網站上看到這種 WordPress 數據庫連接錯誤消息的變體。
WordPress 數據庫連接錯誤
WordPress 可以出於多種原因顯示數據庫連接錯誤。 WordPress 選擇顯示的錯誤消息取決於它在連接嘗試期間遇到問題的階段。 重要的是要了解與其無法與 WordPress 數據庫通信相關的兩個主要錯誤之間的區別。
如果 wp-config.php 文件中的數據庫信息不正確、您的數據庫用戶沒有足夠的權限、您的數據庫已損壞或您的 MySQL/MariaDB 服務器被拒絕,則“建立數據庫連接時出錯”消息將出現在您的網站上連接。 在這種情況下,WordPress 可以使用 mysqli 擴展,但在稍後階段會遇到某些問題。
如果您在您的網站上看到“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”錯誤消息,則您的 PHP 安裝未安裝或未加載 PHP mysqli 擴展。 數據庫驅動程序確保 WordPress 可以使用其 wpdb() 全局類,這是建立數據庫連接的第一步。
WordPress MySQL 擴展丟失錯誤背後的 3 個主要原因
當您首次安裝 WordPress 或將 WordPress 網站移動到新的託管基礎設施時,您需要確保所有服務均已正確配置。 它包括將接受 HTTP 請求的 Web 服務器、將控制 PHP 代碼執行的 PHP 處理程序,以及將接受和處理數據庫請求的 MySQL/MariaDB。
現代網絡託管控制面板允許您同時在服務器上安裝多個 PHP 版本。 傳統的 PHP 安裝方法並非如此,為了使用新版本的 PHP,您需要完全刪除以前的 PHP。 您還可以從圖形用戶界面安裝所有必需的 PHP 擴展,而無需從命令行安裝。
如果您已註冊 VPS 或專用主機,您可以選擇要用於 WordPress 網站的 PHP 版本,甚至是 PHP 處理程序。 這種自由既簡化了網站的運行過程,又使不熟悉 PHP 在服務器端工作方式的人變得更加複雜。
下面,我們將回顧導致 PHP 無法與您的 MySQL/MariaDB 服務器通信的常見情況。 以下是您網站上“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”錯誤消息背後的三個主要原因:
- 您的網站使用的 PHP 版本缺少 PHP mysqli 擴展。
- PHP mysqli 擴展配置不正確。
- 您正在使用帶有 PHP 7+ 的過時版本的 WordPress。
原因 1:您網站使用的 PHP 版本中缺少 PHP mysqli 擴展
可能根本沒有安裝 mysqli 擴展,特別是如果您剛剛發布了新的 PHP 版本。 如果 WordPress 無法使用 mysqli 擴展,它將嘗試在 PHP 版本低於 7.0 時使用舊的 mysql。 關鍵是為所選 PHP 版本安裝和配置 MySQL Native Driver。
如何解決
從您的虛擬主機控制面板安裝 MySQL 本機驅動程序或使用命令行界面啟用 WordPress mysqli 擴展。 對於 PHP 8.1,如果您使用的是 cPanel,則該軟件包將被稱為 php81-php-mysqlnd 或 ea-php81-php-mysqlnd.x86_64。
在沒有控制面板的 CentOS 服務器上,從命令行界面運行yum install php81-php-mysqlnd 。 對於 Ubuntu 服務器,您 apt-get 安裝 mysqlnd。 系統將自動啟用對 mysqli 和 pdo_mysql 的支持。
原因二:PHP mysqli 擴展配置不正確
一旦安裝了所需的 PHP MySQL 原生驅動程序,mysqli 和 pdo_mysql 都應該啟用並且可供 WordPress 使用。 要使用您正在使用的 PHP 版本加載擴展,需要在 PHP 全局配置目錄中創建一個特殊的 PHP 文件。 如果由於某種原因無法為所選 PHP 版本加載 mysqli 擴展,WordPress 將顯示“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”錯誤消息。
如何解決
驗證 MySQL 本機驅動程序或 mysqlnd 是否已正確安裝,並且 PHP 已為 mysqlnd 和 mysqli 添加了 .ini 文件。 在cPanel服務器上,您可以在/opt/cpanel/ea-php81/root/etc/php.d目錄下找到30-mysqli.ini和20-mysqlnd.ini配置文件,其中PHP 8.1是使用的PHP版本您的 WordPress 網站。 文件必須包含以下行才能正確加載擴展。
原因 3:您使用的是帶有 PHP 7+ 的過時版本的 WordPress
這不太可能,但您可能仍在使用帶有較新 PHP 版本的非常過時的 WordPress 版本。 使用過時的軟件版本不僅更容易遇到各種 WordPress 問題,而且還為黑客提供了幾乎無限的可能性來訪問您的網站並執行惡意操作。
如何解決
養成將您正在使用的所有軟件更新到最新版本的習慣。 更新 WordPress、活動主題和所有插件。 始終使用最新的 PHP 版本,以避免因代碼不兼容和未修補的安全漏洞引起的任何問題。
由於您無權訪問 WordPress 管理儀表板,因此請使用 WordPress 命令行界面執行所有更新。 您可以使用以下命令:
- wp核心更新。 更新 WordPress 核心。
- wp 插件更新 <插件名稱>。 更新某個插件或使用--all 標誌一次更新所有插件。
- wp 主題更新 <活動主題名稱>。 更新您的活動主題。
如果 WordPress 向您顯示缺少的 MySQL 擴展錯誤消息,則表明您需要更加認真地對待您的 WordPress 網站。 採取積極主動的方法來管理它的所有方面,尤其是在安全方面。 iThemes Security Pro 和 BackupBuddy 是行業領先的 WordPress 安全和數據保護解決方案,可以讓這個過程變得簡單而輕鬆。
使用 iThemes Security Pro 就像在您的團隊中擁有一位安全專家,將 24/7 全天候監控您的 WordPress 網站,讓您專注於發展業務。 BackupBuddy 保護全球超過 100 萬個 WordPress 網站,它會定期自動備份您的網站,將其副本存儲在安全位置,以便在您需要時一鍵恢復。 這樣,您可以輕鬆地從所有 WordPress 錯誤和惡意軟件感染中恢復,但請記住——攻擊預防總是比處理後果更好。
站點掃描功能檢查您網站的關鍵區域並自動應用修復程序,以使您的網站免受過時的插件和主題的影響,從而使其面臨巨大風險。 使用 iThemes 安全站點掃描,您可以顯著減少攻擊面並保護您的網站免受各種網絡攻擊。
iThemes 安全版本管理允許您為 WordPress 核心、插件和主題配置自動更新,以利用新功能並免受已知漏洞的影響。
使 WordPress 保持最新非常重要,可以節省大量時間來處理由過時軟件引起的各種 WordPress 問題。
其他原因
就像任何其他 WordPress 問題一樣,錯誤“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”可能會出於多種原因顯示在您的網站上,這些原因超出了我們上面概述的範圍。 但是,大多數情況下,它們與 PHP 處理程序錯誤配置或使用 CloudLinux 操作系統有關,該操作系統有自己的方式在服務器端配置 PHP。
CloudLinux PHP 選擇器
使用 Cloudlinux,您可以利用 CageFS,這是一種用於完全用戶隔離的強大解決方案,它可以防止跨帳戶符號鏈接攻擊並保護您的網站。 如果您使用的是 CageFS,則需要使用 CloudLinux PHP 選擇器,這通常會給 cPanel 用戶帶來額外的複雜性,他們通常會從 MultiPHP 管理器管理服務器端 PHP。 請參閱 CloudLinux 指南以將 PHP 選擇器與 cPanel 一起使用,或聯繫您的託管服務提供商尋求幫助。
如何修復“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”錯誤
要修復錯誤“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”,您需要確保您的 PHP 安裝已正確安裝和配置 MySQL 數據庫驅動程序 (mysqlnd) 和 mysqli 擴展。 只有這樣,您才能恢復 WordPress 和 WordPress 數據庫之間的正常連接並讓您的網站再次運行。
請按照以下步驟修復 WordPress MySQL 缺少擴展錯誤:
- 創建一個 PHP 信息頁面以查看您的 PHP 配置。
- 驗證 mysqli 擴展是否已正確安裝和配置。
- 恢復 WordPress 連接到其數據庫的能力並防止將來出現錯誤。
步驟 1. 創建 PHP 信息頁面以查看您的 PHP 配置
檢查 PHP 安裝配置的最簡單方法是創建 PHP 信息頁面。 在 WordPress 網站的文檔根目錄中創建一個名為 phpinfo.php 的文件,並將以下代碼插入其中:
<?php
phpinfo( );
?>
或者,如果您通過 SSH 登錄到您的網站,請運行以下命令。 它將創建一個 phpinfo.php 文件並調整其權限。
echo "<?php phpinfo(); ?>" > phpinfo.php ; chown $(stat -c %U .). phpinfo.php
通過在地址欄中鍵入 yourwebsite.com/phpinfo.php 在瀏覽器中打開新創建的 phpinfo.php 頁面。 將 yourwebsite.com 替換為您的 WordPress 網站的實際域名。 即使由於缺少 MySQL 擴展錯誤而沒有加載內容,打開 PHP 信息頁面也不會有任何問題。
您應該會看到一個類似於下面的頁面,其中將包含您用於 WordPress 網站的 PHP 版本的所有配置。 在這種情況下,它是 PHP 8.1。 擁有 PHP 信息頁面對於解決各種 WordPress 錯誤非常有用,包括 WordPress 中的“您的網站出現嚴重錯誤”消息。
在頁面頂部,您將看到您的 WordPress 網站使用的 PHP 版本。 以下是您應該首先檢查的 PHP 安裝的一些最重要的方面:
- PHP 處理程序。 您的網站使用的 PHP 處理程序將顯示為服務器 API。 在上面的截圖中,它是 FPM/FastCGI。
- 加載的配置文件。 為正在使用的 PHP 版本加載的主配置文件。
- 解析了其他 .ini 文件。 此列表將包含所有其他加載的 PHP 配置文件,包括加載 MySQL 本機驅動程序 (20-mysqlnd.ini) 和 mysqli 擴展 (30-mysqli.ini) 的文件。
確保已解析的其他 .ini 文件列表包含所需的 20-mysqlnd.ini 和 30-mysqli.ini 文件,以確保正確加載所需的 PHP WordPress MySQL 擴展 mysqli 並可供您的網站使用。
步驟 2. 驗證 mysqli 擴展是否已正確安裝和配置
向下滾動 PHP 信息頁面或使用瀏覽器中的搜索選項查看其中的 mysqli 和 mysqlnd 部分。 他們應該一個接一個。
請注意,mysqli 擴展被編譯為使用 MySQL 本機驅動程序,因為客戶端 API 庫版本向我們顯示了 mysqlnd。 PHP 擴展信息向我們展示了一些額外的細節,包括 MySQL/MariaDB 端口。
檢查 PHP 信息文件的 mysqlnd 部分列出了哪些 API Extensions。 在上面的屏幕截圖中,我們同時啟用了 mysqli 和 pdo_mysql。
步驟 3. 恢復 WordPress 連接到其數據庫的能力
PHP 信息頁面將顯示您用於 WordPress 網站的 PHP 版本是否安裝並配置了 mysqli 擴展。 如果缺少它,請從您的虛擬主機控制面板提供的 PHP 管理界面或使用命令行界面安裝它。
檢查引用的 20-mysqlnd.ini 和 30-mysqli.ini 以查看它們是否正確加載了擴展。 如果您使用的是過時版本的 WordPress,請更新安裝以及所有插件和主題。
我們在本指南中概述的步驟應該可以幫助您在絕大多數情況下恢復 WordPress 網站的功能。 但是,正如我們所提到的,可能存在其他問題,包括 PHP 處理程序配置錯誤,這可能會導致在您的網站上看到“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”錯誤消息。 如果不清楚導致問題的原因,最好聯繫您的網絡託管支持團隊以獲得進一步的幫助。
包起來
WordPress MySQL 缺少擴展錯誤是 WordPress 與其數據庫通信能力相關的問題之一。 這表明所需的 PHP mysqli 擴展丟失或配置不正確,導致 PHP 無法將 SQL 查詢發送到您的 WordPress 數據庫。 從 PHP 7.0 開始,舊的 mysql 擴展被刪除,取而代之的是 mysqli,新的 WordPress MySQL 擴展被編譯為使用 MySQL 原生驅動程序。
就像任何其他嚴重的 WordPress 錯誤一樣,看到錯誤“您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展”意味著您需要檢查您的 WordPress 配置並確保最佳安全實踐到位。
對 WordPress 網站管理和安全採取積極主動的方法將幫助您防止大多數錯誤並顯著減少攻擊面。 配置監控、自動軟件更新和定期備份以保護您的網站免受安全漏洞和網絡攻擊讓 iThemes Security Pro 和 BackupBuddy 成為您的安全和數據恢復專家團隊,確保您的網站永遠不會脫機。
保護和保護 WordPress 的最佳 WordPress 安全插件
WordPress 目前為超過 40% 的網站提供支持,因此它已成為惡意黑客的輕鬆目標。 iThemes Security Pro 插件消除了 WordPress 安全性的猜測,使保護您的 WordPress 網站變得容易。 這就像擁有一個全職的安全專家,他們不斷地為您監控和保護您的 WordPress 網站。
Kiki 擁有信息系統管理學士學位和兩年多的 Linux 和 WordPress 經驗。 她目前擔任 Liquid Web 和 Nexcess 的安全專家。 在此之前,Kiki 是 Liquid Web Managed Hosting 支持團隊的一員,在那裡她幫助了數百名 WordPress 網站所有者並了解了他們經常遇到的技術問題。 她對寫作的熱情使她能夠分享她的知識和經驗來幫助人們。 除了科技,Kiki 還喜歡了解太空和收聽真正的犯罪播客。