首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 「phpinfo() has been disabled」函數被禁用解除方法

     編輯:PHP 綜合知識

錯誤訊息

PHP Warning: phpinfo() has been disabled for security reasons in ...

原因

php.ini 中 disable_functions 指令列入 phpinfo,出於安全考慮禁止洩露伺服器環境資訊。

解除步驟(需管理員權限)

  1. 開啟 php.ini(位置可用 php --ini 或 phpinfo() 正常時查看 Loaded Configuration File)。
  2. 搜尋 disable_functions,預設類似:
disable_functions = phpinfo, exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source
  1. 將 phpinfo 從列表中移除(保留其它危險函數):
disable_functions = exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source
  1. 重啟 PHP/Apache:
  • PHP-FPM:systemctl restart php-fpm 或 /etc/init.d/php-fpm restart
  • Apache mod_php:systemctl restart httpd / apachectl restart

Linux 快速指令

vi /usr/local/php/etc/php.ini
# 搜尋 /disable_functions
# 刪除 phpinfo,
# 存檔退出
/etc/init.d/php-fpm restart

安全建議

  • 僅在開發/測試環境開啟 phpinfo,上線前務必再次禁用。
  • 生產環境若需檢視環境,建議撰寫受保護的診斷腳本(驗證 IP/Token),用完即刪。
  • 定期審計 disable_functions,確保 exec、shell_exec 等高危函數持續被禁用。

替代方案:不改 php.ini 也能看環境

<?php
// 簡易版 phpinfo 替代品
echo '<pre>';
echo 'PHP Version: ' . PHP_VERSION . "\n";
echo 'SAPI: ' . PHP_SAPI . "\n";
echo 'Loaded ini: ' . php_ini_loaded_file() . "\n";
echo 'Extensions: ' . implode(', ', get_loaded_extensions()) . "\n";
echo '$_SERVER keys: ' . count($_SERVER) . "\n";
echo '</pre>';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved