基於Laravel開發在線點播系統:MeEdu平臺搭建

隨着知識付費領域的興起,尤其是知識付費領域的龍頭“得到”的成功,知識付費領域儼然成爲了新的風口。經過這幾年的發展,知識付費領域的基礎建設有了很大的進步,後臺有粉絲指出隨着版本的更迭,原先的一些指南已經不再具有參考價值,希望我能出一期MeEdu前後臺完整的搭建文章,因此今天抽出時間和大家一起來學習如何基於Laravel,搭建在線點播系統。
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
文章將重點對搭建過程中出現最常見的幾個問題予以說明:

  1. 缺少命令環境,如npm命令,node.js環境缺失等
  2. 前後臺分離的新版MeEdu平臺後臺前端搭建過程中內存溢出問題

環境要求:
  1. PHP >= 7.2
  2. MySql >= 5.6
  3. Composer
  4. PHP擴展:Fileinfo

這裏我們以 centos-7-x86 64 + nginx + PHP7.2 + MySql5.6 爲例搭建。


一、前臺配置

# 1.安裝寶塔
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

# 2.配置寶塔
(a) 安裝Fileinfo擴展  # 如果Fileinfo拓展安裝失敗,就是內存太小,添加swap
(b) 禁用函數: proc_open、symlink、putenv、pcntl_signal、passthru
(c) 創建站點 

# 3.安裝Composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

# 4.從compose安裝源碼
cd /www/wwwroot/demo.com
composer create-project qsnh/meedu=dev-master
cp -rf meedu/. .

# 5.#編輯環境變量:修改.env文件

#數據庫信息
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=edu
DB_USERNAME=edu
DB_PASSWORD=edu
#其它信息
APP_ENV=local(這裏如果正式運行,請修改爲:production)
APP_DEBUG=true(如果安裝沒問題,建議改爲false)
APP_URL=http://localhost(這裏修改你自己的域名地址)

# 6.創建上傳目錄軟鏈接
php artisan storage:link

# 7.設置storage目錄權限爲777
chmod -R  0777 storage

# 8.安裝數據表
php artisan migrate

# 9.初始化系統權限
php artisan install role

# 10.初始化管理員,按照提示輸入管理員的賬號和密碼
php artisan install administrator

# 11.初始化後臺菜單
php artisan install backend_menu

# 12.生成安裝鎖
php artisan install:lock

# 13.修改網站運行目錄public ,取消防跨站攻擊

# 14.添加網站僞靜態如下:
location / {  
    try_files $uri $uri/ /index.php$is_args$query_string;  
}

二、前臺進階配置

(1)增加定時任務

#點擊寶塔面板左側計劃任務,設置爲每1分鐘執行一次,執行內容爲:
php /www/wwwroot/domain/artisan schedule:run >> /dev/null 2>&1   #修改爲自己的域名

在這裏插入圖片描述
(2)配置隊列監聽

# 1.安裝Supervisor:
pip install supervisor
wget -N -P /etc/ --no-check-certificate  https://coding.net/u/cvc/p/supervisor/git/raw/master/supervisord.conf

# 2.新增配置代碼:
#以下爲一整條命令,先修改爲自己的域名,再一起復制到SSH運行
echo "[program:meedu]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/your_domain/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=root
numprocs=4
redirect_stderr=true
stdout_logfile=/www/wwwroot/your_domain/storage/logs/supervisor.log" >> /etc/supervisord.conf
# 3.啓動服務:
/usr/bin/supervisord -c /etc/supervisord.conf

# 4.CentOS 7 系統開機自啓(將啓動命令加入rc.local文件):
echo "/usr/bin/supervisord -c /etc/supervisord.conf" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

CentOS 6、Debian、Ubuntu系統 可以參見此文

(3)如果需要開啓微信小程序,需要執行命令:

php artisan passport:install

該命令是生成RSA加密密鑰和小程序端的ID和Secret。注意將輸出的id和secret填寫到小程序配置文件中。


三、後臺配置

# 1.下載meedu後臺的前端項目到本地:
git clone https://github.com/Meedu/backend.git meedu-backend

# 2.安裝依賴(其中一些 npm WARN 無需理會):
npm install -g hey-cli
cd meedu-backend
npm install

# 3.打包:
hey build

打包完成之後將會在目錄下面看到 dist 文件夾,接下來將該文件夾複製到 meedu 項目的 public 目錄下面,重命名爲:admin。然後就可以在瀏覽器輸入:http://yourdomain/admin 來訪問 MeEdu 的後臺了。

這裏重點對搭建過程中出現最常見的幾個問題予以說明:

  1. 缺少命令環境,如npm命令,node.js環境缺失等
  2. 前後臺分離的新版MeEdu平臺後臺前端搭建過程中內存溢出問題
