在Docker容器化的PHP部署场景中,查看PHP运行环境、已安装扩展、配置参数等信息是开发调试的常见需求,phpinfo函数可以输出完整的PHP环境详情,不过容器环境的隔离特性让它的调用方式和传统服务器有所不同。

方法一:创建临时PHP文件访问
这是最常用的方式,适合已经启动PHP容器且映射了端口的场景,操作步骤如下:
- 进入运行中的PHP容器,使用
docker exec -it 容器ID/容器名 bash命令,如果容器没有bash可以用sh替代 - 在容器的网站根目录创建phpinfo文件,比如根目录是
/var/www/html,创建info.php文件 - 通过映射的宿主机端口访问该文件,即可看到phpinfo的输出内容
对应的文件创建代码示例如下:
<?php // 调用phpinfo函数输出所有PHP环境信息 phpinfo(); ?>
方法二:容器内直接执行PHP命令
如果没有映射端口,或者只需要快速查看信息,不需要通过浏览器访问,可以直接在容器内执行PHP命令输出phpinfo内容:
# 进入容器后执行以下命令 php -r "phpinfo();"
该命令会直接在终端输出phpinfo的所有内容,不过终端输出格式可能不如浏览器展示清晰,适合快速排查核心配置参数。
方法三:Dockerfile构建时临时添加
如果是自定义PHP镜像,可以在Dockerfile中临时添加phpinfo文件,构建后启动容器即可访问,构建完成后可以再删除该文件避免安全风险:
# 基于官方PHP镜像构建 FROM php:8.2-fpm # 临时创建phpinfo文件到网站根目录 RUN echo '<?php phpinfo(); ?>' > /var/www/html/info.php # 后续可以添加其他构建指令,正式上线前删除info.php
注意事项
- phpinfo会暴露服务器的PHP版本、路径、扩展等敏感信息,测试完成后一定要及时删除相关的info.php文件,避免带来安全风险
- 如果容器内没有安装php命令行工具,需要先安装php-cli组件才能使用
php -r命令 - 访问phpinfo文件时如果返回404,需要检查容器的端口映射是否正确,以及文件是否放在了容器配置的正确网站根目录下
常见问题排查
如果调用phpinfo没有输出内容,可以先检查PHP配置中disable_functions是否禁用了phpinfo函数,若被禁用可以在php.ini中移除该限制后重启PHP服务。如果是FPM模式的容器,修改配置后需要执行php-fpm reload或者重启容器让配置生效。