# 多網域切換操作手冊 ### 套件資訊 : [gecche/laravel-multidomain](https://github.com/gecche/laravel-multidomain) ### 佈署指令 - 安裝套件。 `composer install` - 發布設定檔(/config/domain.php)。 `php artisan vendor:publish --provider="Gecche\\Multidomain\\Foundation\\Providers\\DomainConsoleServiceProvider"` - 在.env檔案新增多網域開關參數 MULTIPLE_DOMAIN (true:開啟/false:關閉),此設定預設為關閉。 - APP_PUBLIC_STORAGE(站台網域名稱,圖片url路徑使用,當網域為report-api2.test,此參數內容請打report-api2_test)。 ### 常用指令(下列指令執行前請確認.env檔案中MULTIPLE_DOMAIN參數有開啟,所有指令都支援domain參數來針對指定站台執行,除了storage:link外) * 增加站台網域 ``` php artisan domain:add {domainHost} ``` 假設我們輸入的網域為report-api2.test,指令輸入後會進行以下動作: 1. 在config/domain.php檔案內增添新網域資訊,若無此檔案請確認佈署步驟執行是否有遺漏。  2. 複製.env檔案內容為新網域的環境設定檔(注意:記得修改資料庫連線資訊)。  3. 新增該網域專屬的storage目錄,若站台新增失敗請檢查storage是否有與此次新增網域相同的目錄存在,若有請刪除後再次執行新增網域即可(圖片若須對外開方存取,記得開軟連結。oauth公私鑰也需自行再複製一份)。  * 移除站台 ``` php artisan domain:remove {domainHost} ``` 假設我們輸入的網域為report-api2.test,會將config/domanin.php內該站台資訊移除,並刪除該站台專用環境變數檔案(.env.report-api.test),但storage目錄內容則會保留不作任何更動。 * 更新參數 ``` php artisan domain:update_env --domain_values='{"TOM_DRIVER":"TOMMY"}' ``` 可針對特定站台或所有站台.env檔案中的參數內容進行更新,上方指令會更新所有站台TOM_DRIVER參數內容為TOMMY。 * 站台列表 ``` php artisan domain:list ``` 顯示config/domain.php檔案中網域相關.env檔案資訊與storage目錄資訊。 * 開放圖片可公開存取 請使用指令進行設定,如下方範例。 ``` ln -s storage/report-api2_test/app/public public/storage/report-api2_test ``` ### Q&A - Q1: 多站台啟用後在各站台.env檔案中的APP_PUBLIC_STORAGE參數有何功用? A1: APP_PUBLIC_STORAGE參數(圖1)用於程式在生成圖片url時,讓程式知道目前圖片是放置在哪個站台底下的目錄中。假設目前有一站台名稱為demo365.cc,圖片url在參數新增前後的變化可參考下圖2。  (圖1.環境變數APP_PUBLIC_STORAGE)  (圖2.圖片url於參數變更前後變化) - Q2: 多站台啟用前上傳的維修圖片,在切換後都消失了,該如何讓圖片顯示正常? A2: 假設切換多站台後舊圖想在新站demo365.cc上正常顯示,因切換多站台前維修相關的圖片是放置在storage/app/public/repair_fies目錄下,啟用多站台後會發生切換前新增的資料圖片遺失問題,可將維修相關圖片從storage/app/public/repair_fies搬到storage/app/demo_365/public/repair_files下(搬移後要注意檔案擁有者與擁有群組不可為root,可用chown指令變更)。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up