シンボリックリンク 403 Forbbitten & Symbolic link not allowed or link target not accessible

シンボリックリンク設定につまづき、3日間浪費してしまいました。次同じような場面に遭遇したときのための、解決メモnoteを残します。

エラー内容

シンボリックリンクを利用して、画像ファイルを表示したかったのですが、Chromeの開発者ツールにこんなエラーが表示されていました。

403 Forbbitten

「アクセス権がありません」ってことですが、シンボリックリンク先のパーミッション等を確認しても、755になっており間違いはありませんでした。

Apacheのエラーログを確認すると...

symbolic link not allowed or link target not accessible

「シンボリックリンクの構成もパーミッションも間違いないはずなのに!」

解決策(シンボリックリンクに相対パスを使用)

原因はパーミッションエラーでした。シンボリックリンク作成時に絶対パスを使用するのではなく、相対パスを使用することで解決しました。

具体的な原因は、絶対パスを使用したシンボリックリンクと、フォルダのパーミッションでした。絶対パスを使用した方がリンクが明示され分かりやすいのですが、ルートディレクトリ等へアクセスする必要がでてきます。ルートディレクトリ等の所有権が異なる時は注意が必要です。僕の場合は、絶対パス使用時にルートディレクトリへのアクセス権はなく、ここにアクセスしようとしてエラーが発生していました。

よってシンボリックリンクの構成を、絶対パスを使用するのではなく相対パス(リンク元からの相対パス)を使用しました。これによりルートディレクトリへのアクセスを避けることで、問題を解決しました。

このnoteが自分を含め他の誰かにも役に立てば幸いです。

この記事が気に入ったらサポートをしてみませんか?