從空 Ubuntu 系統(tǒng)到跑起來(lái) Shopro 開(kāi)源商城

說(shuō)明:
請(qǐng)使用 linux领跛!
本文檔在 Ubuntu20.04 系統(tǒng)上進(jìn)行部署 【請(qǐng)使用云服務(wù)器】放祟;
人生苦短,請(qǐng)用寶塔

前言

本文羅列了安裝部署過(guò)程中可能會(huì)遇到的問(wèn)題选酗,如果文章中有造成卡頓的地方,歡迎留言岳枷,我會(huì)第一時(shí)間進(jìn)行修改補(bǔ)充

準(zhǔn)備工作星掰,

更換鏡像源【如果不是國(guó)內(nèi)云服務(wù)器,請(qǐng)更換鏡像源】

源地址

https://developer.aliyun.com/mirror/ubuntu

替換方式

備份老的源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

編輯源文件嫩舟,在阿里云找到對(duì)應(yīng)的版本將內(nèi)容覆蓋進(jìn)去氢烘,我的為 20.04
sudo vim /etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

安裝必要的軟件

*、本地環(huán)境(因?yàn)榍岸舜虬诒镜兀┌惭b npm這里

開(kāi)始第一步 安裝寶塔環(huán)境

安裝寶塔

打開(kāi)寶塔官方網(wǎng)站家厌,選擇安裝 linux 版網(wǎng)址播玖,因?yàn)橄到y(tǒng)是 ubuntu 所以使用下面方式

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

走起

image.png

等待中...... (大約持續(xù) 5 分鐘,起身扭扭老腰~~)
顯示如下即為安裝成功啦饭于!

image.png

安裝程序運(yùn)行環(huán)境

需要安裝的軟件列表如下 【請(qǐng)選擇極速安裝蜀踏,你懂的】

nginx 1.18
mysql 5.7
php 7.2
redis 5.0
supervisor 1.3

nginx redis supervisor 版本可以有小的浮動(dòng)

過(guò)程漫長(zhǎng)(大約持續(xù)了 1 個(gè)小時(shí),小憩一會(huì)......)

開(kāi)始部署站點(diǎn)

創(chuàng)建站點(diǎn)

image.png

將站點(diǎn)默認(rèn)的幾個(gè)文件除了 .user.ini 全部刪除(.user.ini 文件本身也刪不掉)

注意:
*掰吕、如果數(shù)據(jù)庫(kù)沒(méi)有創(chuàng)建成功果覆,請(qǐng)?jiān)跀?shù)據(jù)庫(kù)菜單手動(dòng)創(chuàng)建數(shù)據(jù)庫(kù),注意字符編碼選擇 utf8mb4

設(shè)置站點(diǎn)

*殖熟、解析域名局待,并指向服務(wù)器 ip
*、設(shè)置 ssl 證書(shū) 請(qǐng)務(wù)必配置
*菱属、添加偽靜態(tài)&跨域钳榨,看這里

下載最新的 fastadmin 完整包,并上傳到寶塔站點(diǎn)目錄纽门,步驟如下

*薛耻、直接將 zip 上傳到 站點(diǎn)目錄
*、解壓
*赏陵、刪除 zip

結(jié)果如下:

image.png

修改站點(diǎn)運(yùn)行目錄為 public

image.png

開(kāi)始安裝 fastadmin

訪問(wèn)

http://域名/install.php
設(shè)置好數(shù)據(jù)庫(kù)賬號(hào)密碼饼齿, 管理員賬號(hào)

訪問(wèn)報(bào)錯(cuò):


image.png

說(shuō)明沒(méi)有設(shè)置偽靜態(tài)和跨域饲漾,請(qǐng)?jiān)O(shè)置站點(diǎn)偽靜態(tài)并增加跨域代碼,看這里

這是后端的


image.png

設(shè)置站點(diǎn)為 https 增加 SSL 證書(shū)

image.png

重啟 nginxB聘取?即!
重啟 nginx5挂!败玉!
重啟 nginx5型痢!运翼!

