<commit_before># Shop-PHP-Yii2

#### 如果你支持这个项目，请 Star and Fork Me。

#### 注：有任何问题请在Issues提交，EleTeam会尽快回复。

#### EleTeam开源项目-电商全套解决方案之iOS版-Shop-PHP-Yii2。一个类似京东/天猫/淘宝的商城，有对应的APP支持，由EleTeam团队维护！
#### 客户端是iOS商城，对应项目是 ETShop-for-iOS，https://github.com/EleTeam/Shop-PHP-Yii2

#### 该电商网站的基础架构，能承担上万的并发请求：
    一份代码拆分为五个项目
    业务项目：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

#### 搜索服务
    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 908<EMAIL>
        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"<commit_msg>Redis 安装与使用<commit_after># Shop-PHP-Yii2

#### 如果你支持这个项目，请 Star and Fork Me。

#### 注：有任何问题请在Issues提交，EleTeam会尽快回复。

#### EleTeam开源项目-电商全套解决方案之iOS版-Shop-PHP-Yii2。一个类似京东/天猫/淘宝的商城，有对应的APP支持，由EleTeam团队维护！
#### 客户端是iOS商城，对应项目是 ETShop-for-iOS，https://github.com/EleTeam/Shop-PHP-Yii2

#### 该电商网站的基础架构，能承担上万的并发请求：
    一份代码拆分为五个项目
    业务项目：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

#### Redis 安装与使用
    Linux下安装Redis：
        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
    让外网可以访问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
        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@<EMAIL>
        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 90860175<EMAIL>
        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"
{'fraction_non_alphanumeric': 0.10991580916744621, 'fraction_numerical': 0.031805425631431246, 'mean_word_length': 3.4973711882229233, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5461395', 'n_tokens_mistral': 2379, 'n_tokens_neox': 2628, 'n_words': 197}