我用过
[root ~]$ echo "umask 002" >> /etc/sysconfig/httpd
[root ~]$ service httpd restart
重新启动 apache 多次,但每当我从脚本安装某些东西时,目录仍然不是可组写入的。
我应该怎么办
我检查了文件,umask 002 位于文件末尾
答案1
这是在 CentOS 中为 Apache 指定 umask 的标准方法之一。如果您的 init 脚本 (/etc/rc.d/init.d/httpd) 引用 /etc/sysconfig/httpd 文件,则要么未指定 umask,要么有其他东西覆盖了它。
文件是如何创建的?
答案2
Apache是以nobody
哪个用户身份运行的?这是相当常见的,,apache
并且www-data
都nobody
相当常见。尝试ps ax | grep apache
看看第一行显示什么,然后仔细检查您的配置。
如果nobody
是用户 apache 正在运行,那么你需要将sudo chown nobody.nobody /var/www/whatever/directory/
apache 需要 rwx 权限的目录的所有权更改为nobody
组nobody
然后 apache 将能够在该目录中创建文件,并且后续脚本也将能够将其插件等下载/安装到该目录中。
然后,正如我之前所说,您将从 Web 界面而不是从 shell 管理插件和脚本等。
在您的 apache httpd 配置文件中,有一行显示User username
username 是系统上运行 apache httpd 的用户的名称。您的配置文件可能位于,/etc/apache2/apache2.conf
但它可能会有所不同,特别是如果您运行的是旧版本(1.x)的 apache httpd。