Ecshop安装的坑,建议不要使用!
最近因为工作的需要,安装了下ecshop,这个曾经的火爆开源程序,现在也呈现出疲态。
1、请看官方的运行环境推荐:
服务器端运行环境推荐
·php版本5.0以上5.3以下的版本(推荐使用5.2系列版本)
·Mysql版本5.0及以上
·空间安装zend
·空间支持文件锁功能
·开启GD功能
·Mysql函数支持mbstring、iconv、fsockopen
看见了吧,PHP5.3以下的版本,还推荐使用5.2的,尼妹的,现在哪个虚拟机还敢用5.3以下的版本?还在用5.3以下的版本?看看tiandi用的2两个主机,衡天的和wopus的都是5.3.28,至于为什么不用5.3以下的版本,自己google”php内存泄露”。
Ecshop上个月刚更新了最新版本,写代码的思路依旧坚挺,仍旧使用5.2版本,好吧,为了做一些测试,需要在本机上进行调试,但本机上装了wp3.9,忘了从哪个版本开始wp只支持5.3以上的php,所以本机的PHP环境是5.4.13。起先,做了两个批处理来切换php5.2.1和php5.4.13,然后发觉一直用批处理切换也累啊,索性直接5.4.13上跑ecshop看看哪里有问题就改哪里吧,结果泥煤的首页直接来个错误。
Strict Standards: Only variables should be passed by reference in D:\tiandiyoyo\hengtian\ecshop\upload\includes\cls_template.php on line 424
不淡定了,打开cls_template.php,定位到424行,发现下面内容:
| 代码如下 | 复制代码 |
|
$tag_sel = array_shift(explode(' ', $tag)); |
|
将其注释掉,分别拆开,添加两行
| 代码如下 | 复制代码 |
|
$tag_tmp = (explode(' ', $tag)); |
|
原因在于PHP5.3版本开始,array_shift不支持函数返回,记得之前博客里好像还有个帖子专门说了php5.3版本的改变,刚搜索没找到
以上是复制其他大神的作品,这里呢再添加一点我自己的东西,我使用的是PHP5.5进行安装,首先遇到的问题就是版本的问题导致的函数不兼容,我是菜鸟,在做好了这几个之后突然发现,PHP5.3以下有一个叫做内存泄漏的问题,就是在PHP5.3版本之前,内存管理用的是引用计数。当两个或者多个变量互相应用成环状时,便会出现内存泄露。5.3以后改进了内存管理的算法,会好很多。
所谓内存泄漏是指进称在执行过程中,内存的占有率逐步升高,不释放, 系统所拥有的可用内存越来越少的现象。
php-fpm耗光内存,不释放,就是所谓的内存泄漏,内存泄漏对长期运行的程序有威胁,所以应该定期重启进程,例如php-fpm里面有个配置,max-request,就是控制fast-cgi进程处理多少个请求后重启,这样系统可用释放内存,但是如果内存占用率增长速度非常快,频繁重启进程,就会影响服务的稳定性,所以这个问题必须正面解决。
后来,我才发现其实不需要去修改php的源代码,php.ini配置文件里面有两个配置项: auto_append_file,auto_prepend_file,可以在请求前后注入代码 ....
真是悲剧
web程序做性能优化也是这个思路,但是要简单很多,无需写代码,在nginx log里面加上$request_time ,用awk/sort 处理一下就可以找出瓶颈。
可能有很多的读者碰到过类似下面的错误吧:
Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)
这个错误的信息很明确,PHP已经达到了允许使用的最大内存了,通常上来说这很有可能是我们的程序编写的有些问题。比如:一次性读取超大的文件到内存中,或者出现超大的数组,或者在大循环中的没有及时是放掉不再使用的变量,这些都有可能会造成内存占用过大而被终止。
PHP默认的最大内存使用大小是32M, 如果你真的需要使用超过32M的内存可以修改php.ini配置文件的如下配置:
memory_limit = 32M
如果你无法修改php配置文件,如果你的PHP环境没有禁用ini_set()函数,也可以动态的修改最大的内存占用大小:
<?php
ini_set("memory_limit", "128M");
既然我们能动态的调整最大的内存占用,那我们是否有办法获取目前的内存占用情况呢?答案是肯定的。
- memory_get_usage(),这个函数的作用是获取目前PHP脚本所用的内存大小。
- memory_get_peak_usage(),这个函数的作用返回当前脚本到目前位置所占用的内存峰值,这样就可能获取到目前的脚本的内存需求情况。
Ecshop安装的坑,建议不要使用!的更多相关文章
- ECshop安装及报错解决方案总结
一.安装ECshop ECShop是一款B2C独立网店系统 ,适合企业及个人快速构建个性化网上商店.系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序.2006年3月推出以来1.0版以来, ...
- ECSHOP安装或使用中提示Strict Standards: Non-static method cls_image:
随着ECSHOP的不断发展,越来越多的人成为了ECSHOP的忠实粉丝.由于每个人的服务器环境和配置都不完全相同,所以ECSHOP也接二连三的爆出了各种各样的错误信息.相信不少新手朋友在ECSHOP安装 ...
- ECShop安装实录
版本: ecmoban_V2.7.3_UTF8_20150623 来源: 官网 一. 给 C:\Windows\temp目录增加 IIS_Users 完全权限. 二. 安装报错: Warning: d ...
- Android Studio安装踩坑
title: Android Studio安装踩坑 date: 2018-09-07 19:31:32 updated: tags: [Android,Android Studio,坑] descri ...
- ECShop安装问题
Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG 在安装Ecshop的时候,遇到两个问题: 1.Strict Standards: Non-static ...
- MATLAB 2016b + CUDA10.1 +MatConvNet beta25 安装踩坑记
最近因为目标跟踪实验需要得安装MatConvNet,由于已经是2019年了大家的软件版本肯定不可能是像官网要求的那样,所以安装自然而然就会碰到很多问题.在这一过程中我参考了网上很多博主的经验,有些确实 ...
- django_celery_results安装的坑
前言 在Celery4.0之前的版本中,有一个专门供Django使用的Celery版本django-celery.但现在Celery已经统一为一个版本,所以直接安装原生的Celery即可.这里就暂时 ...
- windows环境下Kubernetes及Docker安装(那些坑)
k8s 和 Docker容器技术,当前非常流行的技术. 让人日狗的是, 这套技术栈对CN的donet 程序员不怎么友好.娓娓道来,1. 好多镜像都是需要梯子才能访问: 2. window程序员天生 ...
- Ecshop 安装
参考 http://www.68ecshop.com/article-617.html ecshop的安装第一步:下载ecshop网店系统正式版安装包 我们可以来ecshop开发中心的官网(www.6 ...
随机推荐
- PHP登入网站抓取并且抓取数据
有时候需要登入网站,然后去抓取一些有用的信息,人工做的话,太累了.有的人可以很快的做到登入,但是需要在登入后再去访问其他页面始终都访问不了,因为他们没有带Cookie进去而被当做是两次会话.下面看看代 ...
- C# 中如何将List<string>里的集合转换成字符串并按指定的字符进行分隔?
代码: using System; using System.Collections.Generic; publicclassMyClass { publicstaticvoidMain() { Li ...
- SCP远程拷贝命令
利用scp指令可以在linux机器间传递文件,个人使用几次感觉效率还是较高的,比SFTP+本地做媒介要高得多. 1.本地拷贝到远程. 这种方式的命令模式是scp local_file remote_u ...
- 无需编码开发快速设计互动式UI - uilang
uilang是一个非常小巧的ui类库,可以帮助不熟悉前端代码的web设计人员快速的开发互动式UI.你只需要使用“语义式”的说明来控制元素的动态效果. 开发中你只需要在<code>标签内部输 ...
- Jquery 选择器,分不清啊
Jquery 选择器 Id选择器 Class选择器 总是记不清啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!
- Linux 监测 常用测试工具
fio [global]bs=16kdirect=1rw=readioengine=libaioiodepth=6write_bw_logruntime=60[test]filename=/data/ ...
- ant design pro (十三)advanced 错误处理
一.概述 原文地址:https://pro.ant.design/docs/error-cn 二.详细 2.1.页面级报错 2.1.1.应用场景 路由直接引导到报错页面,比如你输入的网址没有匹配到任何 ...
- 【转帖】Dubbo:来自于阿里巴巴的分布式服务框架
http://www.biaodianfu.com/dubbo.html Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被 ...
- apache绑定多个域名
在httpd.conf里, 1.把#NameVirtualHost *:80前的注释去掉2.ServerName 127.0.0.1 修改成ServerName 72.167.11.303.#Name ...
- ie6 javascript:void(0);
遇到过几次这种问题,现在总结一下. 代码: <a onclick="window.location.href='http://www.google.com'" href=&q ...