安裝 shopro 插件

準(zhǔn)備

請(qǐng)打開(kāi)調(diào)試模式返干,隨時(shí)定位問(wèn)題【部署完成上線,請(qǐng)關(guān)閉調(diào)試模式】

image.png

插件管理安裝 shopro

image.png
插件文檔走一波
// 移除舊版
composer remove overtrue/wechat
.
// 安裝新版
composer require "overtrue/wechat:^4.2" -vvv
.
// 更新擴(kuò)展包
composer update
商城配置走一波【請(qǐng)認(rèn)真填寫(xiě)配置項(xiàng)血淌,每一項(xiàng)都很重要】

看這里 shopro 商城配置

貌似一切都進(jìn)行的那么順利

開(kāi)始部署前端

安裝 HbuilderX

去這里安裝 HbuilderX矩欠,請(qǐng)下載 App 開(kāi)發(fā)版

將前端代碼包下載到本地,解壓

image.png

HbuilderX 打開(kāi)

image.png

點(diǎn)擊頂部菜單運(yùn)行 -》 運(yùn)行到瀏覽器 -》 chrome 【H5 運(yùn)行為例】

真不巧悠夯,報(bào)錯(cuò)了癌淮,內(nèi)容如下:

image.png

此問(wèn)題是未安裝前端依賴包

使用 HbuilderX 終端(或者任意熟悉的終端,需要進(jìn)入前端代碼目錄)沦补, 執(zhí)行 npm install

image.png

執(zhí)行 npm install ,結(jié)果如下即為成功:

image.png

再次運(yùn)行到瀏覽器

又報(bào)錯(cuò)了:


image.png

根據(jù)提示找到對(duì)應(yīng)的插件乳蓄,進(jìn)行安裝 工具 -》插件安裝

image.png

再次運(yùn)行:

image.png

完美,搓手~~
使用測(cè)試賬號(hào):13888888888 密碼:123456

慢著夕膀,別高興得太早虚倒,接口請(qǐng)求全是官方的演示站

修改根目錄 env.js 文件,將域名替換為 shopro.test (換為你的域名)

image.png

至此产舞,如果上面偽靜態(tài)魂奥,跨域SSL 配置沒(méi)有問(wèn)題易猫,就能看到正常的商城頁(yè)面了

分享海報(bào)配置【H5】

生成海報(bào)前耻煤,請(qǐng)先把 后臺(tái) -》 商城配置 -》商城信息-》分享設(shè)置,配置正確

image.png
image.png

相當(dāng)?shù)慕z滑


image.png

分享海報(bào)配置【小程序】

生成海報(bào)請(qǐng)先確保小程序發(fā)布過(guò)至少一版准颓,否則服務(wù)端會(huì)報(bào) /pages/index/index 頁(yè)面路徑無(wú)效 41030invalid page hint: [zEDCRb0gE-Nr333a]
請(qǐng)配置小程序 appid违霞,如下:

image.png

請(qǐng)?jiān)谶@里下載小程序開(kāi)發(fā)工具

請(qǐng)先在小程序開(kāi)發(fā)工具 -》設(shè)置-》安全設(shè)置 -》安全 -》 服務(wù)端口-》開(kāi)啟

image.png

準(zhǔn)備運(yùn)行小程序


image.png

注意勾選運(yùn)行時(shí)是否壓縮代碼,否則可能無(wú)法正常預(yù)覽小程序

走起... 【如果 商城配置 -》平臺(tái)配置-》小程序配置 正確瞬场,這里的微信授權(quán)就是 ok 的哦】

生成海報(bào)依然如此絲滑

image.png

到這里還沒(méi)有完买鸽,當(dāng)使用手機(jī)預(yù)覽的時(shí)候發(fā)現(xiàn)海報(bào)無(wú)法生成,甚至連首頁(yè)也出不來(lái)(開(kāi)發(fā)工具能出來(lái)是因?yàn)殚_(kāi)發(fā)工具有個(gè)選項(xiàng) 不校驗(yàn)域名合法性 )贯被,這是因?yàn)檠畚澹蠖说挠蛎秃?bào)圖片地址都需要添加到小程序允許的服務(wù)器域名中妆艘,具體位置 小程序后臺(tái) -》 開(kāi)發(fā) -》 開(kāi)發(fā)設(shè)置 -》 服務(wù)器域名

