亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel - 不斷收到日志和框架數據緩存錯誤

Laravel - 不斷收到日志和框架數據緩存錯誤

PHP
白衣染霜花 2023-08-19 17:35:51
我在 Homestead 環境中使用 Laravel 6.x,最近當我嘗試通過 Angular 前端登錄時出現了一些奇怪的錯誤 - 一旦它到達登錄端點,它就會給我一些奇怪的錯誤(見下文)The stream or file "/home/vagrant/code/abc-backend/storage/logs/laravel-2020-07-23.log" could not be opened: failed to open stream: Permission denied由于某種原因,上面的文件不存在(存在其他日期的其他日志文件,但不存在 7 月 23 日的日志文件)。然后我手動創建了該文件,如下所示并將其 chmod 為 777:touch storage/logs/laravel-2020-07-23.log chmod 777 storage/logs/laravel-2020-07-23.log當我重新加載頁面時,之前的錯誤已經消失,但現在出現以下錯誤:file_put_contents(/home/vagrant/code/abc-backend/storage/framework/cache/data/1c/6e/1c6ea8378a1030f85a05f4cb2262de1e2164efa6): failed to open stream: No such file or directory",我還嘗試了以下方法,但沒有感到高興:chown -R vagrant:www-data /home/vagrant/code/abc-backend/storagechmod -R g+w /home/vagrant/code/abc-backend/storage我已經嘗試了很多方法來php artisan嘗試修復這些錯誤,包括 php artisan cache:clear毫無樂趣地運行命令 - 其他人可以讓我深入了解為什么我同時收到日志文件錯誤和緩存/數據錯誤以及修復它們的最佳方法兩個都?如果您需要有關我的設置的更多信息,請告訴我以提供幫助。
查看完整描述

5 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

你用什么作為網絡服務器?nginx 還是阿帕奇?

如果您使用的是 nginx,則需要更改存儲文件夾的組,如下所示。

chown -R vagrant:www-data storage

如果您使用的是apache,則需要更改存儲文件夾的組,如下所示。

chown -R vagrant:apache storage

或者請這樣做。(不推薦)

chmod -R 777 storage


查看完整回答
反對 回復 2023-08-19
?
青春有我

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 pullcomposer install、 cron 作業,也可能是其他作業。但這更有可能發生在協作環境中,而不是宅基地中。


查看完整回答
反對 回復 2023-08-19
?
桃花長相依

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 用戶。


查看完整回答
反對 回復 2023-08-19
?
qq_花開花謝_0

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)所有。


查看完整回答
反對 回復 2023-08-19
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

你能嘗試一下嗎

folders:
- map: ~/Sites
  to: /home/vagrant/code
  options:
    mount_options: ['dmode=777','fmode=777']


查看完整回答
反對 回復 2023-08-19
  • 5 回答
  • 0 關注
  • 287 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號