
php -S 是 PHP 5.4+ 提供的内置轻量级 Web 服务器启动标志,用于快速启动开发环境,无需 Apache 或 Nginx;它不依赖外部服务,仅需一条命令即可运行路由驱动的本地 HTTP 服务。
`php -s` 是 php 5.4 起引入的内置 web 服务器启动标志,用于快速启动一个轻量、无依赖的开发用 http 服务。它不替代生产环境服务器(如 nginx/apache),但极大简化了 php 脚本调试与前端联调流程——无需配置虚拟主机或重启服务,一行命令即可响应 http 请求。
-S 是 --server 的简写,全称为 “Run with built-in web server”。其基本语法为:
php -S <addr>:<port> [-t docroot] [router]
-
<addr>:<port></port></addr>:指定监听地址与端口,例如localhost:8000或0.0.0.0:4000(后者允许局域网访问); -
-t docroot(可选):显式指定文档根目录,默认为当前工作目录; -
[router](可选):指定路由脚本(如router.php),用于自定义请求分发逻辑(如重写 URL、处理静态资源、拦截 API 请求等)。
✅ 典型用法示例:
# 启动服务,监听 localhost:8000,根目录为当前文件夹 php -S localhost:8000 # 指定文档根目录为 ./public php -S localhost:8000 -t public/ # 启用路由脚本(所有请求先经 router.php 处理) php -S localhost:8000 router.php
? 路由脚本示例(router.php):
<?php
// 简单路由:优先返回静态文件,否则交由 index.php 处理
if (preg_match('/\.(?:png|jpg|jpeg|gif|css|js|ico|woff|ttf)$/', $_SERVER["REQUEST_URI"])) {
return false; // 让内置服务器直接返回静态文件
} else {
include __DIR__ . '/index.php'; // 所有其他请求交由框架入口处理
}⚠️ 重要注意事项:
立即学习“PHP免费学习笔记(深入)”;
- 内置服务器 仅适用于开发与测试,不具备并发处理、SSL、反向代理、安全加固等生产级能力;
- 不支持
.htaccess或mod_rewrite,URL 重写必须通过 PHP 路由脚本实现; - 静态文件由服务器自动处理(若未被 router 拦截),但动态请求(如
/api/user)必须由 router 显式include或require对应脚本; - 若未提供 router 文件,且请求路径不匹配现有静态文件,将返回
404 Not Found。
? 小技巧:执行 php --help 可随时查看完整参数说明,其中 -S 行明确标注 Run with built-in web server. —— 这是官方最权威的解释来源。掌握 -S,你便拥有了 PHP 开发中最敏捷的本地服务启动方式。



















