
Debian Testing の Apache で 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、「プロキシなし」設定:
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
更新1:
SELinux がインストールされていないようです:
$ aptitude search ~i | grep selinux
i libselinux1 - SELinux runtime shared libraries
更新2:
$ 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
答え1
サーバー設定によりクライアントが拒否されました: /home/username/Development/PHP/foo.dev.com/public_html/
これは私が抱えていた同様の問題について考えさせます:
www-data
ユーザーx
にビット権限が設定されていることを確認する各フォルダへの道/home/username/Development/PHP/foo.dev.com/public_html
www-data
フォルダの所有者を作成することによって:chown www-data
または、x
ビットを次のように付与しますothers
:chmod o+x
編集 :
ようやく再現できました。ディレクティブ%0
ではサポートされていないようです<Directory>
。代わりに を追加して修正しました*
:
UseCanonicalName Off
<VirtualHost *>
VirtualDocumentRoot "/home/username/Development/PHP/%0/public_html/"
<Directory "/home/username/Development/PHP/*/public_html/">
Require all granted
</Directory>
</VirtualHost>
答え2
<Directory>
-directive がパス名の一部として受け入れられるかどうかはわかりませんが%0
、ドキュメントでは正規表現のみが記載されています。http://httpd.apache.org/docs/current/mod/core.html#ディレクトリ
一方、「%0」は vhost_alias モジュールの一部です。Apache のドキュメント
変更してみるといいかもしれません
<Directory "/home/username/Development/PHP/%0/public_html/">
に:
<Directory "/home/username/Development/PHP/">
これが当てはまるかどうか確認してください。おそらく正規表現でも試すことができます/home/username/Development/PHP/*/public_html/
答え3
サーバー設定によりクライアントが拒否されました: /home/username/Development/PHP/foo.dev.com/public_html/
...ということは明らかです。
ls -la /home/username/Development/PHP/foo.dev.com/
... drwx--x--x 8 ユーザー名 ユーザー名 4096 4月 3日 14:35 public_html
...Apache の uid にはディレクトリ (およびファイル) に対する READ 権限が必要です。修正するには:
chmod -R o+r /home/username/Development/PHP/foo.dev.com/