授予 apache rw 访问权限

授予 apache rw 访问权限

由于某种原因,apache 似乎无法写入其自己的目录!(/var/www)。error_log 根本无法输出到文件。任何帮助都很好

我使用的是 ubuntu 12.04,带有 apache2 和 php-mod。我注意到每个 ubuntu 安装都存在同样的问题,所以它不是本地的。似乎 apache2 包的 vanilla 配置没有授予其自身的写入权限/var/www

以下是有关权限的更多信息:

$ ls -l /var/www
total 20
drwxrwxr-x 7 jenkins www-data 4096 Apr 22 14:09 healthtrustsoftware
-rwxrwxr-x 1 jenkins root      177 Mar 27 23:00 INDEX.html
drwxrwxr-x 2 root    root     4096 Apr 30 09:38 nas
drwxrwxr-x 2 jenkins www-data 4096 Mar 27 23:30 test
-rwxrwxr-x 1 root    root       48 Apr 30 09:35 test.php

ps -ef | grep apache 输出:

$ ps -ef | grep apache
root     13331     1  0 Apr26 ?        00:00:02 /usr/sbin/apache2 -k start
www-data 16540 13331  0 Apr28 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 16541 13331  0 Apr28 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 16542 13331  0 Apr28 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 16543 13331  0 Apr28 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 16544 13331  0 Apr28 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 21876 13331  0 09:25 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 21877 13331  0 09:25 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 21878 13331  0 09:25 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 21879 13331  0 09:25 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 22203 13331  0 09:29 ?        00:00:00 /usr/sbin/apache2 -k start
xxxxxx   23099 22965  0 10:18 pts/1    00:00:00 grep --color=auto apache

此外,error_log 似乎甚至没有创建该文件。

Jenkins 用户拥有所有权,因为我们使用 jenkins 通过 FTP 进行自动部署。但是,整个 www-data 组应该具有与主用户相同的权限,并且由于 apache 应该是 www-data 组的一部分,所以这应该可以工作,不是吗?谢谢你的帮助

答案1

您应该检查您的服务器是否处于只读模式,创建一个测试文件并输入一些测试然后保存并退出,如果可以,则意味着它不在只读模式下。

检查服务器上的磁盘空间如下:

DF-H

如果一切正常,则检查 error_log 文件的属性。

答案2

嗯,我明白了,哈哈。

我返回一个目录,发现所有权属于 jenkins 和 ROOT 组,而不是 www-data 组。所以我这样做了:

cd /var
sudo chown -R jenkins:www-data www

现在它可以工作了。

相关内容