如何修改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
如何部署Oracle Linux 9.x LAMP环境?

1 理论部分 – LAMP是Linux+Apache+MySQL+PHP的简写 &#82 …

Apache
如何传递真实IP到Apache后端?

1 前言 一个问题,一篇文章,一出故事。 本章需要实现前端反向代理(Nginx)的服务器需要传递客户 …

Apache
如何配置Apache的安全SSL/TLS?

1 基础知识 1.1 TLS版本现状 – 目前TLS 1.2和TLS 1.3以外的所有协 …