PHP内置服务器php -S适用于快速测试,但多数场景直接运行php script.php或使用php -a交互模式更高效,仅在需HTTP上下文(如路由、表单)时启用。

PHP 自带的内置服务器足够应付绝大多数脚本快速测试需求,无需安装 Apache/Nginx 或配置虚拟主机。
用 php -S 启动最简临时服务
在脚本所在目录执行:php -S localhost:8000 即可启动一个监听 localhost:8000 的单线程 HTTP 服务。它会自动响应 GET 请求,按路径查找对应文件(如访问 /index.php 就返回当前目录下的 index.php)。
- 若入口不是
index.php,可用路由文件控制逻辑:例如创建router.php,内容为,再运行php -S localhost:8000 router.php - 该服务器不解析
.htaccess,也不支持重写规则,纯 PHP 路由需手动实现 - 仅限开发测试,不支持并发请求,生产环境严禁使用
直接执行 CLI 脚本比启服务更轻量
很多测试场景根本不需要 HTTP 层——比如验证数据处理、API 请求封装、数组遍历逻辑。这时直接运行 php script.php 最快。
- 脚本里用
var_dump()、print_r()或echo json_encode(...)输出结果即可 - 需要模拟 $_POST 或 $_GET?在脚本开头手动赋值:
$_GET = ['id' => 123]; $_POST = ['name' => 'test']; - 注意 CLI 模式下
$_SERVER不含 HTTP 相关键(如REQUEST_URI),依赖它的代码会报错
用 php -a 进入交互式调试环境
想逐行试函数或快速验表达式?php -a 提供 REPL 环境,输入即执行,适合探索式开发。
立即学习“PHP免费学习笔记(深入)”;
- 输入
echo date('Y-m-d');回车立刻看到结果 - 支持变量持久化:
$arr = [1,2,3];之后可继续用$arr - Windows 下可能提示 “Interactive mode enabled”,但实际不响应输入——换用 Git Bash 或 Windows Terminal 可解决
- 不加载
php.ini中的扩展(如mysqli),需确认扩展已启用再试
真正省时间的关键不是“搭环境”,而是判断清楚:这个脚本到底需不需要 HTTP 上下文?多数时候,php script.php 或 php -a 已经够用;只有涉及路由、静态资源、表单提交等环节时,才值得拉起 php -S。别让“看起来像线上”干扰了验证本质逻辑的效率。











