Laravel4、ドキュメントルートが変更できない場合
タグ: Laravel4
共有サーバーの中にはドキュメントルートが変更できないものもあり、その状況じゃ使えないとツイートされていました。
実際には、簡単に使えます。元ネタは以下の英語サイトです。(正確に言えば、以下のサイトを参照しなくても、コメントを読んでもらったり、コードを追いかけてもらえば、何をすれば良いか分かるでしょう。)
以下の手順で、インストールルートをドキュメントルートへ変更できます。
1.publicフォルダーの中のファイルを全部、一つ上のインストールルートへ移動します。.htaccessも忘れずに!
2.ルートへ移動したindex.phpをエディターで開き、以下の2箇所を変更します。
... require __DIR__.'/bootstrap/autoload.php'; ... $app = require_once __DIR__.'/bootstrap/start.php'; ...
3.bootstrap/start.phpをエディターで開き、パブリックディレクトリーの位置を変更します。
'public' => __DIR__.'/..',
これだけです。後はインストールルートをドキュメントルートとしてアクセスしてください。
注意
ちょっと前のCMSや一部のフレームワークには、この様なフォルダー階層のものがありました。Laravelに限らず、他の最近のフレームワークでは、こうしたフォルダー階層を取っているものは少ないです。
理由は単純で、セキュリティーです。
index.phpより深い階層にコードがあるため、このままでは外部からのアクセスでコードが丸見えになってしまう可能性があります。
そこで最近のフレームワークやCMSはpublicをコードが置かれる階層と同じ、もしくは低い場所に置くのがデフォルトになっています。ドキュメントルートを変更し、publicを指定してもらうスタイルが主流です。
追記:この記事を書いた頃、ドキュメントにもこれに関する話がちらっと追加されました。