(1)缺少命令環境,如 npm command not found

原因是沒有安裝 node.js, 安裝最新版本的node.js

wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz  
tar -xf node-v12.16.1-linux-x64.tar.xz

# 將node路徑添加到環境變量
vi /etc/profile

export NODE_HOME=/root/node-v12.16.1-linux-x64
export PATH=$PATH:$NODE_HOME/bin 
export NODE_PATH=$NODE_HOME/lib/node_modules

# 刷新權限
source /etc/profile

#測試命令
node -v

在這裏插入圖片描述

(2)最後打包過程中(hey build)內存溢出,報錯:JavaScript heap out of memory

在這裏插入圖片描述
我使用的是 512MB內存 的服務器,在Node中通過JavaScript使用內存時只能使用部分內存(64位系統:1.4 GB,32位系統:0.7 GB),這個時候,如果前端項目非常的龐大,Webpack編譯時就會佔用很多的系統資源,如果超出了V8引擎對Node默認的內存限制大小時,就會產生內存泄露(JavaScript heap out of memory)的錯誤。

基於此,既然V8引擎有對Node進行默認的內存限制大小,那麼在Node內存不足的時候,可以放寬內存大小的使用限制,在Node啓動的時候,傳遞–max-old-space-size或–max-new-space-size來調整內存大小的使用限制。

# 1.安裝 cross-env 和 increase-memory-limit
npm install -g cross-env
npm install -g increase-memory-limit

# 2.運行
increase-memory-limit

記住 cross-env 和 increase-memory-limit 版本號:

在這裏插入圖片描述

比如我這裏cross-env和increase-memory-limit版本號分別是 ^7.0.2和 ^1.0.7,

# 3.在項目文件package.json中增加內容

"scripts": {
    "fix-memory-limit": "cross-env LIMIT=2048 increase-memory-limit"
  },
  "devDependencies": {
    "increase-memory-limit": "^1.0.7",
    "cross-env": "^7.0.2"
  }

# 4.npm 異步運行

npm run fix-memory-limit

在這裏插入圖片描述

# 5.再次打包即可
hey build

在這裏插入圖片描述
在這裏插入圖片描述


如何個性化定製:
  1. 進入後臺(/admin)修改信息
  2. /wwwroot/domain/public/images 修改圖片
  3. /wwwroot/domain/resources/views/layouts/common/footer.blade.php 21、57行“手機號”改成“賬號”
  4. /wwwroot/domain/resources/views/layouts/common/footer.blade.php 版權申明 是否跨行
  5. /wwwroot/domain/resources/views/frontend/index/index.blade.php 可選擇性刪除勵志文字
  6. /meedu-backend/src/components/login/index.vue(編譯前)——6、7根據階段不同選一即可
  7. /wwwroot/domain/public/admin/static/js/18.72570da.js(編譯後) 修改後臺login頁面MeEdu申明和“郵箱”(改爲“賬號”)提示
  8. /wwwroot//resources/views/layouts/common/header.blade.php 修改 MeEdu <title>
  9. /wwwroot//resources/views/layouts/h5.blade.php 修改 MeEdu <title>
  10. /wwwroot//resources/views/frontend/auth/login.blade.php “手機號”(改爲“賬號”)提示
  11. /wwwroot//resources/views/frontend/components/mobile.blade.php “手機號”(改爲“賬號”)提示
  12. /wwwroot//resources/views/h5/auth/login.blade.php “手機號”(改爲“賬號”)提示

在這裏插入圖片描述


如何去除手機號驗證註冊:

如果沒有接口我們沒有辦法爲用戶發送驗證碼,換言之也就沒有辦法允許用戶註冊註冊賬號,顯然這是不合理的。因此我們需要修改這一部分的內容。
在這裏插入圖片描述
解決方法是刪除手機短信驗證碼驗證(/wwwroot/domain/app/Http/Middleware/CheckSmsCodeMiddleware.php):

在這裏插入圖片描述
然後修改移動端和pc端前端:

移動端:/wwwroot/domain/resources/views/frontend/components/mobile.blade.php

在這裏插入圖片描述

pc端:/wwwroot/domain/resources/views/layouts/common/footer.blade.php 修改 register-box

在這裏插入圖片描述


課程封面圖片 320240
首頁幻燈片:1200
400


遷移站點後如何變更配置:
  1. 修改.env 文件
  2. 進入 public 目錄執行 rm storage
  3. 重新創建上傳目錄軟鏈接(從第6步開始)
  4. /wwwroot/domain/storage 下的 meedu_config.json 替換相關域名信息

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章