Fecshop 初始配置

2018-05-24 14:11 更新

Fecshop 初始配置

當您手動安裝好Linux 和FecShop的代碼后,就可以進行配置了。

1、配置 fecshop app advanced

在common/config/main-local.php中配置mysql,mongodb,redis

<?php
return [
    'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=fecshop',  # Fecshop是mysql的數據庫名字,您需要到mysql中建立一個數據庫
            'username' => 'root',  # mysql的賬戶
            'password' => '123456', # mysql的密碼
            'charset' => 'utf8',
        ],
        'mongodb' => [
            'class' => 'yii\mongodb\Connection',
            # 有賬戶的配置,username是用戶名,password是密碼,fecshop是數據庫
            //'dsn' => 'mongodb://username:password@localhost:27017/fecshop',
            # 無賬戶的配置,fecshop是數據庫
            'dsn' => 'mongodb://127.0.0.1:27017/fecshop',
            # 復制集 如果您的mongodb是復制集(大站),可以使用下面的復制集的配置方式。
            //'dsn' => 'mongodb://10.10.10.252:10001/fecshop,mongodb://10.10.10.252:10002/fecshop,mongodb://10.10.10.252:10004/fecshop?replicaSet=terry&readPreference=primaryPreferred',
        ],



mongodb默認是沒有密碼的,您可以將mongodb的端口在iptables添加信任和端口封閉即可 保證安全,當然,您也可以配置mongodb的用戶名和密碼。

4、配置環(huán)境

4.1 添加host(本地需要配置,如果是線上服務器就不需要了)

打開C:\Windows\System32\drivers\etc\hosts,添加如下代碼(如果是其他IP,將 127.0.0.1 替換成其他IP即可。):

127.0.0.1       rock.fecshoptest.com
127.0.0.1       my.fecshoptest.com
127.0.0.1       appadmin.fecshoptest.com
127.0.0.1       appfront.fecshoptest.com
127.0.0.1       appfront.fecshoptest.es
127.0.0.1       apphtml5.fecshoptest.com
127.0.0.1       appapi.fecshoptest.com
127.0.0.1       appserver.fecshoptest.com
127.0.0.1       img.fecshoptest.com     #appimage/common
127.0.0.1       img2.fecshoptest.com    #appimage/appadmin
127.0.0.1       img3.fecshoptest.com    #appimage/appfront
127.0.0.1       img4.fecshoptest.com    #appimage/apphtml5
127.0.0.1       img5.fecshoptest.com    #appimage/appserver

4.2、配置nginx,注意下面的 **fecshop** 代表fecshop的相對根目錄的文件路徑, 請根據自己安裝的文件路徑填寫。

appfront.fecshoptest.com appfront.fecshoptest.es 指向 **fecshop**/appfront/web 

 
appadmin.fecshoptest.com 指向 **fecshop**/appadmin/web


apphtml5.fecshoptest.com 指向 **fecshop**/apphtml5/web


appapi.fecshoptest.com   指向 **fecshop**/appapi/web


appserver.fecshoptest.com 指向 **fecshop**/appserver/web


img.fecshoptest.com     指向 **fecshop**/appimage/common


img2.fecshoptest.com    指向 **fecshop**/appimage/appadmin


img3.fecshoptest.com    指向 **fecshop**/appimage/appfront


img4.fecshoptest.com    指向 **fecshop**/appimage/apphtml5


img5.fecshoptest.com    指向 **fecshop**/appimage/appserver

5、配置語言(可以先使用默認):

在配置文件(:@common\config\fecshop_local_services\FecshopLang.php

6、配置貨幣(可以先使用默認):

在文件:@common\config\fecshop_local_services\Page.php

7、配置store的域名和圖片的域名,您可以和我下面的示例代碼一致,

store在配置文件:@app\config\fecshop_local_services\Store.php

譬如我的代碼(您可以和我的保持一致,相應域名已經在上面添加host):

<?php
   return [
   'store' => [
        'class' => 'fecshop\services\Store',
        'stores' => [
            # 數據的key就是域名
            'appfront.fecshoptest.com' => [
                'language'      => 'en_US',   # 語言必須在上面第五步的fecshoplang中定義,否則將無法得到語言屬性。
                'languageName'  => 'English', # 在添加store的時候,必須查看 添加的語言在 fecshoplang中是否定義。
                # 定義本地模板路徑,用來重寫fecshop的模板,或者開發(fā)新的模板文件。
                //'localThemeDir'   => '@appfront/theme/terry/theme01',
                # 定義第三方模板路徑,用來重寫fecshop的模板,或者開發(fā)新的模板文件。
                'thirdThemeDir' => [],
                # 當前語言的默認貨幣,貨幣必須在上面第六步的配置中存在
                'currency'      => 'USD',
                'mobile'        => [ # 當設備滿足什么條件的時候,進行跳轉。
                    'enable'        => true,
                    'condition'     => ['phone','tablet'], # phone 代表手機,tablet代表平板
                    'redirectUrl'   => 'apphtml5.fecshoptest.com',   # 如果是移動設備訪問進行域名跳轉
                ],
                # 第三方賬號登錄配置
                'thirdLogin' => [
                    'facebook' =>[                       #fb api配置 ,fb可以一個app設置pc和手機兩個域名 
                        'facebook_app_id'     => '184963',
                        'facebook_app_secret' => '2e097dd7139',
                    ],
                    "google" => [                       #谷歌api visit https://code.google.com/apis/console to generate your google api
                        'CLIENT_ID'      => '38037grhccontent.com',
                        'CLIENT_SECRET'  => 'ei8RaoCHYm0rrwO',
                    ],
                ]


                //'image'   => [
                //  'domain' => 'img.appfront.fancyecommerce.com',
                //  'baseDir'=> '@appimage/appfront',
                //]
            ],
            'appfront.fecshoptest.com/fr' => [
                'language'      => 'fr_FR',
                'languageName'  => 'Fran?ais',
                'localThemeDir' => '@appfront/theme/terry/theme01',
                'thirdThemeDir' => [],
                'currency'      => 'RMB',
                'mobile'        => [
                    'enable'            => true,
                    'condition'         => ['phone'], # phone 代表手機,tablet代表平板。
                    'redirectDomain'    => 'apphtml5.fecshoptest.com/fr', # 跳轉后的url。
                ],
            ],
            'appfront.fecshoptest.es' => [
                'language'      => 'es_ES',
                'languageName'  => 'Espa?ol',
                'localThemeDir' => '@appfront/theme/terry/theme01',
                'thirdThemeDir' => [],
                'currency'      => 'USD',
                'mobile'        => [
                    'enable'        => true,
                    'condition'     => ['tablet'],
                    'redirectDomain'    => 'fecshop.apphtml5.es.fancyecommerce.com', 
                ],
            ],
            'appfront.fecshoptest.com/cn' => [
                'language'      => 'zh_CN',
                'languageName'  => '中文',
                'localThemeDir' => '@appfront/theme/terry/theme01',
                'thirdThemeDir' => [],
                'currency'      => 'RMB',
                'mobile'        => [
                    'enable'        => false,
                    'condition'     => ['phone','tablet'],
                    'redirectDomain'    => 'fecshop.apphtml5.fancyecommerce.com/cn', 
                ],
            ],
        ],

        
    ],

            
];

各個代碼的具體含義,在注釋中已經說明,關于第三方facebook和google登錄,如何獲取 CLIENT_ID,CLIENT_SECRET可以參看我的博文: facebook login 申請 app_id 和 app_secret , google login api 申請 CLIENT_SECRET 和 CLIENT_SECRET

如果您的各個語言使用了子域名(譬如cn.fecshop.com , fr.fecshop.com 等),由于子域名之間session默認是不能共享的,為了更好的共享session,讓語言切換后, 購物車和登錄信息存在,您需要在入口文件index.php里面設置session.cookie_domain ,大約在index.php第3行找到代碼

#ini_set('session.cookie_domain', '.fancyecommerce.com'); //初始化域名,

將前面的注釋去掉,將.fancyecommerce.com替換成您的域名, 如果您使用的是 www.fecshop.com/cn , www.fecshop.com/fr, 這種方式,則不需要設置 session.cookie_domain, 如果您想使用后綴模式區(qū)分多語言,譬如添加it語言,您需要到@app/web中添加一個文件夾it, 然后在文件夾里面新建@app/web/it/index.php文件,并新建文件夾@app/web/it/assets,并設置可寫, 目前fecshop只添加了cn和fr兩個例子,你可以參考這兩個。

7、圖片域名配置文件:@common\config\fecshop_local_services\Image.php ,譬如我的代碼(您可以和我的保持一致,相應域名已經在上面添加host):

<?php
/**
 * FecShop file.
 * @link http://www.fecshop.com/
 * @copyright Copyright (c) 2016 FecShop Software LLC
 * @license http://www.fecshop.com/license/
 */
return [
    'image' => [
        'appbase'   => [
            'appfront' => [
                'basedir' => '@appimage/appfront',
                'basedomain' => 'http://img3.fecshoptest.com',
            ],
            'apphtml5' => [
                'basedir' => '@appimage/apphtml5',
                'basedomain' => 'http://img2.fecshoptest.com',
            ],
            'appadmin' => [
                'basedir' => '@appimage/appadmin',
                'basedomain' => 'http://img2.fecshoptest.com',
            ],
            'common' => [
                'basedir' => '@appimage/common',
                'basedomain' => 'http://img.fecshoptest.com',
            ],
        ],
    ],
];

您可能會問,為什么要給圖片配置域名,圖片和網站使用一個域名不就可以嗎? 原因:瀏覽器加載頁面的時候,每一個域名加載的鏈接的并發(fā)個數是有限制的,把 圖片使用不同的域名,可以讓圖片獨立加載,加快頁面的加載。

8、配置是否強制復制assets到web目錄,如果是開發(fā)環(huán)境,按照下面進行配置(可選配置,可以先不管這個)。

@app/config/main.php里面可以看到下面的配置

這個是yii2的知識范疇

'assetManager' => [
    'forceCopy' => true,
],

如果是線上, 將forceCopy設置成false ['forceCopy' => false]

原因:本地開發(fā)經常修改css,因此,每次就需要yii的asset將css發(fā)布到web路徑下面(這里的發(fā)布,就是yii2在初始化的時候就會強制把需要的css復制到 web/assets路徑下面,譬如yii2封裝的bootstrap前端框架), 如果是線上環(huán)境,這樣非常耗費資源,因此,線上關閉即可,如果您發(fā)布了新的css文件, 那么您需要手動清空@app/web/assets下面的文件夾(如果線上訪問量不大,開啟也無所謂,呵呵。)。

9、導入數據庫表(migrate),在fecshop根目錄執(zhí)行下面的命令行

9.1、Yii2 migratge方式導入表。

mysql(導入mysql的表,數據,索引):

./yii migrate --interactive=0 --migrationPath=@fecshop/migrations/mysqldb

mongodb(導入mongodb的表,數據,索引):

./yii mongodb-migrate  --interactive=0 --migrationPath=@fecshop/migrations/mongodb

9.2、測試數據安裝:

下載地址為:測試mongodb數據庫js數據 , 進入后打開文件夾,下載 mongo-fecshop_test-20170419-065157.js即可

然后把該文件上傳到您的系統(tǒng)中,譬如,我放到了該路徑下:/www/restore/mongo-fecshop_test-20170419-065157.js

mongo 127.0.0.1:27017/fecshop --quiet /www/restore/mongo-fecshop_test-20170419-065157.js

127.0.0.1:27017/fecshop 27017為mongodb的默認端口,fecshop為數據庫.

執(zhí)行上面的命令,會把數據導入到mongodb的fecshop數據庫中。

9.3產品圖片

對于產品的示例數據 對應的圖片文件比較大,沒有放到版本庫里面,你可以到百度云盤下載appimage.zip,下載地址為:https://pan.baidu.com/s/1kVwRD2Z 將appimage覆蓋到根目錄即可,覆蓋后, 設置一下文件可寫可讀:

chmod 777 -R  appimage

如果發(fā)現產品圖片沒有出來,那么您需要清空 appimage/common/media/catalog/product/cache/*下面所有文件和文件夾,

cd appimage/common/media/catalog/product/cache/
pwd
rm -rf ./*

上面使用了rm -rf命令,一定要謹慎,pwd看看是否進入了相關文件夾,看好文件路徑是否正確,在執(zhí)行刪除,以免造成刪除 了其他文件。

清空瀏覽器圖片緩存,重新刷新頁面即可。

9.4產品搜索

對于產品搜索,中文搜索需要安裝xunSearch,英文用的是mongodb 的 full text search, xunSearch安裝教程 ,安裝完成后,需要跑腳本同步到搜索工具中,命令行如下:

cd vendor/fancyecommerce/fecshop/shell/search
sh fullSearchSync.sh

Fecshop搜索詳細文檔

10、開啟nginx mysql mongodb php,你就可以訪問本地配置的fecshop了。

11、后臺的賬戶密碼為: admin admin123(如果不對,就是123456)

12、如果是線上,需要開啟一些腳本。

詳細參看:Fecshop 腳本介紹

二:其他

1.開啟單文件配置(非必要)

fecshop的配置最終是由N個配置php文件合并而成,在每次初始化 前執(zhí)行,為了加速,可以先把配置文件合并成單文件,然后在加載 就會比較節(jié)省資源。

入口文件@app/web/index.php 代碼: $use_merge_config_file = false; 處設置。 fecshop 使用合并配置(config)數組進行加速,true 代表打開。 打開配置加速開關前,您需要執(zhí)行 http://www.domain.com/index-merge-config.php 進行生成單文件配置數組。 注意:打開后,當您修改了配置,都需要重新生成單文件配置數組,否則修改的配置不會生效, 建議:本地開發(fā)環(huán)境關閉,開發(fā)環(huán)境如果訪問量不大,關閉也行,如果訪問量大,建議打開

參考資料:yii2 配置加速 – N個配置文件生成一個配置文件

2.上線注意的問題

對于上線,您需要做一些線上的配置,這些可以參看上線前的配置

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號