具體要添加的域名包括

api 域名    // 后端 api 接口域名,請(qǐng)部署 `https`
api.7wpp.com      // 后臺(tái)默認(rèn)的海報(bào)背景的域名
wx.qlogo.cn         // 微信授權(quán)登錄的頭像地址
shopro-1253949872.image.myqcloud.com      // 商城演示商品圖片地址

至此海報(bào)生成大難題解決

隊(duì)列 & redis

為了提高系統(tǒng)性能看幼,活動(dòng)可靠性批旺,系統(tǒng)引入了 隊(duì)列 和 redis 緩存

下單試試


image.png

此報(bào)錯(cuò)為未安裝 隊(duì)列插件,隊(duì)列 和 redis 配置文檔已經(jīng)很詳細(xì)了诵姜,請(qǐng)移步按照文檔進(jìn)行配置汽煮,點(diǎn)這里

配好隊(duì)列,加上余額棚唆,使用余額付款暇赤,一切正常的話,就能看到訂單支付成功啦O琛P摇!

發(fā)布到正式

前提已經(jīng)走過(guò)上面開(kāi)發(fā)過(guò)程瞎惫,env appid 等已經(jīng)正常設(shè)置

H5 端

前端請(qǐng)單獨(dú)部署溜腐,不要和后端接口使用一個(gè)站點(diǎn),看這里

寶塔創(chuàng)建 H5 前端站點(diǎn)
image.png

前端的偽靜態(tài)&跨域

image.png

SSL瓜喇,請(qǐng)參考上面后端的進(jìn)行設(shè)置 請(qǐng)務(wù)必配置

重啟 NginxMσ妗!乘寒!

開(kāi)始打包前端
image.png

填寫(xiě) 網(wǎng)站名稱標(biāo)題

image.png

打包成功


image.png

將兩個(gè)文件上傳到寶塔前端站點(diǎn)根目錄矩肩,如圖所示:


image.png

訪問(wèn)前端網(wǎng)址,至此 H5 前端部署完成

發(fā)布小程序端

注意不要運(yùn)行模式下的代碼提交小程序?qū)徍?br> 點(diǎn)擊 發(fā)行-》小程序-微信

image.png

填寫(xiě)小程序名稱肃续,和正式的appid


image.png

然后在微信小程序開(kāi)發(fā)工具點(diǎn)擊上傳


image.png

最后在微信小程序后臺(tái) 將剛才上傳的版本提交微信審核

至此前端發(fā)布流程完成


常見(jiàn)問(wèn)題

部分用戶接口出現(xiàn) EventDispatcher not found

EventDispatcher not found

這是 phpovertrue/wechat 某個(gè)版本才會(huì)出現(xiàn)的問(wèn)題黍檩,導(dǎo)致 symfony/event-dispatcher 擴(kuò)展包被移除

解決辦法:

手動(dòng)安裝

composer require symfony/event-dispatcher:^4.3 -vvv

新添加訂單,支付頁(yè)提示訂單不存在

請(qǐng)檢查隊(duì)列配置文件 application/extra/queue.phpconnector 配置是否是 redis【推薦】 或者 database始锚,如果不是(Sync)刽酱,請(qǐng)移步這里

拼團(tuán)開(kāi)團(tuán)支付成功,跳轉(zhuǎn)我的拼團(tuán)不顯示

因?yàn)橹Ц冻晒χ蟛捎卯惒疥?duì)列進(jìn)行執(zhí)行瞧捌,可能會(huì)存在短暫延遲

