Laravelとは
Laravelとは、最近使用されることが多いPHPフレームワークで、RESTfullなルーティングと美しいテンプレートを備えています。- artisanというコマンドを持ち、アプリケーションを構成する基本的なクラスなどを簡単に生成できる
- MVC、OR mapper、Composer、Generaterなどの機能が含まれている
- MITライセンスでオープンソースで開発されている
KUSANAGI でLaravelを使用してみる
KUSANAGIでLaravelを使用するためには、まずLAMP環境を用意します。target名はlaravel という名前にします。# PROF=laravel
# DBNAME=$(mkpasswd -l 10 -s 0 )
# DBUSER=$(mkpasswd -l 10 -s 0)
# DBPASS=%$(mkpasswd -l 20 -s 0)
# /usr/bin/kusanagi provision --lamp --fqdn ${PROF}.localdomain --noemail --dbname "$DBNAME" --dbuser "$DBUSER" --dbpass "$DBPASS" ${PROF}
# printf "PROF=$PROF\nDBNAME=$DBNAME\nDBUSER=$DBUSER\nDBPASS=$DBPASS" >> $PROF.txt
kusanagi ユーザで、Laravel のインストーラを導入します。以下のコマンドを実行することで、kusanagiのホームディレクトリにlaravel のインストーラがインストールされます。
$ composer global require "laravel/installer=~1.1"次に、laravelディレクトリからlog ディレクトリを移動し、一旦laravelディレクトリを削除します。
$ mv laravel/log . $ rm -rf laravelそして、以下のコマンドでlaravelの雛形を作成します。作成後、log ディレクトリを戻しておきます。
また、laravel以下のディレクトリ storageとbootstrap/cache に、httpd での書き込み権限を付与します。
$ composer create-project --prefer-dist laravel/laravel laravel $ mv ./log laravel $ chown -R :www laravel/storage laravel/bootstrap/cache $ chmod -R g+w laravel/storage laravel/bootstrap/cache次に、root権限で、httpdとNGINXのDocumentRootを変更します。
- /etc/httpd/conf.d/laravel_http.conf
- /etc/httpd/conf.d/laravel_ssl.conf
- /etc/nginx/conf.d/laravel_http.conf
- /etc/nginx/conf.d/laravel_ssl.conf
NGINXの場合は同様に、
root /home/kusanagi/laravel/public; と変更します。
最後に、kusanagi restart でkusanagiを再起動します。
Laravelの画面を表示する
hosts ファイルなどを変更し、ドメイン名とIPアドレスを書き換えて、Webブラウザで http://laravel.localdomain/ を確認します。
Laravel での最初の1歩
Laravelで「hello world」を表示してみましょう。 routes/web.php にHello World以下の文を追加します。<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
/*
| Hello World
*/
Route::get("/hello", function() {
print("<h1>Hello World!!</h1>");
return null;
});
ブラウザで、http://laravel.localdomain/hello にアクセスすると、以下のように表示されれます。つまり、/hello を GETしたときに、print()文でHTTP文を表示したわけです。

var_dump(gd_info()); 」なども表示できます。


DBとの接続
LaravelでDBと接続する場合は、.env に色々設定を書いておくと良さそうです。初期の状態では以下のようになっています。$ cat .env
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:gMk/dW7ZHJkg/AhqcXPGSpq3OcsYHCYvNQ9DkhtDSTo=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
DB_DATABASE/DB_USERNAME/DB_PASSWORDなどを、kusanagi provision 時に設定した値にすれば、DBに接続できるはずです。また、APP_URLや、APP_DEBUG、メールを使用するアプリケーションの場合はMAIL_HOSTやMAIL_PORTなども適宜設定しておくと良いでしょう。
KUSANAGI でのLaravelを運用するために
通常、Laravelは開発したものをgitに登録し、運用サーバでgit pull して運用するのが一般的なようです。開発サーバはVagrant上のKUSANAGIで、運用はクラウド上のKUSANAGIで、と分けて運用するのが良さそうです。また、DBの情報も運用側と開発側で分けられるようなので、.env ファイルをgitignore などで分ける工夫が必要だと思われます。 このように、KUSANAGIでも簡単にLaravelを運用できそうなことがわかりました。では、次回をお楽しみに。





