web-dev-qa-db-ja.com

403ランプサーバー仮想ホストでは禁止

これは、Linux mint 16(Ubuntu 13.10に基づく)を実行している私の開発マシンにあります。私は次の方法でランプを取り付けました:

apt install lamp-server^

そしてApache2.4.6を実行しています

ランプをインストールしたら、phpinfo()を実行するためのinfo.phpファイルを作成しました。/var/wwwで、そしてもちろんそれはうまくいきました。私の開発マシンでは、ユーザーのホームフォルダーに〜/ public_htmlを作成するのが好きです。その中にvhostsフォルダーを作成します。

次に、public_htmlフォルダーをwww-data user:groupに追加し、myuserをwww-dataグループに追加し、ユーザーとグループに次の方法でrwxアクセスを許可しました。

chmod -R 775 /home/myuser/public_html

今私のpublic_htmlと子供たちは次のようになります

drwxrwxr-x    5 www-data www-data  4096 Apr  1 12:10 public_html

/etc/Apache2/sites-available/example.local.confを作成しました

<VirtualHost *:80>
    ServerName example.local
    DocumentRoot "/home/myuser/public_html/example.local.d"
    <Directory "/home/myuser/public_html/example.local.d">
            Options Includes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>

次に実行しました:

a2ensite example.local.conf
service Apache2 reload // I've also service Apache2 restart

次にexample.localに移動すると403が表示されます

Vhost.confファイルに対していくつかの異なる構成を試しました。 1つで私はエラーログを指定しました

私が得たerror.logで:

[Tue Apr 01 12:13:06.375465 2014] [core:error] [pid 14208] (13)Permission denied:          [client 127.0.0.1:45489] AH00035: access to / denied (filesystem path     '/home/myuser/public_html') because search permissions are missing on a component of the path

[Tue Apr 01 12:13:06.600588 2014] [core:error] [pid 14208] (13)Permission denied: [client 127.0.0.1:45489] AH00035: access to /favicon.ico denied (filesystem path '/home/myuser/public_html') because search permissions are missing on a component of the path

これを修正するにはどうすればよいですか?

P.S.これは、Drupalサイトを開発するためのものであり、それが答えに役立つ場合はそうです。

2
Daniel Toebe

エラーメッセージには次のように書かれています。

because search permissions are missing on a component of the path

これは、parentディレクトリがApacheによるトラバースを許可しないことを意味します。

つまり、ディレクトリを見つけるには、各ディレクトリでls -ldを順番に使用するか、(Linuxのみ) nameiを使用

namei -l /home/myuser/public_html

次に、アクセス許可が表示され、修正が必要なアクセス許可のあるディレクトリを見つけることができます。たとえば、次のように表示されます。

f: /home/myuser/public_html
drwxr-xr-x root   root   /
drwxr-xr-x root   root   home
drwx------ myuser myuser myuser
drwxr-xr-x myuser myuser public_html

この場合、/home/myuserは、ユーザー以外のユーザーのディレクトリトラバーサルを許可しません。したがって、次のように修正されます。

chmod +x /home/myuser
2
Michael Hampton