laradock 的目錄權限設定 - daniel-qa/Laradock GitHub Wiki

如何設定 Laravel 的檔案權限?

基本上有兩種方法可以設定您的所有權和權限。您要么賦予自己所有權,要么讓網頁伺服器成為所有文件的所有者。

Web 伺服器作為所有者(大多數人這樣做的方式,以及 Laravel 文件的方式):

假設 www-data (可能是其他東西)是您的網站伺服器使用者。

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory

如果你這樣做,網頁伺服器擁有所有文件,也是群組,並且你在上傳文件或透過FTP 處理文件時會遇到一些問題,因為你的FTP 用戶端將以你的身分登錄,而不是你的網頁伺服器,所以將您的使用者新增至網頁伺服器使用者群組:

sudo usermod -a -G www-data ubuntu
sudo usermod -a -G www-data rd

# 查詢使用者所屬 group
groups rd
rd : rd adm cdrom sudo dip www-data plugdev lxd docker

當然,這假設您的網頁伺服器以 www-data(Homestead 預設值)運行,並且您的使用者是 ubuntu(如果您使用 Homestead,則為 vagrant)。

然後將所有目錄設定為 755,將檔案設定為 644...設定檔案權限

sudo find /path/to/your/laravel/root/directory -type f -exec chmod 644 {} \;    

設定目錄權限

sudo find /path/to/your/laravel/root/directory -type d -exec chmod 755 {} \;

Your user as owner

我更喜歡擁有所有目錄和文件(這使得處理所有事情變得更加容易),所以,轉到你的 laravel 根目錄:

cd /var/www/html/laravel >> assuming this is your current root directory
sudo chown -R $USER:www-data 。

然後我給我自己和網頁伺服器權限:

sudo find . -type f -exec chmod 664 {} \;   
sudo find . -type d -exec chmod 775 {} \;

然後賦予Web伺服器讀寫儲存和快取的權限

無論您採用哪種方式設置,您都需要向網頁伺服器授予儲存、快取以及網路伺服器需要上傳或寫入的任何其他目錄的讀寫權限(取決於您的情況),因此請執行上面bashy 中的命令:

sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache

現在,您很安全,您的網站可以正常運行,並且您可以相當輕鬆地處理文件


  • 補充說明:
ug+rwx: 这是权限设置部分,它表示为用户(User)和所属群组(Group)添加读取、写入和执行权限(rwx)。

storage 目录和 bootstrap/cache 目录通常与 Laravel 的專案项目一起存在。

copy 原有可運行網站的專案,至新的環境,再修改目前相對應的使用者,也是一種可行方式