WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:シンボリックリンクファイルにアクセスしようとすると403 Forbidden

0:[投稿] 9℃ [2008/04/02 17:06 ][URL] [環境:Firefox 2.0.0.13 Apache 2.2.4]

初めて質問させていただきます。

別フォルダにあるファイルのシンボリックリンクファイルを置いて、
それにアクセスしたいのですが、403 Forbidden と出てファイル内容が表示されません。

具体的には、
あるフォルダ(下記例では /test )にファイルを準備しておき(非公開)、
公開したいファイルだけルートディレクトリにシンボリックリンクファイルを作成し、
参照できるようにする、といった使い方を考えています。

ルートにコピーしてきてもいいのですが、
その後ファイルを更新する際、2つのファイルをそれぞれ更新しなくてはいけなくなるので、
手間と整合性の面で、シンボリックリンクにした方がいいと考えました。

環境の詳細は以下の通りです。

[OS] Mac OSX 10.4.11
[WebServer]
Server version: Apache/2.2.4 (Unix)
Server build:   Oct 17 2007 16:59:53
[設定(httpd.conf)]
DocumentRoot "/Library/WebServer/Documents/"
<Directory />
   Options FollowSymLinks
   AllowOverride None
</Directory>
<Directory "/Library/WebServer/Documents/">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

[ファイル情報]
cd /Library/Webserver/Documents
ls ./test.html

-rw-r--r-- 1 myname admin 16658 4  2 16:43 ./test.html

ls ./test/test*.html
lrwxr-xr-x 1 myname admin    11 4  2 16:45 ./test/test.html@ ->./test.html
-rw-r--r-- 1 myname admin 16658 4  2 16:46 ./test/test2.html

[元ファイル]
/Library/Webserver/Documents/test.html
[結果]
/Library/Webserver/Documents/test/test.html
(元ファイルのシンボリックリンク)
→403 Forbidden

/Library/Webserver/Documents/test/test2.html
(元ファイルのコピー)
→正常に表示される

以上、何か解決策をお教えいただけましたら幸いです。
(上記方針がいいのかどうかも含めて)
どうかよろしくお願いします。


1:[関連] 9℃ [2008/04/02 17:33 ]

補足です。以下に該当部分のログを記します。
シンボリックリンクへのアクセスは許しません、って言われてるのでそういう方法はだめなんでしょうか。

[error_log]
[Wed Apr 02 16:45:54 2008] [error] [client 127.0.0.1] Symbolic link not allowed or link target not accessible: /Library/WebServer/Documents/test/test.html

[access_log]
127.0.0.1 - - [02/Apr/2008:16:45:54 +0900] "GET /test/test.html HTTP/1.1" 403 216 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ja-JP-mac; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13"
127.0.0.1 - - [02/Apr/2008:16:46:20 +0900] "GET /test/test2.html HTTP/1.1" 200 16658 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ja-JP-mac; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13"


2:[回答] 古のもの [2008/04/02 23:55 ]

そもそも、そのシンボリックリンクって正しく張れてないように見えます。

> lrwxr-xr-x 1 myname admin    11 4  2 16:45 ./test/test.html@ ->./test.html
「->./test.html」って「同じディレクトリのtest.htmlへのシンボリックリンク」、
つまりは、自分自身を指すシンボリックリンクになっちゃってます。
Apacheでアクセスする前にシェル上とかでちゃんとアクセスできるか確認しました?

「1つ上のディレクトリのtest.htmlへのシンボリックリンク」だったら
「->../test.html」になるはずです。

MacOS X ってことはユーザランドは FreeBSD から派生してるはずだけど
うちの FreeBSD ではシンボリックリンクの動作はそうなりますよ。


3:[完了] 9℃ [2008/04/03 10:09 ]

おおおお、すいませんでした。

古のものさんのおっしゃる通り、リンクを設定し直したら正常動作しました。

お騒がせしました&ありがとうございました。


4:[関連] 9℃ [2008/04/03 10:54 ]

補足です。
シンボリックリンクを設定する際、相対パスでファイルを指定したら、リンクの内容はカレントディレクトリからの相対パスではなく、作成されたリンボリックリンクからの相対パスになってしまう、ということに気づいていなかったのが原因だったと思います。

例:同じ階層にある別フォルダからのシンボリックリンクを作成
(test2/test.html -> test/test3.html)

cd /Library/Webserver/Documents/
mkdir test2
cd test2
cp ../test.html ./
ln -s ./test.html ../test/test3.html
ls -l ../test
lrwxr-xr-x  1 myname admin     12 4  3 10:09 test1.html@ -> ../test.html
-rw-r--r--  1 myname admin  16658 4  2 16:46 test2.html
lrwxr-xr-x  1 myname admin     11 4  3 10:51 test3.html -> ./test.html

回答(必須): 状態:

お名前(必須):

URL:




[戻る]