在Debiantesting中,我得到了一个403错误信息。
Apache版本:
# aptitude show apache2 | grep -i version Version: 2.4.9-1 # ls -la /home/ total 28 drwxr-xr-x 4 root root 4096 Apr 3 13:19 . drwxr-xr-x 23 root root 4096 Apr 4 07:28 .. drwx------ 2 root root 16384 Apr 3 13:13 lost+found drwx--x--x 36 username username 4096 Apr 7 13:30 username # ls -la /home/username/Development/PHP/foo.dev.com/ total 16 drwx--x--x 4 username username 4096 Apr 3 14:35 . drwx--x--x 6 username username 4096 Apr 3 14:36 .. drwx--x--x 2 username username 4096 Apr 3 14:35 logs drwx--x--x 8 username username 4096 Apr 3 14:35 public_html # cat /etc/apache2/sites-enabled/dev.com.conf UseCanonicalName Off <VirtualHost *> VirtualDocumentRoot "/home/username/Development/PHP/%0/public_html/" <Directory "/home/username/Development/PHP/%0/public_html/"> Require all granted </Directory> </VirtualHost> # cat /var/log/apache2/error.log [Mon Apr 07 14:08:15.069251 2014] [authz_core:error] [pid 8649] [client 127.0.0.1:48578] AH01630: client denied by server configuration: /home/username/Development/PHP/foo.dev.com/public_html/
Firefox,“No proxy for”configuration: localhost, 127.0.0.1, *.dev.com
# cat /etc/hosts: hosts hosts.allow hosts.deny root@username:/home# cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 username.mymachine.local username # Custom 127.0.0.1 teste.dev.com # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
SELinux似乎没有安装:
$ aptitude search ~i | grep selinux i libselinux1 - SELinux runtime shared libraries
$ ls -la /home/ total 28 drwxr-xr-x 4 root root 4096 Apr 3 13:19 . drwxr-xr-x 23 root root 4096 Apr 4 07:28 .. drwx------ 2 root root 16384 Apr 3 13:13 lost+found drwx--xr-x 38 username username 4096 Apr 9 08:26 username
客户端被服务器configuration拒绝:/home/username/Development/PHP/foo.dev.com/public_html/
这让我想到了一个类似的问题:
确保www-data用户为/home/username/Development/PHP/foo.dev.com/public_htmlpath上的每个文件夹设置了x位权限
通过使www-data文件夹的所有者: chown www-data
或者将x位授予others : chmod o+x
编辑:
最后我已经能够重现。 在<Directory>指令中似乎不支持%0 。 我已经纠正了这个添加*代替:
UseCanonicalName Off <VirtualHost *> VirtualDocumentRoot "/home/username/Development/PHP/%0/public_html/" <Directory "/home/username/Development/PHP/*/public_html/"> Require all granted </Directory> </VirtualHost>
我不确定是否<Directory> -directive接受%0作为path名的一部分,在文档中只提到了regexps: http : //httpd.apache.org/docs/current/mod/core.html#directory
而'%0'是vhost_alias-module的一部分: http ://httpd.apache.org/docs/current/mod/mod_vhost_alias.html
你可以尝试改变
<Directory "/home/username/Development/PHP/%0/public_html/">
至:
<Directory "/home/username/Development/PHP/">
看看是不是这样 你也可以尝试使用正则expression式/home/username/Development/PHP/*/public_html/
客户端被服务器configuration拒绝:/home/username/Development/PHP/foo.dev.com/public_html/
这应该是显而易见的….
ls -la /home/username/Development/PHP/foo.dev.com/
… drwx – x – x 8用户名用户名4096 Apr 3 14:35 public_html
…在Apache目录(和文件)需要读取权限。 修理:
chmod -R o+r /home/username/Development/PHP/foo.dev.com/