Dav*_*wry 7 apache permissions logging
我的apache错误日志已满
Error opening file for reading: Permission denied
Error opening file for reading: Permission denied
Error opening file for reading: Permission denied
Run Code Online (Sandbox Code Playgroud)
等等
如何确定导致此权限错误的文件的文件或文件夹?出现的错误与access_log请求之间没有直接关系.
谷歌搜索建议我应该使用strace但是当我这样做
strace apache2
Run Code Online (Sandbox Code Playgroud)
要么
strace -etrace:open apache2
Run Code Online (Sandbox Code Playgroud)
响应很冗长,因为之前我还没有成功使用过这个工具,我不知道该找什么.这是一个出现的痕迹.
.....
open("/lib/x86_64-linux-gnu/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
apache2: bad user name ${APACHE_RUN_USER}
Run Code Online (Sandbox Code Playgroud)
最后一行是唯一似乎可能是原因的行,但是我的网络服务器正在处理图像,以及如果apache用户不够,那将是一个问题的各种磁盘.
谢谢.
小智 2
我对 strace 不是很了解,但我认为您需要做一些其他事情才能让 Apache 按您想要的方式运行。
如果您只是运行 apache2 二进制文件,您的程序将因错误的用户名而停止(正如您所指出的),因为通常 apache 用户名/组被设置为配置的一部分(在我的 Ubuntu 12.04 安装上的 /etc/apache2/envvars 中) 。
我发现最简单的方法是在我的机器上找到 apachectl 脚本,然后搜索“start)”。您会发现一行如下所示:
$HTTPD ${APACHE_ARGUMENTS} -k $ARGV
您可以在此处添加您的 strace,使其看起来像:
strace -etrace:open -f $HTTPD ${APACHE_ARGUMENETS} -k $ARGV
您需要包含 -f 选项,因为 apache 将生成许多进程,并且您最有可能希望跟踪它们,至少这对我有用:)
归档时间: |
|
查看次数: |
1579 次 |
最近记录: |