PHP页面空白是因为浏览器未执行PHP而仅显示源码,需用php -S启动内置服务器访问http://localhost:8000,调试需配置launch.json,错误信息在终端而非浏览器中查看。

PHP 没有报错但页面空白,php -v 能运行说明环境没问题,问题大概率出在 VS Code 没走 PHP CLI 而是直接打开了文件
VS Code 本身不运行 PHP,它只是个编辑器。所谓“运行 PHP”,本质是调用系统已安装的 php 可执行文件来解析脚本。如果点开 index.php 只看到源码或一片空白,说明你双击/预览了文件,而不是执行它。
- 别用「打开预览」或浏览器直接拖入 HTML 文件那种方式看 PHP —— 浏览器不会执行 PHP,只会显示文本或报 500 错误
- 必须通过命令行启动 PHP 内置服务器,或配好本地 Web 服务器(如 Apache + PHP)再访问
http://localhost:8000 - 最简验证方式:终端进项目目录,运行
php -S localhost:8000,然后浏览器打开http://localhost:8000
装了 PHP 插件但按 Ctrl+F5 没反应,php.debug 插件需要手动配置 launch.json 才能调试
PHP Debug 插件(由 Felix Becker 维护)不会自动启用调试,它依赖 VS Code 的调试配置。没配 launch.json,快捷键就只是个摆设。
- 按
Ctrl+Shift+P→ 输入Debug: Open launch.json→ 选PHP→ 自动生成基础配置 - 关键字段不能漏:
"program": "${file}"(当前文件)、"runtimeExecutable": "php"(确保指向正确 PHP 路径) - 如果 PHP 不在系统 PATH,得写绝对路径,比如
"runtimeExecutable": "/usr/local/bin/php"(macOS)或"C:\php\php.exe"(Windows) - 调试时断点只在 CLI 模式生效;Web 请求调试需额外配 Xdebug 并启用远程监听
php -S 启动后改代码不刷新?这不是热更新问题,是 PHP 内置服务器默认不监听文件变化
php -S 是开发用的轻量服务器,不是 Node.js 那种带 watch 的工具。每次改完 PHP 文件,必须手动重启服务才能看到效果。
- 别指望保存即刷新 —— 它连自动重载都做不到,更别说 HMR
- 推荐加个简单脚本:用
nodemon监听*.php文件,触发php -S重启(nodemon --exec php -S localhost:8000) - 注意
php -S不支持.htaccess或 URL 重写,路由逻辑得自己在router.php里处理 - 生产环境严禁用
php -S,它没做安全加固,也不支持并发连接优化
浏览器访问 http://localhost:8000 报 500 错误,先看终端里 php -S 输出的错误行,不是看浏览器页面
PHP 内置服务器把所有错误直接打到启动它的终端窗口,浏览器只返回笼统的 500。真要定位问题,得盯住命令行输出。
- 常见原因:语法错误(
Parse error)、扩展没加载(Class 'PDO' not found)、路径写错(require 'config.php'找不到) - 确保
display_errors = On和error_reporting = E_ALL在php.ini里生效(查php --ini确认加载的是哪个 ini) - 如果用
router.php,里面抛异常不会被自动捕获,错误仍会出现在终端,但浏览器可能卡死或空响应 - Windows 用户特别注意路径分隔符:用
/或\都行,但别混用;__DIR__ . 'config.php'在某些 PHP 版本下会失效
事情说清了就结束。VS Code 里跑 PHP 最容易卡在“以为它该自动干啥”——其实它只负责调用,中间每层(PHP 解析、路由、错误展示)都得自己理清楚路径和上下文。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











