これは、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サイトを開発するためのものであり、それが答えに役立つ場合はそうです。
エラーメッセージには次のように書かれています。
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