
xampp 中访问 php 文件时出现 “object not found”(http 404)错误,通常并非代码或数据库问题,而是服务器路径配置、文件存放位置或 apache 服务状态异常所致;本文系统梳理常见原因并提供可复现的解决方案。
xampp 中访问 php 文件时出现 “object not found”(http 404)错误,通常并非代码或数据库问题,而是服务器路径配置、文件存放位置或 apache 服务状态异常所致;本文系统梳理常见原因并提供可复现的解决方案。
当 XAMPP 的 Apache 和 MySQL 服务均显示“running”,但浏览器访问 .php 文件(如 http://localhost/test.php)却返回 “Object not found! Error 404”,这表明请求未被 Apache 正确路由——根本原因在于 资源路径不可达,而非 PHP 解析失败或数据库连接异常。
✅ 正确的文件部署路径是前提
XAMPP 默认仅将 htdocs 目录设为 Web 根目录(DocumentRoot)。所有需通过 http://localhost/ 访问的 PHP 文件,必须存放在 C:\xampp\htdocs\(Windows)或 /opt/lampp/htdocs/(Linux/macOS)下。例如:
# ✅ 正确:可被访问 C:\xampp\htdocs\test.php → http://localhost/test.php # ❌ 错误:返回 404(即使文件真实存在) C:\xampp\test.php C:\Users\John\projects\app\index.php D:\myweb\login.php
? 提示:可通过 Apache 配置文件 httpd.conf 确认根目录设置:
DocumentRoot "C:/xampp/htdocs" <Directory "C:/xampp/htdocs"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
✅ 检查 URL 路径与大小写、扩展名是否严格匹配
Apache 在类 Unix 系统(含 XAMPP for Linux/macOS)中区分大小写;Windows 版虽不区分大小写,但仍建议统一使用小写命名。同时确保:
- URL 中无多余斜杠(如 http://localhost//test.php);
- 文件扩展名正确(.php 而非 .PHP 或 .php5);
- 浏览器地址栏输入的是 http://localhost/xxx.php,不是本地文件路径(如 file:///C:/xampp/htdocs/test.php)。
✅ 验证 Apache 是否真正监听 80 端口且无冲突
运行以下命令检查端口占用情况(Windows):
netstat -ano | findstr :80
若发现 PID 对应非 httpd.exe(如 Skype、IIS、Nginx 或其他程序),需关闭冲突服务,或在 C:\xampp\apache\conf\httpd.conf 中修改监听端口:
Listen 8080 ServerName localhost:8080
随后访问 http://localhost:8080/test.php。
⚠️ 不推荐直接重装——先尝试轻量级修复
虽然答案中提到“卸载重装后解决”,但这属于终极兜底方案,会丢失自定义配置(如虚拟主机、SSL 设置、PHP 扩展启用状态等)。建议按顺序执行以下诊断步骤:
- 重启 Apache 服务(XAMPP Control Panel → Stop → Start);
- 确认 htdocs 下存在测试文件(如新建 info.php,内容为 <?php phpinfo(); ?>);
- 检查 Apache 错误日志:C:\xampp\apache\logs\error.log,搜索关键词 File does not exist 或 client denied;
- 临时禁用防病毒软件/防火墙(部分安全软件会拦截 localhost 请求);
- 验证 httpd.conf 中 LoadModule php_module 和 AddHandler 配置未被注释(确保 PHP 模块已加载)。
✅ 示例:快速验证环境是否正常
在 C:\xampp\htdocs\ 下创建 hello.php:
<!DOCTYPE html>
<html>
<head><title>Hello XAMPP</title></head>
<body>
<h1><?php echo "✅ PHP is working on " . $_SERVER['SERVER_SOFTWARE']; ?></h1>
<p>Current time: <?php echo date('Y-m-d H:i:s'); ?></p>
</body>
</html>保存后访问 http://localhost/hello.php —— 若仍 404,请立即检查上述路径与权限项。
? 总结
“Object not found” 是典型的 客户端请求路径错误,而非 PHP 或 MySQL 故障。95% 的案例源于:
- 文件未置于 htdocs 目录内;
- URL 输入错误(协议、端口、路径拼写);
- Apache 未正确加载或端口被占。
重装 XAMPP 应作为最后手段。优先通过日志分析 + 路径校验 + 端口排查定位问题,既能高效恢复服务,也能积累 Web 服务器运维基础能力。










