
-S是PHP CLI内置Web服务器的启动标志,用于以指定地址和端口运行轻量级开发服务器,无需Apache或Nginx,适合本地快速测试与开发。
`-s`是php cli内置web服务器的启动标志,用于以指定地址和端口运行轻量级开发服务器,无需apache或nginx,适合本地快速测试与开发。
PHP自5.4.0起内置了一个简易但功能完备的HTTP服务器,专为开发与调试设计。-S(大写S)即 --server 的缩写,全称为 “Run with built-in web server”——它并非CMD或PowerShell的系统级参数,而是PHP解释器自身识别的命令行选项。
使用方式如下:
php -S localhost:4000
该命令会在 http://localhost:4000 启动一个单线程Web服务,默认以当前目录为文档根目录(document root),并自动处理静态文件(如.html、.css、.js);对于PHP脚本请求,则由PHP引擎直接解析执行。
你还可以显式指定文档根目录和路由脚本,提升控制力:
php -S localhost:8000 -t ./public/ router.php
其中:
-
-t ./public/将./public/设为Web根目录; -
router.php是可选的路由处理器:所有HTTP请求(包括静态资源)都会先经由此脚本,由你决定如何响应(例如重写URL、添加认证、拦截API请求等)。一个典型router.php示例如下:
<?php // router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif|css|js)$/', $_SERVER["REQUEST_URI"])) {
return false; // 让PHP服务器直接返回静态文件
}
// 其他请求交由index.php处理
include __DIR__ . '/index.php';
⚠️ 注意事项:
- 内置服务器仅适用于开发环境,不具备生产级性能、安全机制(如HTTPS、并发优化、访问日志、反向代理等),严禁部署于公网;
- 不支持
.htaccess、URL重写规则(需在路由脚本中手动实现); - 若未指定路由脚本,PHP会尝试查找并执行
index.php或index.html作为默认入口; - 端口被占用时会报错(如
Failed to listen on localhost:4000),可换端口重试。
总结:-S是PHP为开发者提供的开箱即用型工具标志,它让“写代码→保存→刷新浏览器”的闭环变得极简高效。理解其本质(非系统命令,而是PHP原生命令),掌握基础语法与路由机制,能显著提升本地PHP开发体验。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