*棵里、首先稍微等待一下,60秒之內(nèi)姐呐,刷新我的拼團(tuán)頁(yè)面殿怜,看是否能顯示出來(lái)
*、如果長(zhǎng)時(shí)間還是未出來(lái)曙砂,確定隊(duì)列監(jiān)聽(tīng)是否正常头谜,配置在這里

微信公眾號(hào)登錄提示 redirect_uri 域名與后臺(tái)配置不一致

image.png

請(qǐng)?jiān)谖⑿殴娞?hào)后臺(tái) 開(kāi)發(fā)-》接口權(quán)限-》網(wǎng)頁(yè)服務(wù)-》網(wǎng)頁(yè)授權(quán) 設(shè)置網(wǎng)頁(yè)授權(quán)回調(diào)域名為后臺(tái) api 的域名,別忘了配置 ip 白名單

權(quán)限不足 Permission denied

Permission denied

*鸠澈、首先檢查 supervisor 守護(hù)進(jìn)程執(zhí)行用戶是否是和 php-fpm 執(zhí)行用戶一直柱告,寶塔是 www截驮,如果不一致請(qǐng)修改為 www

image.png

*、修改整個(gè)后端目錄所屬用戶為 www

image.png

短信驗(yàn)證碼無(wú)法發(fā)送

*际度、請(qǐng)安裝阿里云短信插件
*葵袭、在阿里云申請(qǐng)短信模板
*、在現(xiàn)有默認(rèn)模板基礎(chǔ)再增加 mobilelogin 的短信模板

配置示例:


image.png

個(gè)人中心等級(jí)圖標(biāo)不顯示

image.png

請(qǐng)參考這里

部分接口請(qǐng)求報(bào)錯(cuò)

cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

說(shuō)明:該錯(cuò)誤出現(xiàn)原因大致有兩種:第一在本地部署的測(cè)試環(huán)境乖菱;第二未配置域名SSL 證書(shū)

解決:
請(qǐng)?jiān)诰€上部署環(huán)境坡锡, 并且配置好證書(shū)即可
如果能折騰,并且一定要在本地部署開(kāi)發(fā)環(huán)境窒所,解決辦法如下

下載 cacert.pem 證書(shū)
https://curl.haxx.se/ca/cacert.pem

編輯當(dāng)前系統(tǒng)php 配置文件 php.ini

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = 剛才下載的 cacert 的放置的絕對(duì)地址/cacert.pem

重啟 php-fpm鹉勒,重啟 nginx

常見(jiàn)問(wèn)題持續(xù)更新中

...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市墩新,隨后出現(xiàn)的幾起案子贸弥,更是在濱河造成了極大的恐慌窟坐,老刑警劉巖海渊,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異哲鸳,居然都是意外死亡臣疑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)徙菠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)讯沈,“玉大人,你說(shuō)我怎么就攤上這事婿奔∪焙荩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵萍摊,是天一觀的道長(zhǎng)挤茄。 經(jīng)常有香客問(wèn)我,道長(zhǎng)冰木,這世上最難降的妖魔是什么穷劈? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮踊沸,結(jié)果婚禮上歇终,老公的妹妹穿的比我還像新娘。我一直安慰自己逼龟,他們只是感情好评凝,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著腺律,像睡著了一般肥哎。 火紅的嫁衣襯著肌膚如雪辽俗。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天篡诽,我揣著相機(jī)與錄音崖飘,去河邊找鬼。 笑死杈女,一個(gè)胖子當(dāng)著我的面吹牛朱浴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播达椰,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼翰蠢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了啰劲?” 一聲冷哼從身側(cè)響起梁沧,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蝇裤,沒(méi)想到半個(gè)月后廷支,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡栓辜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年恋拍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片藕甩。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡施敢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狭莱,到底是詐尸還是另有隱情僵娃,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布腋妙,位于F島的核電站默怨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏辉阶。R本人自食惡果不足惜先壕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谆甜。 院中可真熱鬧垃僚,春花似錦、人聲如沸规辱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至改淑,卻和暖如春碍岔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朵夏。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工蔼啦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仰猖。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓捏肢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親饥侵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸵赫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361