如何在PHP本地环境创建测试站点_PHP本地环境建测试站点流程【搭建】

php -S 是 PHP 5.4+ 内置轻量 Web 服务器,适合单文件或简单路由测试;需在项目根目录运行,支持自定义路由器文件,但不支持 .htaccess 和静态资源重写,常见问题包括 404 和 “No input file specified”。

直接用 php -S 启动内置服务器就能快速建测试站点,不用装 Apache/Nginx,适合单文件或简单路由验证。

php -S 快速启动一个本地测试站点

PHP 5.4+ 自带内置 Web 服务器,专为开发测试设计。它不支持 .htaccess、不能处理静态资源重写(如 Vue Router history 模式需额外路由文件),但对纯 PHP 脚本或简单 API 完全够用。

  • 确保终端在项目根目录(含 index.php
  • 运行命令:
    php -S localhost:8000
  • 浏览器访问 http://localhost:8000 即可看到响应
  • 如需自定义路由逻辑(例如让所有请求都进 router.php),加第三个参数:
    php -S localhost:8000 router.php
    ,其中 router.php 需返回 true(表示已处理)或 false(交由内置服务器尝试找对应文件)

常见错误:访问报 404 或 “No input file specified”

这通常不是 PHP 报错,而是内置服务器找不到入口文件或路由没兜底。

  • 没指定路由器文件,但请求的路径(如 /about)下没有对应物理文件(about.p

    hp
    about/index.php)→ 自动 404
  • 写了 router.php 但没正确返回 true/false,或忘记调用 file_exists() 判断静态资源 → 触发 “No input file specified”
  • Windows 下路径含中文或空格,可能被 URL 编码干扰 → 改用英文路径
  • 端口被占用(如另一 PHP 进程或 Python HTTP 服务)→ 换端口,例如 php -S localhost:8080

需要支持多站点或复杂路由?改用 localhost + hosts + 简易反代

当测试需多个子域名(如 api.testadmin.test)或想模拟真实 Nginx 行为时,纯 php -S 不够用。此时推荐轻量组合:

  • 编辑系统 hosts 文件,添加:
    127.0.0.1 api.test
    127.0.0.1 admin.test
  • 用 Python 或 Node.js 启一个极简反向代理(如 http-server + http-proxy-middleware),把不同域名指向不同 PHP 项目目录下的 php -S 实例
  • 不建议在 Windows 上用 WAMP/XAMPP 开多个虚拟主机来“模拟”,配置繁琐且容易端口冲突;macOS/Linux 用户可考虑 nginx -p $(pwd) -c nginx.conf 临时加载自定义配置,但前提是已装 nginx

真正麻烦的从来不是启动命令,而是静态资源路径写死、相对 URL 在子路径下失效、或依赖 $_SERVER['DOCUMENT_ROOT'] 的旧代码在内置服务器里拿不到预期值——这些细节比选工具更值得花时间检查。