导读:本期聚焦于小伙伴创作的《PHP 404错误排查:新PHP页面无法访问的常见原因与解决方案》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《PHP 404错误排查:新PHP页面无法访问的常见原因与解决方案》有用,将其分享出去将是对创作者最好的鼓励。

在PHP项目开发过程中,新增的PHP页面突然出现404错误是比较常见的场景,这类错误意味着服务器无法找到请求对应的资源,需要从多个维度逐一排查问题根源。

PHP 404错误排查:新PHP页面无法访问的常见原因与解决方案

一、文件路径与访问URL不匹配

这是最基础的排查方向,很多时候404错误是因为访问的URL和PHP文件实际存放路径不对应导致的。

1. 确认文件实际存放位置

首先要明确Web服务器的根目录配置,比如Apache默认根目录是htdocs,Nginx默认根目录是html,新增的PHP文件需要放在根目录对应的子目录下。假设服务器根目录是/var/www/html,你新增的文件是test.php,那么文件完整路径应该是/var/www/html/test.php

2. 核对访问URL格式

访问URL需要和文件路径对应,比如文件放在/var/www/html/admin/test.php,那么正确的访问地址应该是http://你的域名/admin/test.php,如果少写了admin目录层级,就会触发404错误。

二、Web服务器配置问题

如果文件路径和URL都正确,就需要检查Web服务器的相关配置,不同服务器的排查点略有区别。

1. Apache服务器排查

首先检查httpd.conf或者虚拟主机配置中,DocumentRoot是否指向了正确的项目根目录,同时确认Directory配置中允许访问该目录,配置示例如下:

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

另外要确认Apache已经加载了PHP模块,配置中需要有类似LoadModule php_module modules/libphp.so的加载语句,否则服务器无法解析PHP文件,可能会把PHP文件当成静态文件处理,找不到对应解析规则也会返回404。

2. Nginx服务器排查

Nginx需要确认root指令指向的根目录正确,同时location块中配置了PHP解析规则,正确的配置示例如下:

server {
    listen 80;
    server_name localhost;
    root /var/www/html;
    index index.php index.html;

    location ~ .php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

如果fastcgi_param SCRIPT_FILENAME配置错误,比如没有拼接$document_root,就会导致服务器找不到对应的PHP文件,返回404错误。

三、伪静态规则冲突

很多PHP项目会配置伪静态规则,比如使用ThinkPHP、Laravel等框架时,会通过.htaccess(Apache)或者伪静态配置(Nginx)重写URL,如果规则配置不当,会导致新的PHP页面被错误重写,触发404。

比如Apache的.htaccess中如果有如下规则:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

如果新增的PHP页面路径没有被排除,就会被重写到index.php处理,如果框架路由中没有对应规则,就会返回404。此时可以在规则中添加排除项,比如排除test.php的重写:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/test.php$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

四、文件权限不足

Linux系统下,PHP文件的权限如果设置不当,也会导致服务器无法读取文件,返回404错误。一般PHP文件需要设置可读权限,建议权限设置为644,目录权限设置为755。

可以通过如下命令修改权限:

# 修改单个PHP文件权限
chmod 644 /var/www/html/test.php
# 递归修改目录及子文件权限
chmod -R 755 /var/www/html

同时要注意文件的所有者,需要和Web服务器运行用户一致,比如Apache的运行用户是www-data,那么文件所有者最好也设置为www-data,修改命令如下:

chown -R www-data:www-data /var/www/html

五、其他少见原因

  • 文件名拼写错误:比如把test.php写成了tesp.php,或者大小写错误,Linux系统下文件名是大小写敏感的,Test.phptest.php是两个不同的文件。
  • PHP服务未正常运行:如果PHP-FPM没有启动,Nginx无法解析PHP文件,也会返回404,可以通过systemctl status php-fpm检查服务状态。
  • 域名解析问题:如果访问用的是域名,确认域名已经正确解析到服务器IP,避免因为解析未生效导致访问到错误的服务器,返回404。

按照以上步骤逐一排查,基本可以快速定位新PHP页面出现404错误的原因,针对性解决即可恢复页面正常访问。

PHP404错误页面无法访问Web服务器配置修改时间:2026-07-06 03:18:24

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。