This commit is contained in:
parent
c9bd7ce759
commit
641fb31178
|
|
@ -12,6 +12,47 @@ class AccessControl implements MiddlewareInterface
|
|||
{
|
||||
public function process(Request $request, callable $handler) : Response
|
||||
{
|
||||
|
||||
function setFileWritePermission($filePath, $permission = 0664) {
|
||||
// 检查文件是否存在
|
||||
if (!file_exists($filePath)) {
|
||||
// 如果文件不存在,先创建文件
|
||||
if (!touch($filePath)) {
|
||||
error_log("无法创建文件: $filePath");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查当前是否已有写入权限
|
||||
if (is_writable($filePath)) {
|
||||
return true; // 已有写入权限,无需修改
|
||||
}
|
||||
|
||||
// 尝试设置权限
|
||||
if (chmod($filePath, $permission)) {
|
||||
return true;
|
||||
} else {
|
||||
error_log("无法给文件设置权限:" . $filePath . "权限值:" . $permission);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 使用示例
|
||||
$logFile = '/rh/webman_duanju/runtime/logs/webman-' . date('Y-m-d') . '.log';
|
||||
// 确保目录存在
|
||||
$logDir = dirname($logFile);
|
||||
if (!is_dir($logDir)) {
|
||||
mkdir($logDir, 0755, true); // 创建目录,权限755
|
||||
}
|
||||
// 给文件设置写入权限(使用0664权限,比0666更安全)
|
||||
if (setFileWritePermission($logFile)) {
|
||||
echo "文件已拥有写入权限: $logFile";
|
||||
} else {
|
||||
echo "无法设置文件写入权限,请检查服务器配置: $logFile";
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 如果是options请求则返回一个空响应,否则继续向洋葱芯穿越,并得到一个响应
|
||||
$response = $request->method() == 'OPTIONS' ? response('') : $handler($request);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue