今天帮一朋友部署一网站。成品的ecshop模版站。在搭建好xammp集成环境,导入数据库,修改配置文件后,报了一大堆错。
其中第一个是关于废弃preg_replace中/e这种用法的,因为存在漏洞,一句话木马喜欢用这个。于是我按提示替换成了preg_replace_callback之后,保存,结果还是一样,php文件更新无效。昨天刚解决过类似问题,问题的根源在于opcache,于是也照猫画虎去修改了php.ini的opcache,这个xammp是没开启。
找到php.ini文件(我的在/usr/local/php/etc目录下),查看opcache是否启用,把选项opcache.enable前的分号去掉,那么将关闭opcache性能加速功能。这个方法不管用。
[Zend Opcache] zend_extension=opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1 ;
opcache end ;
xcache ;
xcache end
改了不管用。不过昨天是linux环境,今天是windows环境,以上的配置也是针对linux环境的。
刚试了下更改ecshop的缓存配置,妈蛋,生效了。搞半天是程序问题。不是php也不是apache的问题。晕菜。摘录如下:
最近做ecshop的二次开发,代码中有错误,但是系统却又没报错信息,直接扔给我们一个空白页面,这种情况下,我们就需要开启ecshop的调试模式。开启ecshop的调试模式,对于ecshop二次开发人员特别重要,下面是设置ecshop的调试模式。
操作如下:
打开“/data/config.php”,添加一下代码:
define(
'DEBUG_MODE'
, 0);
参数说明:
0 // 禁用调试模式
1 // 显示所有错误
2 // 禁用smarty缓存
4 // 使用include/lib.debug.php文件
8 // 记录查询的SQL“includes/cls_mysql.php query()”到“data/mysql_query_hash_Y_M_D.log”。
例子:
1、define(‘DEBUG_MODE’, 3); // 3=1+2,显示错误、禁用ECShop缓存
2、define(‘DEBUG_MODE’, 7); // 7=1+2+3,显示错误、禁用ECShop缓存、调用lib.debug.php
改成define(‘DEBUG_MODE’, 7); 好了。