服务器禁用phpinfo文件,有哪些可替代的PHP信息获取方案?
替代phpinfo的可用方案
命令行/SSH获取方案(优先使用,无需web权限)
- 全量PHP配置输出:直接执行
php -i即可输出和原生phpinfo完全一致的内容,所有配置项、扩展信息、环境变量都包含在内。需要导出为文件的话执行php -i > php_info.txt,需要导出为HTML格式的话执行php -r "phpinfo();" > phpinfo.html,生成的文件可自行下载查看。 - 定向查询特定信息:
- 查PHP版本:
php -v - 查已加载的所有扩展列表:
php -m - 查加载的php.ini配置文件路径:
php --ini - 查单个配置项值,比如内存限制:
php -i | grep memory_limit,可自行替换关键词查询目标配置。
- 查PHP版本:
单文件HTML替代方案(适用于仅禁用phpinfo函数、仍可正常解析PHP脚本的场景)
如果还有可用的PHP web执行权限,仅phpinfo函数被禁用,可使用以下不调用phpinfo函数的单文件脚本,输出结构和原生phpinfo接近:
<?php // 轻量phpinfo替代实现,不依赖phpinfo()函数 $iniConfig = ini_get_all(); $loadedExts = get_loaded_extensions(); $serverEnv = $_SERVER; ?> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>PHP配置信息</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: Arial, sans-serif; } body { padding: 20px; } h1 { color: #2c3e50; margin-bottom: 20px; } h2 { color: #34495e; margin: 25px 0 10px; padding-bottom: 5px; border-bottom: 1px solid #eee; } table { width: 100%; border-collapse: collapse; margin: 10px 0; } th, td { border: 1px solid #ddd; padding: 8px; text-align: left; } th { background-color: #f8f9fa; font-weight: bold; } ul { margin-left: 25px; line-height: 1.6; } </style> </head> <body> <h1>PHP配置信息总览</h1> <h2>核心基础信息</h2> <p>PHP版本:<?php echo phpversion(); ?></p> <p>加载的php.ini路径:<?php echo php_ini_loaded_file() ?: '未检测到'; ?></p> <h2>所有INI配置项</h2> <table> <tr><th>配置项</th><th>本地值</th><th>主配置值</th></tr> <?php foreach ($iniConfig as $key => $item): ?> <tr> <td><?php echo htmlspecialchars($key); ?></td> <td><?php echo htmlspecialchars($item['local_value']); ?></td> <td><?php echo htmlspecialchars($item['global_value']); ?></td> </tr> <?php endforeach; ?> </table> <h2>已加载扩展列表</h2> <ul> <?php foreach ($loadedExts as $ext): ?> <li><?php echo htmlspecialchars($ext) . ' 版本:' . (phpversion($ext) ?: '无'); ?></li> <?php endforeach; ?> </ul> <h2>服务端环境变量</h2> <table> <tr><th>变量名</th><th>变量值</th></tr> <?php foreach ($serverEnv as $key => $value): ?> <tr> <td><?php echo htmlspecialchars($key); ?></td> <td><?php echo htmlspecialchars($value); ?></td> </tr> <?php endforeach; ?> </table> </body> </html>
注意:脚本使用完毕请立即删除,避免配置信息泄露。如果服务器同时禁用了
ini_get_all、get_loaded_extensions等函数,该脚本无法正常运行,建议优先使用命令行方案。
内容的提问来源于stack exchange,提问作者hazen Baisley
相关产品推荐
相关产品推荐

