thinkphp5日誌檔案許可權的問題

2022-06-27 05:21:13 字數 924 閱讀 5300

由於www使用者和root使用者(比如command的cli程序日誌)都有可能對log檔案進行讀寫。

如果是由www使用者建立的log檔案,不會出任何問題。

但是如果是先由root使用者建立的log檔案,然後再到www使用者角色去寫,就會出問題了

因為一般預設建立的log檔案的許可權是  -rw-r--r-

也就是www沒有許可權去寫入root使用者建立的log檔案。

網上的方法大體就是像下面**一樣在mkdir的時候修改目錄的許可權 

//thinkphp/library/think/log/driver/file.php

$destination = $this->getmasterlogfile();

$path = dirname($destination);

if (php_sapi != 'cli') else

但是上面只能修改資料夾的許可權,並沒有修改資料夾下具體的.log檔案的許可權。

【解決辦法】:

修改檔案:\thinkphp\library\think\log\driver\file.php裡的write()函式

else

//return error_log($message, 3, $destination);

/** 解決root生成的檔案,www使用者沒有寫許可權的問題 by werben 20190704 begin */

if (!is_file($destination))

$ret = error_log($message, 3, $destination);

try

} catch (\exception $e)

return $ret;

/** 解決root生成的檔案,www使用者沒有寫許可權的問題 by werben 20190704 end */

...}

ThinkPHP5許可權管理

自己寫的許可權管理,大致思路 使用者登陸成功之後,查出該使用者的許可權列表,並把許可權列表存到session中,進入系統後,再判斷該模組是否在session中,如果存在就說明有該許可權,就顯示出來,如果沒有就說明沒有該許可權,就不顯示。可以按角色分配許可權,也可以給某個人自定義許可權,需要給角色分配...

ThinkPHP5下Auth許可權認證

admin管理員 表裡有admin1 admin2 adimn 3個管理員 auth group 管理員組 表裡有 超級管理員 普通管理員 文章發布管理員 auth rule 管理規則 文章新增 文章刪除 文章修改 文章檢視 auth group access 裡面只有兩個字段,uid 哪個使用者 ...

thinkPHP 5 配置檔案

慣例配置 核心框架內建的配置檔案,無需更改。應用配置 每個應用的全域性配置檔案 框架安裝後會生成初始的應用配置檔案 有部分配置引數僅能在應用配置檔案中設定。模組配置 每個模組的配置檔案 相同的配置引數會覆蓋應用配置 有部分配置引數模組配置是無效的,因為已經使用過。動態配置 主要是指在控制器或者行為中...