在ubuntu16.04上配置ecshop系统的惨痛经历

本文详细介绍了在Ubuntu 16.04上安装ecshop网上购物系统的步骤,包括配置Apache2、PHP5.6和MySQL,以及解决安装过程中遇到的各种问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

ecshop是一套网上购物系统,类似于淘宝,非商业版开源免费,可以供学习使用,在这里我们用它当作压力测试的目标。

但就我个人体验来说,并不太好,我也不太清楚是不是因为我安装的ecshop不是最新版的缘故(我安装的是imooc上提供的链接 如下),各种错误。

pan.baidu.com/s/1dDAJvZN

现在先写一些这两天我安装时遇到的一些问题吧。

准备Linux(我选的是ubuntu16.04)

服务器可以有两种选择,1:虚拟机,2:腾讯云啊阿里云啊随便租一个

ssh 远程登录什么的我就不多说了,假设大家不会卡在这里。

首先我们配置一个web服务器,包括apache2、php5.6、mysql。

注意,这里的php不能是7.0,否则安装ecshop到最后一步你会发现,这个东西不支持在php7.0下访问mysql。这个我也试图解决,有人贴出了一个githup上ecshop的补丁,但我点进去时已经404了。也有博客园的dalao特别野,自己生生把那些接口都改了。。表示一波尊敬。。

下边进行各种包的安装。

sudo apt install apache2 git vim mysql-server mysql-client

sudo apt-get install -y language-pack-en-base
sudo LC_ALL=en_US.UTF-8add-apt-repository ppa:ondrej/php
sudo apt-add-repositoryppa:ondrej/php
sudo apt upgrade

sudo aptinstall php5.6-common php5.6-gd php5.6-mysql 
sudo apt install libapache2-mod-php5.6

(中间那一大堆是apt的换源操作,我本人事成功了的,如果有什么地方不行,也可自行百度ubuntu16.04安装php5)

这样基本的安装就结束了,详细的配置待会再说。

详细配置(默认会vim的使用)

  • 现在需要你把ecshop.zip这个文件传到服务器,在mac上直接用scp命令就行了
    scp /Download/Ecshop.zip ubuntu@你服务器的地址

  • 然后在服务端解压
    uzip Ecshop.zip

  • 将其中的upload文件改名放到~下。(你的文件夹可能不是这个名字,类似操作就好)
    mv Ecshop/upload ~/ecshop

  • 然后进到apache2的配置文件的所在地:cd /etc/apache2中
    sudo vim apache2.conf

  • 大概在150行左右,在标签中,all denied 改成all granted,防止外部无法访问到。(:wp)

  • 然后接着在这个目录下(/etc/apache2)
    sudo vim sites-enabled/000-default.conf

  • 我们可以修改监听的端口,但我没有改。主要需要改的是DocumentRoot这个属性,我们需要把这个地方改成之前cshop的地址(注意最后不要加/)
    DocumentRoot /home/ubuntu/ecshop

  • 然后启动服务
    service apache2 restart

  • 访问网站,我们可以看到大概的雏形了

漫长的改bug之旅

1) 上来就是错。

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP;
ECS has a deprecated constructor in ~/cshop/includes/cls_ecshop.php on line 25



这也是一个版本的问题。。把同名的构造函数改成__constructor就OK了。

class foo{
    foo(){   
    }
}

class foo{
    __construct(){
    }
}

2) 点击下一步,到达检查环境,报错。方法不是静态的。

Deprecated: Non-static method cls_image::gd_version() should not be called statically in ~/csshop/install/includes/lib_installer.php on line 31
//操作:
vim ~/ecshop/includes/cls_image.php
//把gd::_version()这个函数前加个static就行了,改成这样:
//static function gd::_version()

