起因: 之前做的一個專案需要配置到虛擬主機上.
(本人之前都是直接放到ecs例項上的, 純系統安裝寶塔搞定就基本ok了. ^_^)
環境 : 雲虛擬主機 ,php7.2 mysql nginx 這些都是配置好的.
虛擬主機網站根目錄是固定的,我們沒法通過nginx的配置檔案修改網站繫結的站點根目錄
偽靜態配置: (谷歌出來的)
修改專案的訪問目錄:
改之前的目錄: (預設專案的初始訪問檔案都是放在public/index.php下)
更改目錄:
1.先把除了public目錄外的所有檔案都放到local目錄(local是我新建的一個資料夾)下.
2.在把public目錄下的所有檔案都放到站點根目錄. 這樣index.php就能訪問到了.
3.修改index.php ,如下圖:
要注意: 此時的public_path() 函式對應的目錄位置 : 站點根目錄/local/public ; 其它的助手目錄函式
都會發生類似的變化.
問題: 當我登入laravel-admin的後臺, 發現所有的檔案上傳都儲存不了. 報錯資訊:
谷歌問題找到答案:
虛擬主機預設沒有開啟php的 chmod函式. 開啟後檔案儲存成功
總結:
- 在沒法修改虛擬主機站點根目錄的情況下, 需要修改laravel的目錄結構.
- 偽靜態可以通過nginx設定去配置
- chmod等函式,虛擬主機是預設關閉的,需要手動開啟.
重點: 遇到報錯的時候,先檢視錯誤日誌. 通過錯誤日誌給出的錯誤資訊再去分析會比較簡單點.
本作品採用《CC 協議》,轉載必須註明作者和本文連結