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
没有评论