Dream of Electric Sheep

WEBやプログラムの忘備録

Laravel 5.1 のプロジェクト作成(インストール) その2

Laravelのイベントに参加するために茅場町のCOEDOに来ています。ただいまCOEDOから記事を投稿しております。

今回はhtdocs以外にLaravelをインストールしてみたいと思います。

【下準備】
Composerがインストール済とします。 Composerは下記URLからダウンロードできます。

https://getcomposer.org/download/

【Laravelのプロジェクト作成】
前回と同じですがインストール先はhtdocs以外の任意のフォルダです。
今回はEclipse(Aptana)のプロジェクトにしたいのでワークスペースフォルダ
(ここでは C:\pleiades\workspace)に作成します。

>cd C:\pleiades\workspace
>composer create-project laravel/laravel app_laravel --prefer-dist

インストールできたらバージョンの確認(一応)

>cd app_laravel
>php artisan --version

エイリアスの設定】
ここから前回とちょっと違うところです。htdocs以下ではないので、このままでは当然ブラウザからアクセスできません。なのでApacheの設定ファイルhttpd.confを編集します。ちなみにデフォルト設定でxamppをインストールした場合、C:\xampp\apache\confにあります。
余談ですが、こういう設定ファイルの編集は間違えると環境が壊れてしまうので、編集前のファイルを別名(httpd.conf_bkとかhttpd.conf_20150718とか)でコピーしバックアップしておくことをお勧めします。

Alias /app_laravel/ "C:/pleiades/workspace/app_laravel/public/"
<Directory "C:/pleiades/workspace/app_laravel/public/">
      Options All
      AllowOverride all
      Require all granted
</Directory>

記述する場所は <IfModule alias_module> ~ </IfModule> の間がいいでしょう。
この設定内容では /app_laravel/ にブラウザでアクセスしたら C:/pleiades/workspace/app_laravel/public/ を表示するよ!という意味になります。
設定が終わったらApacheを再起動し、ブラウザで

http://localhost/app_laravel/

にアクセスします。うまくいっていれば画面に Laravel5 と表示されます。

Hello World がうまくいかない?】
前回と同じくapp_laravel/app/Http にある routes.phpテキストエディタで開き、

Route::get('aaa', function () {
return 'Hello!';
});

と記述。ブラウザで以下URLへアクセスします。

http://localhost/app_laravel/aaa

しかし Hello! とは表示されずに404エラーになってしまいます。

.htaccessの編集】

上記問題を解決するためには、.htaccess の 編集を行う必要があります。.htaccess は Laravel インストールフォルダの public フォルダ直下にあるのでテキストエディタで開き、編集します。

 

編集前

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

 

編集後

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteRule ^(.*)/$ /app_laravel/$1 [L,R=301]
 
    RewriteBase /app_laravel

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

RewriteCond %{REQUEST_FILENAME} !-d を削除、
RewriteRule ^(.*)/$ /$1 [L,R=301] を
RewriteRule ^(.*)/$ /app_laravel/$1 [L,R=301] に編集、
RewriteBase /app_laravel を追記しています。

改めてブラウザで

http://localhost/app_laravel/aaa

を表示してみると、無事画面に Hello! と表示されました!

とりあえず、これで完成です。

 【Eclipse(Aptana)のプロジェクト作成】
Eclipse(Aptana)のプロジェクト新規作成をし、プロジェクト名に先ほど作成 した Laravelプロジェクトの名前(今回の例ならば app_laravel)を指定します。すでにフォルダがあるので警告が出ますが、かまわず[完了] ボタンを押せばプロジェクトが作れます。