可通过五种方式在Docker中调用phpinfo():一、容器内执行php -r "phpinfo();"输出文本;二、复制phpinfo.php至Web根目录后浏览器访问;三、用卷挂载动态更新文件;四、容器内curl本地请求验证解析;五、构建镜像时预置为默认首页。

如果您在Docker容器中运行PHP应用,但无法直接访问phpinfo()输出页面,则可能是由于容器内未启用Web服务或未正确暴露PHP信息脚本。以下是调用phpinfo()的多种操作方式:
一、在容器内执行phpinfo()命令行输出
该方法通过PHP CLI直接调用phpinfo()函数,适用于无Web服务器的轻量容器环境,输出纯文本格式的PHP配置摘要。
1、使用docker exec进入正在运行的PHP容器:
docker exec -it 容器名称或ID /bin/sh
2、在容器内执行PHP内置函数调用:
php -r "phpinfo();"
立即学习“PHP免费学习笔记(深入)”;
3、如需仅查看扩展列表,可追加过滤参数:
php -r "phpinfo();" | grep -i "extension"
二、向容器内写入临时phpinfo.php文件并访问
该方法适用于已运行Apache或Nginx的PHP容器,通过挂载或复制方式注入脚本,再通过HTTP请求获取完整HTML格式输出。
1、创建本地phpinfo.php文件,内容为:
phpinfo(); ?>
2、将文件复制进容器Web根目录(以Apache默认路径为例):
docker cp phpinfo.php 容器名称或ID:/var/www/html/phpinfo.php
3、确认容器80端口已映射至宿主机,并在浏览器中访问:
http://宿主机IP:映射端口/phpinfo.php
三、使用Docker卷挂载动态phpinfo.php文件
该方法避免重复复制,适用于需频繁查看或调试多容器场景,通过绑定挂载使phpinfo.php实时生效。
1、在宿主机创建存放目录并写入phpinfo.php:
mkdir -p /tmp/php-debug && echo "phpinfo(); ?>" > /tmp/php-debug/phpinfo.php
2、启动或重启容器时添加卷挂载参数:
docker run -v /tmp/php-debug/phpinfo.php:/var/www/html/phpinfo.php:ro 其他参数 镜像名
3、访问挂载后的URL路径:
http://localhost/ phpinfo.php(注意空格仅为防自动链接,实际输入时勿保留)
四、通过curl在容器内发起本地HTTP请求触发phpinfo
该方法验证Web服务器是否正常解析PHP脚本,同时绕过外部网络依赖,适用于仅开放内部端口的隔离网络容器。
1、确认容器内已安装curl工具,若无则安装:
apt-get update && apt-get install -y curl(Debian/Ubuntu)
或
apk add curl(Alpine)
2、在容器内执行本地回环请求:
curl -s http://localhost/phpinfo.php | head -n 20
3、如返回空白,检查Web服务状态:
service apache2 status 或 nginx -t
五、构建镜像时预置phpinfo.php并设为默认首页
该方法适用于开发镜像定制,确保每次启动即暴露PHP环境信息,无需手动注入文件。
1、在Dockerfile中添加COPY指令:
COPY phpinfo.php /var/www/html/index.php
2、确保phpinfo.php内容为:
phpinfo(); ?>
3、重新构建并运行镜像后,直接访问容器映射端口根路径:
http://宿主机IP:端口/










