環境
- PHP 5.4.24
- Laravel 4.2.9
publicディレクトリを分離
laravelのディレクトリ構成は、アプリルート下にpublicディレクトリを配置しています。
レンタルサーバの公開ディレクトリに、このまま配置してしまうと、よけいなファイルやディレクトリが公開されてしまいます。
公開ディレクトリ以外にもファイルを配置できるレンタルサーバなら、非公開ディレクトリにアプリ本体を配置して、公開ディレクトリには、public以下を配置したいでしょう。
laravalでは、public/index.php内のパスを修正することで、ディレクトリを分離できます。
public/index.phpのbootstrap/autoload.phpとboostrap/start.phpのパスを修正します。
修正前
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
$app->run();
修正後
アプリ本体のパスへ修正します。パスは相対でも絶対でもよいでしょう。
require '/home/laravel/bootstrap/autoload.php';
$app = require_once '/home/laravel/bootstrap/start.php';
$app->run();
パッケージのファイルパス
利用しているパッケージによっては、パスの修正が必要となる場合もあるでしょう。
私の場合、ファイルアップロードに使っているCodeSleeve/laravel-staplerが利用するローカルファイルパスの修正が必要でした。
CodeSleeve/laravel-staplerのコンフィグレーションをpublishしているので、アプリ下のapp/config/packages/codesleeve/laravel-stapler/filesystem.phpを修正します。
/*-------------------------------
| Stapler File Path
---------------------------------
*/
// 'path' => ':app_root/public:url',
'path' => '/home/public_html/hoge:url',