web-dev-qa-db-ja.com

Apache 2シンボリックリンクが許可されていないか、リンクターゲットにアクセスできません

私のApacheサーバーはユーザーfooとして実行されます。

私はいくつかのRailsアプリケーションを/ home/foo/app1/home/foo/app2に持っています。それらのそれぞれには仮想ホストがあります

<VirtualHost *:80>
    ServerName app1.foobar.com
    ServerAlias www.app1.foobar.com
    DocumentRoot /var/www/html/app1/current/public
    RailsEnv production
    <Directory /var/www/html/app1/current/public>
    AllowOverride all
     Options -MultiViews
    </Directory>
</VirtualHost>

/ var/www/html/app1にシンボリックリンクがあります:

current -> /home/foo/app1/tmp_20102611

すべてのファイル許可が正しく設定されています(ユーザーfooグループfoo)。シェルからファイルシステムを通過できます。

SELINUXが無効になっています

DistroはCentOs5.5です

上記のシンボリックリンクは、error_logに403とエラーエントリを取得します

シンボリックリンクが許可されていないか、リンクターゲットにアクセスできません:/ var/www/html/app1/current

/ home/fooではなく/ var/www/htmlのサブディレクトリにアプリをシンボリックリンクすると機能します。

アプリを/ home/fooディレクトリに配置したままこ​​のエラーを回避するにはどうすればよいですか?

2
astropanic

私は非常によく似た問題を抱えていました。あなたと同じように、FollowSymlinksを有効にしていて、httpユーザーと一緒に移動できたにもかかわらず、ホームディレクトリの下でシンボリックリンクをたどることができませんでしたが、/ srv/httpの下にシンボリックリンクを配置しても問題なく動作しました... chmodで修正しました。ホームディレクトリを実行可能にする:

chmod +x /home/mgalgs

そして、それは私のためにそれをしました!多分試してみてください

chmod +x /home/foo/app1
8
mgalgs

オプションを設定してみてください

Options +FollowSymLinks 

構成内。詳細については、ドキュメント ここ を参照してください。

1
pacey