您的位置:首页 >PHP 404 错误原因及正确启动方法
发布于2026-02-15 阅读(0)
扫一扫,手机访问
服务器 404 错误的根源与正确启动路径解析
" />
PHP 内置开发服务器(php -S)返回 404 的根本原因,是请求的文件路径未落在当前工作目录下——该命令仅提供静态路由映射,不支持自动目录遍历或项目根目录推断。
PHP 自带的内置 Web 服务器(php -S)是一个轻量级、无配置的开发工具,适用于快速测试 PHP 脚本,但它对文件路径极为严格:它只从你执行命令时所在的当前工作目录(current working directory)中查找并响应请求。这意味着,无论你的项目结构多么复杂(如 Laravel 的 public/ 入口、Vue 的 dist/ 目录或自定义的 src/),你都必须确保 php -S 命令在实际可访问资源所在的目录中运行。
例如,假设你的项目结构如下:
/project
├── composer.json
├── app/
├── public/ ← 实际 Web 入口(含 index.php)
│ ├── index.php
│ └── assets/
└── src/ ← 另一个可能存放脚本的目录
└── demo.php❌ 错误做法:在 /project 根目录下执行
cd /project php -S localhost:8888
此时访问 http://localhost:8888/index.php 会 404 —— 因为 index.php 并不在 /project 下,而是在 /project/public/ 中。
✅ 正确做法:切换至 public/ 目录再启动
cd /project/public php -S localhost:8888
此时 index.php 位于当前目录,请求可被正常响应。
? 进阶提示:指定路由器脚本(推荐 Laravel 等框架使用)
对于需要 URL 重写(如 Laravel 的 index.php 统一入口)的项目,应配合路由器脚本启动:cd /project/public php -S localhost:8888 router.php其中 router.php 示例(保存在 public/ 下):
<?php // router.php if (preg_match('/\.(?:png|jpg|jpeg|gif|css|js|ico|woff|woff2|ttf|eot|svg)$/', $_SERVER["REQUEST_URI"])) { return false; // 静态资源直接由服务器返回 } else { include __DIR__ . '/index.php'; // 所有其他请求交由 index.php 处理 }
⚠️ 常见误区与注意事项:
总结:解决 php -S 的 404 问题,核心就一句话——让终端当前路径(pwd / cd 结果)与浏览器所请求的 PHP 文件所在路径完全一致。养成执行前先 ls -l index.php 确认文件存在的习惯,可避免绝大多数路径类 404。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9