由于某种原因,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
现在它可以工作了。