ecshop安装过程中的问题:cls_image::gd_version();不支持JPEG;Deprecated: preg_replace();Strict Standards;

在安装Ecshop的时候,遇到好多好多问题:

  1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\X\www\ecshop\install\includes\lib_installer.php on line 31

  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:

  1)将function gd_version()改成static function gd_version()即可。

  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:

$p = new cls_image();
return $p->gd_version();

  2.检测环境的时候提示:是否支持 JPEG是不支持的。

  解决:查看发现有libjpeg.lib库,GD2库也有,都加载了,也都正常。查看ecshop源代码发现install/includes/lib_installer.php中第100行,JPEG写成了JPG,正确的应该是:

$jpeg_enabled = ($gd_info[‘JPEG Support‘]        === true) ? $_LANG[‘support‘] : $_LANG[‘not_support‘];

  为何说Ecshop写错了,因为我打印数组$gd_info的时候,里面的键名是:JPEG Support。而$gd_info数组里的值都是直接调用系统环境变量的。

  3.默认时区问题:Warning: date_default_timezone_get(): It is not safe to rely on the system‘s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC‘ for now, but please set date.timezone to select your timezone. in D:\X\www\ecshop\install\includes\lib_installer.php on line 225

  解决:方法1,将php.ini里是date.timezone前的";"去掉,改成:date.timezone = PRC;

  方法2,在页头使用 ini_set(‘date.timezone‘,‘Asia/Shanghai‘);

  方法3,在页头使用date_default_timezone_set()设置 date_default_timezone_set(‘PRC‘); //东八时区 echo date(‘Y-m-d H:i:s‘);

  4.Deprecated: preg_replace()错误。

  安装完成后访问首页出现错误:Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in.......

  (1)错误原因:
  preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了。
  如果你的PHP版本恰好是PHP5.5.X,那你的ECSHOP肯定就会报类似下面这样的错误:
  Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in......

  (2)解决办法:
  其实从刚才的错误提示信息中我们也能看出一二,它提示我们使用 preg_replace_callback 来代替 preg_replace。
  所以解决方法如下:

  打开文件 includes/cls_template.php ,找到

  return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select(‘\\1‘);", $source);
  替换为

  return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);
  问题解决。

  (3)、如果你的ECSHOP中其他文件也报类似的 preg_replace错误,请参照上面方法解决之,解决思路和解决方法是一样的。

  5.Strict Standards: Only variables should be passed by reference

  错误来源: 

    找到代码includes/cls_template.php,424行

    $tag_sel = array_shift(explode(‘ ‘, $tag));

  错误原因:PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值传递,所以这段代码中的explode就得移出来重新赋值

  解决办法:替换为

    $tagArr = explode(‘ ‘, $tag);

    $tag_sel = array_shift($tagArr);

    顶部的报错没掉了,左侧和底部的报错还需要去ecshop的后台点击清除缓存才能去除。

时间: 2024-08-08 02:47:35

ecshop安装过程中的问题:cls_image::gd_version();不支持JPEG;Deprecated: preg_replace();Strict Standards;的相关文章

Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG

在安装Ecshop的时候,遇到两个问题: 1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\X\www\ecshop\install\includes\lib_installer.php on line 31 解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_v

SQL安装过程中“针对SQL Server 注册表的一致性验证“出错解决方式

1.打开注册表,查找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\0804],分别打开Counter 和Help 2.打开Counter,把滚动条拉倒最后,然后记下最大的那个值(不同计算机不一样的),记下后关闭窗口 3.同样的打开Help,滚动到最后记最大的那个值(你们的值不一定跟我一样的哦!!!),记下后关闭窗口 4,再重新定位到Perflib的节点上, 5.双击Last Counter然后在

20170514002Oracle 11g R2安装过程中遇到的报错及解决办法

Oracle 11g R2安装过程中遇到的报错及解决办法 1.提示Check if the DISPLAYvariable is set.    Failed<<<< 解决方案: #xhost +  //切换到root用户输入 #su – Oracle  //切换到oracle用户 $./runInstaller  //执行安装程序 xhost 是用来控制X server访问权限的. 通常当你从hostA登陆到hostB上运行hostB上的应用程序时, 做为应用程序来说,hostA

Oracle RAC安装过程中碰到的“坑”和关键点(二)

(1) 依赖包的安装 Linux下安装Oracle,除了系统配置参数,我觉得依赖包的安装是另一个比较琐碎的操作. 本次安装碰到了几个包的问题: (a) rpm -Uvh gcc-4*提示: 02. error: Failed dependencies: 03.    cloog-ppl >= 0.15 is needed by gcc-4.4.7-4.el6.x86_64 04.    cpp = 4.4.7-4.el6 is needed by gcc-4.4.7-4.el6.x86_64 不

Slackware安装过程中遇到的问题

在此记录Slackware安装过程中遇到的问题以及一些杂项.... 1.关于grub安装:如果在安装过程中未安装lilo,可在退出setup,但在重启之前安装grub. chroot /mnt grub-install /dev/sda grub-mkconfig -o /boot/grub/grub.cfg 2.安装后引导出现kernel panic no syncing:vfs unable to mount root fs on... 解决方法:首先chroot from cd(下文提到如

Debian7.6安装过程中遇到的问题

一 sudo命令不能用 1 使用su切换到root用户,命令: su 2 使用名:vim /etc/sudoers添加sudoer用户,命令: vim /etc/sudoers 找到root=(ALL:ALL)ALL,在下面添加: %你的用户名=(ALL)ALL 如果不想输入密码,可如下书写: %你的用户名 ALL=(ALL) NOPASSWD: ALL 二 中文系统切换为英文系统 1 获得root权限,编辑local文件,命令: vim /etc/default/local 2 把已经存在的内

Office 2010 安装过程中出错

今天在安装office2010 的时候一直提示:"安装过程中失败",具体错误信息如下图: 注册表也按照网上的进行了删除,也用微软的清理工具清理过了,杀毒软件也关闭了,Windows Install服务业特意开启了,但还是失败. office卸载工具下载地址:http://download.csdn.net/detail/xunzaosiyecao/7289875 解决方法: 安装的时候,不安装共享和工具就可以成功了. 小注: 安装成功后,如果后面的使用中用到了共享与office工具,在

GODADDY SSL 证书安装过程中的问题

GODADDY 证书安装过程中的问题 1.  注册账号 2.  申请证书 3.  进入SSL 证书  选择"管理" 打开后 可以根据自己的需求下载相应的证书 4.  我这里下载的Nginx的,一个是证书,另一个gd_bundle-g2-g1.crt下载完后上传到WEB服务器上然后配置nginx 如下: listen       443 ssl; server_name  youdomain; ssl                                     on; ssl

MySQL5.7 安装过程中出现 attempting to start service 过不去

MySQL5.7 安装过程中出现 attempting to start service 过不去. 1,机制打开服务,把MySql服务名启动(我的是MySqlAliyun) 启动失败:提示1067错误. 2,在mysql安装目录(C:\Program Files\MySQL\MySQL Server 5.7)下把my-default.ini复制为my.ini 在my.ini取消basedir和datadir的注释: #设置basedir指向mysql的安装路径 basedir= C:\Progr