3) 我们发现很多不支持,首先看看mysql,支持,那么就省了很大一部分事。gd是php的一个库,大概是显示图片的。如果你之前按照我的命令执行的话,那么应该是装上了php5.6-gd,如果这里显示不支持,那就是因为php.ini文件中没有打开的缘故了。首先我们需要找到php.ini这个配置文件:

  1. 在~/ecshop下新建一个xx.php文件,里边这么写:
    <?php
    phpinfo();
    ?>
  2. 去访问你这个文件,用apache2解释它,你会看到如下图的信息,从里边找到地址。
    php.ini
    然后我们去修改php.ini这个文件,找到下边这一行,去掉行首的分号
    extension=php_gd2.all
    重启apache2
    service apache2 restart

  3. 此时你应该看到支持gif、png等,但是jpeg还是不支持,但其实锅在ecshop的代码,我们到这里改代码:
    vim install/includes/lib_installer.php
    其中在100行左右的这句话,他把 gd_info[‘JPEG Support’] $ 写成 gd_info[‘JPG Support’],刷新,解决问题。

4) 很多文件的权限不支持的问题,赋予权限就行了。
sudo chmod -R 777 ~/ecshop
注意是R,不是r。这里有点想要吐槽的,因为我的基本功还有些欠缺吧,我在百度解决这个问题的时候,看到有人说是r,我也没仔细想就去试了,但是老是报错。。(哭)

5)到这里第二步就差不多了,目前应该就不报错了,点击下一步,配置。然后瞬间又报错了。大概如这样:
这里写图片描述
然后一样的去改第300行,把上边这行改成下边这样。

//return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);
return preg_replace_callback("/{([^\}\{\n]*)}/",function($r){ return $this->select($r[1]);},$source);



然后是422这行的错。这里说的是不能用函数的返回值来当作变量使用。
改成这样就好:
$tttt = explode(' ',$tag);
$tag_sel = array_shift($tttt);

6)应该没啥大问题了吧。。哭

效果:
这里写图片描述

前言 3 一、商圈和地区进行关联 4 二、其他页面显示购买记录的函数 5 三、多货币解决方案 6 四、仿淘宝商品详细页实现尺码颜色关联显示库存 12 五、仿淘宝商品详细页加入购物车效果 14 六、ecshop加入购物车效果(各个页面) 22 七、商品列表页面“喜欢“ 功能实现 29 八、商品列表也显示获赠消费积分 32 九、分析 ecshop 里的$GLOBALS 37 十、解决 选择属性 直接就是属性价格不需要在原价基础上加价 38 十一、商品详细页下载商品介绍相关图片 39 十二、实现后台二次开发后功能模块仍然可以分配权限 41 十三、ecshop调用bbs数据 42 十四、整理了一个 获取用户等级的函数 43 十五、商品页显示具体属性排序 44 十六、解决ecshop新建页面分页问题 49 十七、刚修改的伪静态分类URL 52 十八、ecshop批发销售 66 十九、网银支付直通插件 实现方法 69 二十、商品列表页多图切换的实现 75 二十一、完善论坛发布的qq登录插件 77 二十二、倒计时代码 78 二十三、关于ecshop回调函数应用 83 二十四、商品内容页加订单留言功能分析 84 二十五、有关商品详细页是常规显示还是显示宣传页的实现方法 85 二十六、后台添加搜索功能讲解 87 二十七、分享ec搜索出现相关商品的效果滑动效果(模仿百度) 88 二十八、修改注册发送邮件(更新) 94 二十九、新增加一调用编辑器函数 97 三十、简单实现 各个页面都可显示友情链接 97 三十一、Ecshop系统框架分析 99 三十二、二次开发技术共享 后台邮件群发共享 100 三十三、ecshop内页调用友情链接 100 三十四、项目要求在后台商品分类添加图片的功能。 102 三十五、分类按照拼音第一字母排序显示实现 102 三十六、获取分类的一级分类和二级分类 106 三十七、如何调用解决列表的购买数量 107 三十八、详情页调评论次数 108 三十九、关于购买数量 订单数量 109 四十、Ecshop ajax应用讨论 109 四十一、调用当前分类或当前分类的下级分类函数 115 四十二、在商品列表显示购买记录 118 四十三、ajax更新购物车数量 118 四十四、PHP导出excle数据 123 四十五、页面多倒计时显示最新修改 125 四十六、关于lbi文件控制原理分析 129 四十七、页面浏览历史图片调用分析 130
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值