ふたりはララベル (Laravel PHP Framework)

PHPフレームワークのLaravelの体験記を書いていきます。こんなタイトルのブログですが萌え系アニメは一秒たりとも観たことがありません。

LaravelのインストールディレクトリとURLを変更する

Laravelではpublic以外の全てのファイルとフォルダをweb rootではない場所に置くことが推奨されている。インストールにはこんなことが書いてある。

Laravelでは公開する必要があるファイルはpublicフォルダーに設置し、アプリケーションのコードとストレージを保護するように設計されています。publicフォルダーをサイトのドキュメントルート(もしくはWebルートとも呼ばれます)として設定するか、publicの中身をサイトのルートディレクトリーに設置し、Laravelの他の全ファイルをWebルート外へ置くことを推奨します。

私の場合は以下のようにフォルダ&ファイル移動することにした。

  • public以下のファイルを全て「C:\xampp\htdocs」直下に置く。publicを使わない。
  • Laravelの本体フォルダは「C:\xampp」直下に置く。

置いた後に「http://localhost/index.php」にアクセスすると、こんなエラーメッセージが出た。

Warning: require(C:\xampp\htdocs/../bootstrap/autoload.php):
failed to open stream: No such file or directory in
C:\xampp\htdocs\index.php on line 21

Fatal error: require():
Failed opening required 'C:\xampp\htdocs/../bootstrap/autoload.php'
(include_path='.;C:\xampp\php\PEAR')
in C:\xampp\htdocs\index.php on line 21

そりゃそうだ。index.phpに記述されているパスを変更しなくてわ。私の環境の場合は「C:\xampp」直下に「laravel」という本体フォルダがあるので、下記のようにパスに「laravel」を追記した。

|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/

require __DIR__.'/../laravel/bootstrap/autoload.php';

/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let's turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight these users.
|
*/

$app = require_once __DIR__.'/../laravel/bootstrap/start.php';

これで「http://localhost/index.php」でLaravelが動くようになった。

でもシンボリックリンクのほうがオススメ→Laravelとシンボリックリンク - ふたりはララベル (Laravel PHP Framework)