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.txtkusanagi ユーザで、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文を表示したわけです。 ここにphpのコード、例えば「
var_dump(gd_info());
」なども表示できます。
間違ったコードを入れた場合はエラー画面が表示されます。これもLaravelの特徴となっています。
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を運用できそうなことがわかりました。では、次回をお楽しみに。