由於現在的虛擬主機有搭配Cloudlinux,故可以在cPanel控制台(何謂cPanel請點我)上作PHP版本的切換(cPanel切換PHP版本教學請點我),但常見會因為系統因素(系統混亂或權限不足等),因此有時會造成切換後PHP版本仍非所需要的,該次針對如何使用phpinfo函數(用網頁的方式)直接驗證目前主機空間所套用的PHP版本為何的方式。
phpinfo 的安全性提醒(必讀)
phpinfo 雖然非常好用,但同時會顯示大量敏感資訊,例如伺服器環境變數、路徑、已啟用的擴展、PHP 設定值等。因此 info.php 僅應用於檢查與排錯,不應長期保留在線上。完成檢查後,建議立即刪除 info.php,以避免外部掃描工具取得你的主機設定資訊而造成安全風險。
何謂phpinfo函數?可以在主機空間cPanel控制台上直接使用嗎?
phpinfo 函數(phpinfo的PHP官方說明請點我),可以查看當前主機空間的大量信息,包含了PHP 編譯選項、啟用的擴展(Extension)、PHP 版本、伺服器資訊和環境變數(如果編譯為模組的話)、PHP 環境變數、作業系統版本資訊、path 變數、設定選項的本地值和主值、HTTP 頭和PHP授權訊息…等。
該方式就是確認PHP版本是否成功切換所需要版本;故會需要避開使用系統方式確認,因此無法於cPanel控制台上操作使用,是使用在瀏覽器中輸入http://您的網址/info.php 網頁方式來呈現主機空間的所有PHP配置設置。
phpinfo 會顯示哪些資訊?
phpinfo 所顯示的資訊非常完整,包含目前主機所使用的 PHP 版本、核心設定、擴展模組、伺服器 API、執行限制、時區設定等。這些內容完全反映伺服器正在運行的真實環境,因此比 cPanel 的顯示更準確,是網站管理者或工程師排查 PHP 相關問題時最可靠的工具。
如何使用phpinfo來查看主機空間的PHP環境相關狀況?
1.登入cPanel控制台→檔案管理員→public_html資料夾下(或任何您想要放置網頁程式的資料夾下)
這裡以public_html來舉例→產生一個info.php的檔案。
P.S.cPanel設定子網址、附加網址、別名教學請點我,確認網址已指向過來。
其實只要該資料夾能透過網址正常存取(例如子網域資料夾、附加網域資料夾、staging 等),都可以放置 info.php 進行檢查。不同網域可能會採用不同 PHP 設定,因此在多網域環境特別實用。
2.再點選建立好的info.php→按編輯,依phpinfo的PHP官方說明輸入代碼如下:
<?php
// Show all information, defaults to INFO_ALL
phpinfo();
// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo(INFO_MODULES);
?>
如果你只需要查看「版本資訊」即可,也可以改用 phpinfo(INFO_GENERAL); 精簡輸出,便於更快速定位問題。
3.開啟瀏覽器連結info.php檔案即可以查看,如輸入網址:http://您的網址/info.php可以看到下圖。
進入 phpinfo 後,建議可觀察 PHP Version、Loaded Configuration File、Extensions 是否啟用、memory_limit、upload_max_filesize、max_execution_time、timezone 等資訊。這些設定與 WordPress、Laravel、Magento 等架站環境息息相關。
MultiPHP 與 CloudLinux PHP Selector 的差異
cPanel 上可能同時出現兩種 PHP 管理方式。MultiPHP 屬於 Apache Handler 層級管理,而 CloudLinux PHP Selector 則在使用者層級分配 PHP 版本和模組。若兩者配置衝突,很容易造成「介面顯示已切換,但 phpinfo 顯示未變動」的狀況。了解兩者差異可以幫助你更快判斷問題來源。
為何 cPanel 切換 PHP 版本會失敗?
常見主要原因為牽扯到系統端因素,如:Cloudlinux 的 CageFS 有問題;主機空間商因開放 MultiPHP 造成混亂…等。
此外,也可能是 Handler 混用、環境快取未更新、PHP Selector 資料損壞等問題。若 phpinfo 結果與你在 cPanel 看到的不同,幾乎可直接判定為系統層級問題,此時應請主機商協助處理。
使用 phpinfo 時可重點檢查哪些內容?
除了確認 PHP 版本是否正確外,常見會影響網站安裝與功能的項目包含:必備擴展是否啟用(例如 mysqli、pdo、mbstring、curl)、記憶體限制是否足夠、檔案上傳大小是否設定合理、OPcache 是否正常啟動、時區是否正確等。這些項目若設定不當,都可能造成網站外掛或系統運作異常。
進階 info.php 使用技巧(更快速檢查)
如果你不想顯示完整 phpinfo,也可以用更小的指令快速檢查特定資訊,例如查詢版本、查看記憶體限制或列出已啟用的擴展模組:
<?php
echo phpversion();
echo ini_get('memory_limit');
print_r(get_loaded_extensions());
?>
這類方法能避免曝光過多伺服器環境資訊,也更適合在測試或除錯時快速使用。
最佳實務與常見錯誤避免方式
切換 PHP 版本後,建議等待數分鐘讓系統完成更新,避免誤判。若主機提供 MultiPHP 與 PHP Selector,避免同時調整,以免設定互相覆蓋。最重要的是,info.php 僅供檢查使用,務必在檢查結束後即刻刪除,以確保主機安全。
結論:
主機空間在開啟使用前,除了先將環境設置成所需求,還需要再作驗證確認,許多程式設計師、網管人員在開始動作前亦是如此,驗證動作非必要動作,但確能在檢修發生的問題時,可以省掉一大圈的釐清時間。
透過 phpinfo,你可以確實掌握主機的真實 PHP 執行環境,避免因介面顯示錯誤或系統混亂而耽誤排查時間。在架站、除錯、版本檢查時,都是不可或缺的基本工具。
常見問題:
Q1.phpinfo 是否需要刪除?
是的,因為 phpinfo 會顯示大量主機環境敏感資訊,強烈建議在檢查完畢後立即刪除 info.php。
Q2.phpinfo 顯示的版本與 cPanel 顯示不同怎麼辦?
代表 PHP 設定未成功套用,通常屬於主機端問題,如 CloudLinux、CageFS、PHP Selector 等需由主機商處理。
Q3.是否可以用 phpinfo 來判斷是否支援某個外掛或 CMS?
可以。你可以透過 phpinfo 查看是否啟用必要的 PHP 擴展,例如 WordPress 常用的 mysqli、mbstring、curl,或是 Magento 需要的 intl、soap、bcmath。只要擴展有出現在 phpinfo 裡,代表主機已成功支援。
Q4.phpinfo 顯示的 php.ini 位置與我看到的不同,這正常嗎?
正常。許多主機會區分「系統 php.ini」與「使用者自訂 php.ini」。phpinfo 會顯示實際正在使用的設定來源,因此若兩者不一致,是以 phpinfo 結果為準。
Q5.使用 phpinfo 可以檢查是否支援 HTTPS 或 SSL 嗎?
phpinfo 本身不會直接顯示 SSL 憑證資訊,但你可以從「SERVER_PROTOCOL」與「HTTPS」欄位確認是否經由 HTTPS 存取。此外,若你的 PHP 程式需要使用 cURL 或 OpenSSL,phpinfo 也會顯示這些擴展是否已啟用。
文章來源:https://wpoki.com



Hi,Nania:
您好,想請問若我們收到資安相關的偵測時;出現該RISKWe observed POP3, an email retrieval service, publicly exposed.
一般都需檢查哪裡呢?
註:目前敝司的網頁都放至ServerZoo;且主機是利用cPanel與WordPress配合;
一直不知道怎麼查看此設定