如果你支持这个项目,请 Star and Fork Me。
注:有任何问题请在Issues提交,EleTeam会尽快回复。
EleTeam开源项目-电商全套解决方案之后端版-Shop-PHP-Yii2。一个类似京东/天猫/淘宝的商城,有对应的APP支持,由EleTeam团队维护!
商品模块:支持一个商品多SKU模式
用户模块:注册登录,用户角色权限管理
地址模块
订单模块
购物车模块
文章模块
一份代码拆分为五个项目
业务项目:GatewayWorker + Redis
API项目:Nginx + PHP-FPM,PHP通过RPC调用业务项目提供的接口。该层同时是手机APP和手机WAP的接口
WEB项目:Nginx + PHP-FPM,UI框架用 Framework7,PHP通过RPC调用业务项目提供的接口
WAP项目:
方案一:直接返回带数据的html和js。因为电商的SEO必须得做好,前后端分离无法优化SEO,而后端用nodejs调用接口把项目架构做复杂了,所以选用这种方案。
方案二:Nginx只返回静态html页面,在浏览器端用AJAX调用API层的接口。JS框架是 SUI Mobile。不用这种方案。
图片项目:Nginx存放图片等静态文件
后台项目:Nginx + PHP-FPM,UI框架用 Framework7
Linux下安装Redis:
用源码包安装,yii2-redis需要redis>=2.6.12的版本
1.cd /usr/local/src, wget download.redis.io/releases/redis-3.2.6.tar.gz
2.tar xvf redis-3.2.6.tar.gz,cd redis-3.2.6
3.make && make install
4.cp redis.conf /usr/local/etc
5.redis-server /usr/local/etc/redis.conf &
用命令行安装
1.安装redis: yum install redis
2.安装php-redis扩展: yum install php-redis
3.启动redis,并设定开机自动启动: service redis start
4.开机自动启动redis: chkconfig redis on
5.查看进程: ps aux|grep redis
6.查看端口: netstat -apn | grep redis
7.命令测试: redis-cli, set key "123", get key
8.查看redis版本:redis-server -v, 如果版本redis<2.6.12, 请用用源码包安装
让外网可以访问Redis:
1.打开redis端口:iptables -I INPUT -p tcp --dport 6379 -j ACCEPT && service iptables save && service iptables restart
2.修改redis的配置文件,将所有bind信息全部屏蔽。
vi /etc/redis.conf
# bind 127.0.0.1
protected-mode no
3.重启redis
4.安装redis图形界面客户端Redis Desktop Manager
5.用该客户端可以清晰看到redis数据
ElasticSearch分布式多用户的全文搜索引擎,是当前流行的企业级搜索引擎。
Gearman处理一些可异步执行的任务(异步队列),如发送短信等。
Gearman是一个具有php扩展的分布式异步处理框架,能处理大批量异步任务。
Gearman安装和使用:http://blog.csdn.net/e421083458/article/details/21283113
定时任务:用Linux crontab调用php代码,在php里调用gearman用异步队列处理任务,如自动取消未付款订单
php-5.6.x
mysql-server-5.6.x
httpd-2.x/nginx
该项目分为4个小项目,Apache需要创建4个虚拟主机,存放该项目的所有代码,虚拟主机的配置如下:
<VirtualHost *:80>
ServerAdmin 908601756@qq.com
DocumentRoot "/Users/tony/Desktop/Develop/PHP-WWW/Shop-PHP-Yii2/backend/web"
ServerName local.eleteambackend.ygcr8.com
ErrorLog "logs/local.eleteambackend.ygcr8.com-error_log"
CustomLog "logs/local.eleteambackend.ygcr8.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 908601756@qq.com
DocumentRoot "/Users/tony/Desktop/Develop/PHP-WWW/Shop-PHP-Yii2/frontend/web"
ServerName local.eleteam.ygcr8.com
ServerAlias local.eleteam.ygcr8.com
ErrorLog "logs/local.eleteam.ygcr8.com-error_log"
CustomLog "logs/local.eleteam.ygcr8.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 908601756@qq.com
DocumentRoot "/Users/tony/Desktop/Develop/PHP-WWW/Shop-PHP-Yii2/data"
ServerName local.eleteamdata.ygcr8.com
ServerAlias local.eleteamdata.ygcr8.com
ErrorLog "logs/local.eleteamdata.ygcr8.com-error_log"
CustomLog "logs/local.eleteamdata.ygcr8.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 908601756@qq.com
DocumentRoot "/Users/tony/Desktop/Develop/PHP-WWW/Shop-PHP-Yii2/api/web"
ServerName local.eleteamapi.ygcr8.com
ServerAlias local.eleteamapi.ygcr8.com
ErrorLog "logs/local.eleteamapi.ygcr8.com-error_log"
CustomLog "logs/local.eleteamapi.ygcr8.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 908601756@qq.com
DocumentRoot "/Users/tony/Desktop/Develop/PHP-WWW/Shop-PHP-Yii2/wap/web"
ServerName local.eleteamwap.ygcr8.com
ServerAlias local.eleteamwap.ygcr8.com
ErrorLog "logs/local.eleteamwap.ygcr8.com-error_log"
CustomLog "logs/local.eleteamwap.ygcr8.com-access_log" common
</VirtualHost>
127.0.0.1 local.eleteam.ygcr8.com
127.0.0.1 local.eleteambackend.ygcr8.com
127.0.0.1 local.eleteamdata.ygcr8.com
127.0.0.1 local.eleteamapi.ygcr8.com
127.0.0.1 local.eleteamwap.ygcr8.com
以下文件夹要求读写权限:
chmod -R 777 frontend/runtime backend/runtime api/runtime console/runtime
chmod -R 777 frontend/web/assets backend/web/assets
数据库配置文件:
common/config/main-local.php
文件存放在: /dbbaks/etshop_?.sql, 项目在紧急开发中,所以该文件会不断更新,如果你的项目出现问题了,请重新导入最新的sql文件。
Mysql分区分片?多数据库。
采用传统的读写分离方式,一主两从,主库只写,从库只读。
不采用二主的方式,因为会把程序搞得太负责。
参考文档:http://geek.csdn.net/news/detail/52070
前台: http://eleteam.ygcr8.com
wap: http://eleteamwap.ygcr8.com
api: http://eleteamapi.ygcr8.com/v1/product/view?id=3
数据: http://eleteamdata.ygcr8.com
gii: http://eleteam.ygcr8.com/gii
后台: http://eleteambackend.ygcr8.com
后台超级用户: admin/123456
后台普通用户: demo/123456
@copyright Copyright © 2015年 EleTeam. All rights reserved.
@license The MIT License (MIT)
此源码遵守 The MIT License (MIT),可用于商业上,但是因此带来的商业损失EleTeam团队不承担责任。