成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),柯坪企業(yè)網(wǎng)站建設(shè),柯坪品牌網(wǎng)站建設(shè),網(wǎng)站定制,柯坪網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,柯坪網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

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

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

  • Ownership

    • User

      User是文件的所有者,默認(rèn)情況下,用戶創(chuàng)建了一個文件,該文件的所有者就是該用戶。

    • Group

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

    • Other

      任何其他的用戶都能訪問文件,因此,給Other用戶賦予權(quán)限,相當(dāng)于所有用戶都擁有這個權(quán)限。

  • Permission

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

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

    • Write:擁有了讀權(quán)限,你能修改文件的內(nèi)容。擁有了目錄的寫權(quán)限,你能添加、移除以及重命名該目錄下的文件??紤]一種場景,當(dāng)你擁有文件的寫權(quán)限,但是沒有文件存儲目錄的寫權(quán)限,你還是能修改文件的內(nèi)容,但不能重命名、移動以及移除目錄下的文件。

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

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

linux下文件信息的顯示截圖

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

linux下目錄的信息顯示截圖

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

  • r 代表可讀, w 代表可寫, x 代表可執(zhí)行。

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

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

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

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

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

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

  • Crontab中執(zhí)行的定時任務(wù),跟創(chuàng)建 Crontab 的用戶有關(guān),此時創(chuàng)建的文件 OwnerGroup 值分別是該用戶以及默認(rèn)的 Group 。

  • 一些常駐的后臺進(jìn)程,比如Laravel中的 queue work ,此時創(chuàng)建的日志文件 OwnerGroup 值分別是執(zhí)行該進(jìn)程的用戶以及所屬的默認(rèn) Group

  • 正常用戶訪問網(wǎng)站產(chǎn)生的日志文件,此時創(chuàng)建的日志文件的 OwnerGroup 都是 www-datawww-data 用戶是web服務(wù)器默認(rèn)的用戶。

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

  • 執(zhí)行用戶創(chuàng)建日志文件的權(quán)限為 664 比較恰當(dāng),這就需要當(dāng)前用戶的umask為 0002

  • 當(dāng)前執(zhí)行用戶的默認(rèn) Group 應(yīng)該設(shè)置為 www-data 。

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

指定www-data用戶執(zhí)行crontab:

sudo crontab -u www-data -e

Laravel中修改創(chuàng)建日志文件的權(quán)限:

編輯 confog/logging.php 文件

添加 'permission' => 0664

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

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

分享文章:daily日志文件寫入失敗的原因及解決方案
文章起源:http://jinyejixie.com/article34/gpgcse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站制作、搜索引擎優(yōu)化網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
扎鲁特旗| 吉首市| 沁水县| 兴隆县| 永川市| 宜兰县| 牟定县| 乐昌市| 灌南县| 七台河市| 淅川县| 双峰县| 江西省| 衡山县| 丹阳市| 桦南县| 澄城县| 建湖县| 蒙山县| 油尖旺区| 留坝县| 乌拉特中旗| 高阳县| 南江县| 抚顺市| 溆浦县| 锦屏县| 高雄市| 鹤岗市| 密山市| 肥乡县| 平邑县| 临洮县| 潞西市| 仙桃市| 武隆县| 婺源县| 泗阳县| 洛浦县| 临高县| 肇州县|