别人的网站跑的非常好,自己的站点确出现莫名奇怪的问题,请按照以下方式查找问题。
后台安装插件后出现500错误,是否安装 OPcache 文件缓存,如果有安装,请等待2分钟失效,然后收到删除 tmp 目录里的文件,注意是 tmp 目录里面的文件,不是删除目录。2分钟后仍然500错误,请按照下面的方式进行排查。
常见的问题:
1. FTP 文件上传半截文件,导致 500 内部错误。解决方法便是重新下载压缩包,解压后上传覆盖。如果是全新安装出现错误,主程序可能文件不完整。如果运行一直没问题,安装某插件后出现问题,可以确定是插件问题。
禁止所有的插件,conf/conf.php 使用支持utf-8的编辑器修改
'disabled_plugin' => 0, // 0 修改为1 保存覆盖,如果有安装OPcache,需要重启服务器或等待2分钟缓存过期
然后后台或手动清空tmp目录里的文件,是tmp目录里面的文件。此时如果打开正常,说明是插件引起的问题,那么进入后台插件中心,逐个禁用安装的插件,然后在此修改conf/conf.php
'disabled_plugin' => 1, // 1 修改为0 保存覆盖,如果有安装OPcache,需要重启服务器或等待2分钟缓存过期
逐个启用插件排查,找到问题插件。解决问题插件,(1)重新下载插件,进行覆盖;(2)咨询插件开发者或自行解决。
2. 目录权限不可写 conf、upload、tmp、plugin、view/template 需要可写权限(Windows 需要 everyone 用户可读写,Linux chmod 777)。
3. PHP 运行环境没配置正确。
4. 更新代码后,缓存没清理。
各种缓存的清理方法:
浏览器缓存清理方法:CTRL+F5。
CDN 缓存清理方法:登录 CDN 管理界面,刷新缓存。
删除 tmp 目录下所有文件(保留 tmp 目录!)。
错误排查:
1. 打开 php.ini 的 display_errors=On;并且重启相关进程,使之生效。
2. 查看日志文件 log/日期/php_error.php sms_error.php 这类有错误提示的文件。
如果没有,按照下面的步骤修改源代码,让错误暴漏出来:
3. 修改文件: index.php,将 DEBUG 的值修改为 2
!defined('DEBUG') AND define('DEBUG', 2);
4. 查看报错的信息,根据信息来判断错误到底处在哪里。
如果无法确定,请将报错信息贴到讨论区。
5. 查看错误日志:log/{日期}/phperror.php dberror.php
6. 排查完,将 DEBUG 改回 0
7. 如果 DEBUG 为 2 的时候没有错误,改为 0 出错。则修改 xiunophp/xiunophp.min.php 文件
18 行左右,将 error_reporting() 的参数中的 0 改为 E_ALL
error_reporting(DEBUG ? E_ALL : E_ALL);
8. 排查完,改回去。