91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

daily日志文件寫入失敗的原因及解決方案

發布時間:2021-10-20 15:47:49 來源:億速云 閱讀:160 作者:柒染 欄目:大數據

daily日志文件寫入失敗的原因及解決方案,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

用過Laravel的小伙伴一開始安裝完框架后可能都遇到過daily 日志文件寫入失敗的問題,接下來我們就來詳細說下日志文件寫入失敗的原因以及對應的解決方案。

在講這個問題之前可能需要簡單介紹下Linux系統下的文件的Ownership和Permission。

  • Ownership

    • User

      User是文件的所有者,默認情況下,用戶創建了一個文件,該文件的所有者就是該用戶。

    • Group

      一個用戶組能包含多個用戶,所有屬于這個組的用戶都有相同的權限來訪問文件。假設你有一個項目,很多用戶都需要訪問這個項目文件的權限,你不需要手動賦予這些用戶所有權限,你只需要把這些用戶加到一個組里面,賦予這些組有訪問文件的權限,這樣一來就僅僅只有組里面的成員能對文件進行讀寫操作。

    • Other

      任何其他的用戶都能訪問文件,因此,給Other用戶賦予權限,相當于所有用戶都擁有這個權限。

  • Permission

    在 UNIX/Linux 系統中每一個文件和目錄都有3中權限,以下就是對三個所有者的討論。

    • Read: 這個權限賦予你打開和讀取文件的權限。擁有目錄的讀權限,你能列出其內容。

    • Write: 擁有了讀權限,你能修改文件的內容。擁有了目錄的寫權限,你能添加、移除以及重命名該目錄下的文件。考慮一種場景,當你擁有文件的寫權限,但是沒有文件存儲目錄的寫權限,你還是能修改文件的內容,但不能重命名、移動以及移除目錄下的文件。

    • Execute: 在Windows系統中,一個可執行的程序通常都有.exe后綴,你能很方便的運行它。在 UNIX/Linux 中,除非被賦予可執行權限,否則你將不能運行該程序。如果未授權可執行權限,你讓然可以看并修改程序代碼(被授予讀和寫權限),但是無法運行它。

daily日志文件寫入失敗的原因及解決方案

linux下文件信息的顯示截圖

daily日志文件寫入失敗的原因及解決方案

linux下目錄的信息顯示截圖

以上的截圖顯示了一個文件和文件夾的信息,我們可以看到:

  • r 代表可讀, w 代表可寫, x 代表可執行。

  • 第一位文件顯示 - ,文件顯示 d

  • 上面第一張圖片, rw-rw-r-— 中。第一組 rw- 表示文件的所有者對文件有可讀、可寫、不可執行的權限。第二組 rw- 表示文件所屬的組內用戶對該文件有可讀、可寫、不可執行的權限。第三組 r-— 表示其他任何用戶對該文件有可讀、不可寫、不可執行的權限。

  • rw-rw-r-- 用二進制表示為 664 ,每一位如有權限則為 1 ,否則為 0 ,第一個三位 rw- 用二進制表示為 110 轉化為十進制就是 6,后面兩組依次類推,最后得到 664

  • 上面第一張圖片的 dior www-data 表示該文件的所有者是 dior 用戶,文件屬于 www-data 組。

我們知道很多應用系統中的日志是寫文件的,且是以日期來命名文件的。所以第一次創建日志的用戶就顯得尤為重要,如果文件創建的 OnwerGroup 不對,其他的用戶觸發寫入日志文件就會失敗。

接下來我們討論下有多少種不同的用戶可能創建日志文件:

  • Crontab中執行的定時任務,跟創建 Crontab 的用戶有關,此時創建的文件 OwnerGroup 值分別是該用戶以及默認的 Group

  • 一些常駐的后臺進程,比如Laravel中的 queue work ,此時創建的日志文件 OwnerGroup 值分別是執行該進程的用戶以及所屬的默認 Group

  • 正常用戶訪問網站產生的日志文件,此時創建的日志文件的 OwnerGroup 都是 www-datawww-data 用戶是web服務器默認的用戶。

由以上的分析,我們大概已經找到了解決問題的方法。

  • 執行用戶創建日志文件的權限為 664 比較恰當,這就需要當前用戶的umask為 0002

  • 當前執行用戶的默認 Group 應該設置為 www-data

下面就說下我的具體解決方案:

指定www-data用戶執行crontab:

sudo crontab -u www-data -e

Laravel中修改創建日志文件的權限:

編輯 confog/logging.php 文件

添加 'permission' => 0664

'daily' => [
		'driver' => 'daily',
		'path' => storage_path('logs/laravel.log'),
		'level' => 'debug',
		'days' => 14,
		'permission' => 0664,
],

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五大连池市| 芒康县| 金堂县| 长宁县| 东至县| 盘锦市| 金平| 稻城县| 芜湖市| 东宁县| 碌曲县| 新郑市| 荃湾区| 辽阳市| 竹山县| 永德县| 疏附县| 孝义市| 安溪县| 翁源县| 海口市| 阜新| 镇康县| 永平县| 仁布县| 丹棱县| 琼海市| 陆丰市| 姜堰市| 铜山县| 读书| 谢通门县| 普宁市| 锡林郭勒盟| 通河县| 西盟| 秭归县| 额济纳旗| 台中县| 石首市| 眉山市|