5 回答

TA貢獻1775條經驗 獲得超8個贊
你用什么作為網絡服務器?nginx 還是阿帕奇?
如果您使用的是 nginx,則需要更改存儲文件夾的組,如下所示。
chown -R vagrant:www-data storage
如果您使用的是apache,則需要更改存儲文件夾的組,如下所示。
chown -R vagrant:apache storage
或者請這樣做。(不推薦)
chmod -R 777 storage

TA貢獻1784條經驗 獲得超8個贊
我通常對權限和所有權所做的事情是這樣的:
sudo chown -R ubuntu:www-data /var/www/project sudo chmod -R ug+rwx storage bootstrap/cache .git sudo find . -type f -exec chmod 664 {} \; sudo find . -type d -exec chmod 775 {} \;
話雖如此,聽起來您的網絡服務器在創建日志文件時遇到了問題。
要對此進行測試:
有可靠的重現步驟(所以你會得到錯誤)
做
sudo chown -R www-data:www-data /home/vagrant/code/abc-backend/storage
。重新測試
如果這有效,您有一些選擇:
就這樣吧,工作完成了。請注意,將來可能會出現如下所示的其他情況。
調查進一步的問題:如果您決定實際上,
sudo chown -R www-data:www-data /home/vagrant/code/abc-backend
您可能會在某個時候遇到訪問問題,其中作為一個用戶(比方說vagrant
)運行命令會生成應該可由另一個用戶(比方說www-data
)訪問的文件。這些可以是:git pull
、composer install
、 cron 作業,也可能是其他作業。但這更有可能發生在協作環境中,而不是宅基地中。

TA貢獻1860條經驗 獲得超8個贊
storage
和目錄中的目錄bootstrap/cache
應該可由您的 Web 服務器寫入,否則 Laravel 將無法運行。
你有沒有嘗試過:
chmod -R o+w /home/vagrant/code/abc-backend/storage
?
如果還是不行,您可能需要檢查 /home/vagrant/code 的內容,看看ls -al
誰擁有這些文件,并使用chown
它們將其修改為預期的 Web 用戶。

TA貢獻1835條經驗 獲得超7個贊
我認為問題是在cache:clear之后權限不會保留到子文件夾(因為該命令是由vagrant用戶運行的,而不是apache)。緩存使用了很多子文件夾,它們似乎由 vagrant 所有(包括用戶和組),因此 apache(和 php)無法在那里寫入。
反而:
chown -R vagrant:www-data /home/vagrant/code/abc-backend/storage chmod -R g+w /home/vagrant/code/abc-backend/storage
嘗試這個:
chown -R vagrant:www-data /home/vagrant/code/abc-backend/storage chmod -R g+sw /home/vagrant/code/abc-backend/storage
將+s
設置粘滯位,以便在該路徑下創建的任何新文件夾或文件將自動歸同一組(在本例中為 www-data)所有。

TA貢獻1780條經驗 獲得超5個贊
你能嘗試一下嗎
folders: - map: ~/Sites to: /home/vagrant/code options: mount_options: ['dmode=777','fmode=777']
- 5 回答
- 0 關注
- 287 瀏覽
添加回答
舉報