如何修改Apache UMask?

Apache

1 前言

一个问题,一篇文章,一出故事。
笔者遇到运行于Apache账号的PHP创建文件时组没有写权限,为此我们尝试了许多方法都无法解决。
以下方法最为实在,即从代码声明umask。

2 最佳实践

2.1 普通的代码创建文件范例

vim /var/html/wwwroot/index.php

加入如下测试配置,

<?php
if ($fp = fopen(time() . '.txt', 'w')) {
          fwrite($fp, 'This is a simple test.');
            fclose($fp);
            echo "done";
} else {
          echo "error - cannot create file";
}
?>

2.2 声明umask创建文件范例

vim /var/html/wwwroot/index.php

加入如下测试配置,

<?php
umask(0007);
if ($fp = fopen(time() . '.txt', 'w')) {
          fwrite($fp, 'This is a simple test.');
            fclose($fp);
            echo "done";
} else {
          echo "error - cannot create file";
}
?>

参阅文档
======================
https://stackoverflow.com/questions/428416/setting-the-umask-of-the-apache-user
https://serverfault.com/questions/383734/how-do-i-set-default-umask-in-apache-on-debian

没有评论

发表回复

Apache
如何编译安装Apache+PHP8.1.33?

1 前言 笔者平素不喜欢简单的编译安装,因为很多系统管理员为了省事,编译安装的东西没有rpm包安装那 …

Apache
如何安装配置Oracle Linux 9.x httpd+php环境?

1 前言 一个问题,一篇文章,一出故事。 本章将完成Oracle Linux 9.x的Apache+ …

Apache
如何安装配置Oracle Linux 9.x httpd环境?

1 前言 一个问题,一篇文章,一出故事。 本章将完成Oracle Linux 9.x的httpd服务 …