當(dāng)您手動(dòng)安裝好Linux 和FecShop的代碼后,就可以進(jìn)行配置了。
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的數(shù)據(jù)庫(kù)名字,您需要到mysql中建立一個(gè)數(shù)據(jù)庫(kù)
'username' => 'root', # mysql的賬戶
'password' => '123456', # mysql的密碼
'charset' => 'utf8',
],
'mongodb' => [
'class' => 'yii\mongodb\Connection',
# 有賬戶的配置,username是用戶名,password是密碼,fecshop是數(shù)據(jù)庫(kù)
//'dsn' => 'mongodb://username:password@localhost:27017/fecshop',
# 無(wú)賬戶的配置,fecshop是數(shù)據(jù)庫(kù)
'dsn' => 'mongodb://127.0.0.1:27017/fecshop',
# 復(fù)制集 如果您的mongodb是復(fù)制集(大站),可以使用下面的復(fù)制集的配置方式。
//'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默認(rèn)是沒(méi)有密碼的,您可以將mongodb的端口在iptables添加信任和端口封閉即可 保證安全,當(dāng)然,您也可以配置mongodb的用戶名和密碼。
4、配置環(huán)境
4.1 添加host(本地需要配置,如果是線上服務(wù)器就不需要了)
打開(kāi)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的相對(duì)根目錄的文件路徑,
請(qǐng)根據(jù)自己安裝的文件路徑填寫(xiě)。
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、配置語(yǔ)言(可以先使用默認(rèn)):
在配置文件(:@common\config\fecshop_local_services\FecshopLang.php
6、配置貨幣(可以先使用默認(rèn)):
在文件:@common\config\fecshop_local_services\Page.php
7、配置store的域名和圖片的域名,您可以和我下面的示例代碼一致,
store在配置文件:@app\config\fecshop_local_services\Store.php
譬如我的代碼(您可以和我的保持一致,相應(yīng)域名已經(jīng)在上面添加host):
<?php
return [
'store' => [
'class' => 'fecshop\services\Store',
'stores' => [
# 數(shù)據(jù)的key就是域名
'appfront.fecshoptest.com' => [
'language' => 'en_US', # 語(yǔ)言必須在上面第五步的fecshoplang中定義,否則將無(wú)法得到語(yǔ)言屬性。
'languageName' => 'English', # 在添加store的時(shí)候,必須查看 添加的語(yǔ)言在 fecshoplang中是否定義。
# 定義本地模板路徑,用來(lái)重寫(xiě)fecshop的模板,或者開(kāi)發(fā)新的模板文件。
//'localThemeDir' => '@appfront/theme/terry/theme01',
# 定義第三方模板路徑,用來(lái)重寫(xiě)fecshop的模板,或者開(kāi)發(fā)新的模板文件。
'thirdThemeDir' => [],
# 當(dāng)前語(yǔ)言的默認(rèn)貨幣,貨幣必須在上面第六步的配置中存在
'currency' => 'USD',
'mobile' => [ # 當(dāng)設(shè)備滿足什么條件的時(shí)候,進(jìn)行跳轉(zhuǎn)。
'enable' => true,
'condition' => ['phone','tablet'], # phone 代表手機(jī),tablet代表平板
'redirectUrl' => 'apphtml5.fecshoptest.com', # 如果是移動(dòng)設(shè)備訪問(wèn)進(jìn)行域名跳轉(zhuǎn)
],
# 第三方賬號(hào)登錄配置
'thirdLogin' => [
'facebook' =>[ #fb api配置 ,fb可以一個(gè)app設(shè)置pc和手機(jī)兩個(gè)域名
'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 代表手機(jī),tablet代表平板。
'redirectDomain' => 'apphtml5.fecshoptest.com/fr', # 跳轉(zhuǎn)后的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',
],
],
],
],
];
各個(gè)代碼的具體含義,在注釋中已經(jīng)說(shuō)明,關(guān)于第三方facebook和google登錄,如何獲取 CLIENT_ID,CLIENT_SECRET可以參看我的博文: facebook login 申請(qǐng) app_id 和 app_secret , google login api 申請(qǐng) CLIENT_SECRET 和 CLIENT_SECRET
如果您的各個(gè)語(yǔ)言使用了子域名(譬如cn.fecshop.com , fr.fecshop.com 等),由于子域名之間session默認(rèn)是不能共享的,為了更好的共享session,讓語(yǔ)言切換后,
購(gòu)物車和登錄信息存在,您需要在入口文件index.php里面設(shè)置session.cookie_domain
,大約在index.php第3行找到代碼
#ini_set('session.cookie_domain', '.fancyecommerce.com'); //初始化域名,
將前面的注釋去掉,將.fancyecommerce.com
替換成您的域名,
如果您使用的是 www.fecshop.com/cn
, www.fecshop.com/fr
,
這種方式,則不需要設(shè)置 session.cookie_domain
,
如果您想使用后綴模式區(qū)分多語(yǔ)言,譬如添加it語(yǔ)言,您需要到@app/web中添加一個(gè)文件夾it,
然后在文件夾里面新建@app/web/it/index.php文件,并新建文件夾@app/web/it/assets,并設(shè)置可寫(xiě),
目前fecshop只添加了cn和fr兩個(gè)例子,你可以參考這兩個(gè)。
7、圖片域名配置文件:@common\config\fecshop_local_services\Image.php
,譬如我的代碼(您可以和我的保持一致,相應(yīng)域名已經(jīng)在上面添加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',
],
],
],
];
您可能會(huì)問(wèn),為什么要給圖片配置域名,圖片和網(wǎng)站使用一個(gè)域名不就可以嗎? 原因:瀏覽器加載頁(yè)面的時(shí)候,每一個(gè)域名加載的鏈接的并發(fā)個(gè)數(shù)是有限制的,把 圖片使用不同的域名,可以讓圖片獨(dú)立加載,加快頁(yè)面的加載。
8、配置是否強(qiáng)制復(fù)制assets到web目錄,如果是開(kāi)發(fā)環(huán)境,按照下面進(jìn)行配置(可選配置,可以先不管這個(gè))。
@app/config/main.php
里面可以看到下面的配置
這個(gè)是yii2的知識(shí)范疇
'assetManager' => [
'forceCopy' => true,
],
如果是線上, 將forceCopy設(shè)置成false ['forceCopy' => false]
原因:本地開(kāi)發(fā)經(jīng)常修改css,因此,每次就需要yii的asset將css發(fā)布到web路徑下面(這里的發(fā)布,就是yii2在初始化的時(shí)候就會(huì)強(qiáng)制把需要的css復(fù)制到 web/assets路徑下面,譬如yii2封裝的bootstrap前端框架), 如果是線上環(huán)境,這樣非常耗費(fèi)資源,因此,線上關(guān)閉即可,如果您發(fā)布了新的css文件, 那么您需要手動(dòng)清空@app/web/assets下面的文件夾(如果線上訪問(wèn)量不大,開(kāi)啟也無(wú)所謂,呵呵。)。
9、導(dǎo)入數(shù)據(jù)庫(kù)表(migrate),在fecshop根目錄執(zhí)行下面的命令行
9.1、Yii2 migratge方式導(dǎo)入表。
mysql(導(dǎo)入mysql的表,數(shù)據(jù),索引):
./yii migrate --interactive=0 --migrationPath=@fecshop/migrations/mysqldb
mongodb(導(dǎo)入mongodb的表,數(shù)據(jù),索引):
./yii mongodb-migrate --interactive=0 --migrationPath=@fecshop/migrations/mongodb
9.2、測(cè)試數(shù)據(jù)安裝:
下載地址為:測(cè)試mongodb數(shù)據(jù)庫(kù)js數(shù)據(jù) , 進(jìn)入后打開(kāi)文件夾,下載 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的默認(rèn)端口,fecshop為數(shù)據(jù)庫(kù).
執(zhí)行上面的命令,會(huì)把數(shù)據(jù)導(dǎo)入到mongodb的fecshop數(shù)據(jù)庫(kù)中。
9.3產(chǎn)品圖片
對(duì)于產(chǎn)品的示例數(shù)據(jù) 對(duì)應(yīng)的圖片文件比較大,沒(méi)有放到版本庫(kù)里面,你可以到百度云盤下載appimage.zip
,下載地址為:https://pan.baidu.com/s/1kVwRD2Z
將appimage覆蓋到根目錄即可,覆蓋后,
設(shè)置一下文件可寫(xiě)可讀:
chmod 777 -R appimage
如果發(fā)現(xiàn)產(chǎn)品圖片沒(méi)有出來(lái),那么您需要清空 appimage/common/media/catalog/product/cache/*
下面所有文件和文件夾,
cd appimage/common/media/catalog/product/cache/
pwd
rm -rf ./*
上面使用了rm -rf命令,一定要謹(jǐn)慎,pwd看看是否進(jìn)入了相關(guān)文件夾,看好文件路徑是否正確,在執(zhí)行刪除,以免造成刪除 了其他文件。
清空瀏覽器圖片緩存,重新刷新頁(yè)面即可。
9.4產(chǎn)品搜索
對(duì)于產(chǎn)品搜索,中文搜索需要安裝xunSearch,英文用的是mongodb 的 full text search, xunSearch安裝教程 ,安裝完成后,需要跑腳本同步到搜索工具中,命令行如下:
cd vendor/fancyecommerce/fecshop/shell/search
sh fullSearchSync.sh
10、開(kāi)啟nginx mysql mongodb php,你就可以訪問(wèn)本地配置的fecshop了。
11、后臺(tái)的賬戶密碼為: admin admin123(如果不對(duì),就是123456)
12、如果是線上,需要開(kāi)啟一些腳本。
詳細(xì)參看:Fecshop 腳本介紹
二:其他
1.開(kāi)啟單文件配置(非必要)
fecshop的配置最終是由N個(gè)配置php文件合并而成,在每次初始化 前執(zhí)行,為了加速,可以先把配置文件合并成單文件,然后在加載 就會(huì)比較節(jié)省資源。
入口文件@app/web/index.php 代碼: $use_merge_config_file = false;
處設(shè)置。
fecshop 使用合并配置(config)數(shù)組進(jìn)行加速,true 代表打開(kāi)。
打開(kāi)配置加速開(kāi)關(guān)前,您需要執(zhí)行 http://www.domain.com/index-merge-config.php 進(jìn)行生成單文件配置數(shù)組。
注意:打開(kāi)后,當(dāng)您修改了配置,都需要重新生成單文件配置數(shù)組,否則修改的配置不會(huì)生效,
建議:本地開(kāi)發(fā)環(huán)境關(guān)閉,開(kāi)發(fā)環(huán)境如果訪問(wèn)量不大,關(guān)閉也行,如果訪問(wèn)量大,建議打開(kāi)
參考資料:yii2 配置加速 – N個(gè)配置文件生成一個(gè)配置文件
2.上線注意的問(wèn)題
對(duì)于上線,您需要做一些線上的配置,這些可以參看上線前的配置
更多建議: