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