新規のLaravelのプロジェクトは、以下の実行で作成できます。
$ laravel new blog
/blog
のディレクトリが作成され、そこには以下のようなディレクトリやファイルが作成されます。
app/ bootstrap/ config/ database/ public/ resources/ storage/ tests/ vendor/ artisan composer.json composer.lock gulpfile.js package.json phpunit.xml readme.md server.php
/public
のディレクトリがウェブサイトのルートとなる仮定で、その他のディレクトリはユーザーからはアクセスできないという仮定なのですが、
しかし、現実は使用するサーバーの都合により、このpublic
のディレクトリを違う場所に移動する必要があります。
例えば、
public
を
/usr/www/demo/webdocs
に、
その他のディレクトリやファイルは、ウェブがアクセスできない以下に
/usr/www/demo/blog
この変更に必要な設定は、Laravelではとても簡単です。
public/index.php
、移動後では、/usr/www/demo/webdocs/index.php
を編集するだけです。
... require __DIR__.'/../bootstrap/autoload.php'; ... $app = require_once __DIR__.'/../bootstrap/app.php'; ..
を
... require '/usr/www/demo/blog/bootstrap/autoload.php'; ... $app = '/usr/www/demo/blog/bootstrap/app.php'; ..
と書き換えるだけです。
しかし、ここで1つ問題は、Laravel定義のpublic_path
関数が返す値が、
/usr/www/demo/blog/public
となります。
これを修正するには、
... require '/usr/www/demo/blog/bootstrap/autoload.php'; ... $app = '/usr/www/demo/blog/bootstrap/app.php'; $app->bind('path.public', function() { return __DIR__; }); ..
と、path.public
を設定する必要あります。
それにより、public_path
関数が返す値は、
/usr/www/demo/blog/webdocs
となります。
メルマガ購読の申し込みはこちらから。