
WordPress迁移后wp-login.php页面显示原始PHP代码而非登录表单,根本原因是服务器未正确识别并执行PHP文件——PHP解析在>(即>的HTML实体)处中断,表明PHP引擎未启用或MIME类型配置错误。
wordpress迁移后`wp-login.php`页面显示原始php代码而非登录表单,根本原因是服务器未正确识别并执行php文件——php解析在`>`(即`>`的html实体)处中断,表明php引擎未启用或mime类型配置错误。
该问题并非PHP语法或WordPress代码缺陷,而是Web服务器(Apache)的PHP处理器绑定配置失效所致。从截图和用户反馈可见:PHP代码在遇到HTML实体>时戛然而止,紧接着输出的是PHP注释与函数定义原文——这明确说明:.php文件未被PHP模块解析,而是被当作纯文本(text/plain)或静态HTML直接返回给浏览器。
? 根本原因:.htaccess中PHP处理器声明被注释或冲突
用户自查发现,取消注释以下.htaccess片段即可恢复功能:
<IfModule mime_module>
AddHandler application/x-httpd-ea-php73 .php .php7 .phtml
</IfModule>这段配置的作用是:显式告知Apache,所有以.php、.php7、.phtml结尾的文件,应交由EA-PHP 7.3(cPanel环境下的多PHP版本管理模块)解析执行。当它被注释后,Apache失去对PHP文件的处理指令,退回到默认行为——可能将.php视为普通文本,或交由不兼容的旧版处理器(如application/x-httpd-php),甚至完全忽略PHP解析。
⚠️ 注意:application/x-httpd-ea-php73 是cPanel/CloudLinux共享主机特有的MIME handler标识符,不同于标准的application/x-httpd-php。若服务器使用其他PHP管理方案(如PHP-FPM + mod_proxy_fcgi),此配置反而会导致500错误。
html-to-pptx-converter下载使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
立即学习“PHP免费学习笔记(深入)”;
✅ 正确修复步骤(按优先级)
确认PHP是否启用
创建 info.php 文件,内容为 <?php phpinfo(); ?>,访问 https://yoursite.com/info.php。若显示空白页或源码,则PHP未启用;若正常显示信息页,继续下一步。-
检查并启用正确的.htaccess Handler
在WordPress根目录的.htaccess中,确保包含且未被注释以下适配当前PHP版本的配置(以PHP 7.3为例):<IfModule mime_module> # ✅ 针对cPanel/EA-PHP环境(推荐) AddHandler application/x-httpd-ea-php73 .php # ✅ 或针对传统mod_php(如Apache+libphp) # AddHandler application/x-httpd-php .php </IfModule>? 提示:可通过cPanel → “MultiPHP Manager” 查看当前域名所选PHP版本,并严格匹配handler名称(如ea-php81、ea-php82)。
-
禁用可能导致冲突的旧规则
删除或注释掉过时的PHP handler声明,例如:# ❌ 过时且易冲突(尤其在EA-PHP环境下) # AddType application/x-httpd-php .php # AddHandler x-httpd-php .php
-
验证Apache重写与PHP模块加载状态
确保Apache已加载必要模块:# 检查是否启用 rewrite 和 mime 模块 apachectl -M | grep -E "(rewrite|mimemod|mime)" # 输出应含:rewrite_module, mime_module
终极验证:绕过.htaccess直测PHP执行
临时重命名 .htaccess 为 .htaccess.bak,再访问 wp-login.php。若此时正常渲染,即可100%确认是.htaccess配置问题。
? 重要安全提醒
- 切勿在生产环境长期保留 phpinfo() 页面,验证后请立即删除;
- .htaccess 中的 AddHandler 必须与服务器实际部署的PHP运行模式(CGI/FastCGI/DSO)严格一致,否则将引发500错误或解析失败;
- 若使用Nginx,.htaccess 完全无效,需在server块中配置:
location ~ \.php$ { fastcgi_pass unix:/var/opt/cpanel/php-fpm/yourdomain.sock; fastcgi_index index.php; include fastcgi_params; }
通过精准匹配PHP handler与服务器环境,即可彻底解决“PHP代码在>处停止解析”的表象问题——其本质,永远是Web服务器与PHP引擎之间的握手失败,而非代码本身。



















