昨天,我终于能够通过在 /etc/sysconfig/httpd 脚本中将 umask 设置为 002 来让我的 apache 进程将文件写入目录,但我想知道是否可以在配置层设置这个 umask 指令?
我之所以这样做是出于可移植性的原因,因为我的 vhost 配置是版本控制的,并发布到远程服务器。我不想被迫手动配置每个服务器的 httpd 脚本(还没有 puppet)。
谢谢。
- 编辑 -
使用 Ruby/Capistrano 部署代码和配置文件
创建用户上传的文件时使用 PHP mkdir()。
我没有将目录设置为 777,而是创建了将拥有该目录的特定“filer”用户/组。然后将 apache 用户添加到该组。如果我不将 umask 设置为 002,那么我会收到权限被拒绝的错误,因为 apache 用户 != filer 用户,但 apache 用户在 filer 组中。
答案1
chmod()
由于您使用的是 PHP 代码,因此您可以umask()
根据需要使用 PHP 函数。
主要的 Apache umask 似乎只能按照您已经弄清楚的方式进行配置,而不是在配置本身的任何地方,因此在应用程序/代码中执行此操作是最好的方式。