其实不管是opencart,还是其他程序,错误500很大程度是代码有问题导致,为啥不报错呢?因为错误提示被关闭或者错误提示等级的设置问题。下面提供几个方案。
【其实这个文章不是解决500,而是让500的页面展示错误原因。然后根据错误解决。】
商店设置
商店设置的话,登陆admin后台,在:系统设置-->商店设置-->默认商店-->服务器这个TAB下。拉到最后面,就有对应的设置开启选项。开启即可。不过有时候开启了也是500哦。
服务器配置
这样的话就要修改php.ini,注意不是opencart根目录下的php.ini而是服务器环境的php.ini哦。如果是虚拟主机,提交服务单联系服务商修改。如果是VPS或者独立服务器,自己找到配置环境的php.ini打开修改。
不同环境文件所在路径不一样,win的一般情况在c:/windows/ 下面。
wamp在:!:\wamp\bin\php\phpxxx\php.ini
linux也各有不同,下面举例linux+lnmp
- # lnmp举例
- vi /usr/local/php/etc/php.ini
- # 按下 / 搜索 display_error 找到它
- /display_error
- # 如果是off,把off 改为 on
- # 如果搜索不到,自己添加一行
- display_error = On
- # 不熟悉SSH的看我以前的文章或者FTP下载修改。
- # 按下 inset 编辑,按下esc 退出编辑,按下 / 继续搜索
- /error_reporting
- # 后面改为 E_ALL | E_STRICT
- error_reporting = E_ALL | E_STRICT
修改后按下ESC退出编辑,按下shift+Q,然后输入wq回车退出。
然后重启环境。比如 lnmp restart
截图:(截图的d没截到)
PHP代码
修改opencart的index.php 如果是后台就修改admin下的index.php,在 <?php 表情下面加如下代码即可在页面或者审核里输出错误日志。
- error_reporting(E_ALL); //E_ALL
- function cache_shutdown_error() {
- $_error = error_get_last();
- if ($_error && in_array($_error['type'], array(1, 4, 16, 64, 256, 4096, E_ALL))) {
- echo '<font color=red>你的代码出错了:</font></br>';
- echo '致命错误:' . $_error['message'] . '</br>';
- echo '文件:' . $_error['file'] . '</br>';
- echo '在第' . $_error['line'] . '行</br>';
- }
- }
- register_shutdown_function("cache_shutdown_error");
PHP这个代码来源朋友提供。
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助