プログラミングメカブログ

Adults cling to the past, Children want to escape to the future

プログラミングメカブログ

Adults cling to the past, Children want to escape to the future

2月

05

Laravel5をイチからインストール!

  • POSTED BY 小谷松 丈樹 IN 創作
  • No Comments

Laravel5

Laravel_-_The_PHP_Framework_For_Web_Artisans
個人的に注目しているPHPフレームワーク「Laravel」がバージョン5.0.0をリリースしました。
Laravel4は以前インストールしましたが、今回はサーバの用意からまるっとまとめてみます。

目標

サーバの立ち上げからLaravelのインストール、Hello Worldまで。

環境

サーバ

  • Amazon EC2

ミドルウェア・モジュール

必要な情報は公式から

  • PHP >= 5.4
  • Mcrypt PHP Extension
  • OpenSSL PHP Extension
  • Mbstring PHP Extension

構築開始

サーバ立ち上げ

AWSコンソールに入ってサーバを立ち上げます。Launch Instanceから
EC2_Management_Console_3
Amazon Linux AMIでいきましょう。
EC2_Management_Console_1
あとは適宜サーバスペック等を設定。
といってもいじる所は特になく、Security Groupくらいでしょうか。
EC2_Management_Console_2

  • SSHをMy IPに
  • HTTPをフル解放

適当にpemファイルを設定して起動!
5分ほど待って…
EC2_Management_Console
Instance State が running に変わりました。起動完了ですね。
適当にInstanceに名前を付けておきますかね、”Laravel5″とかに。

サーバ設定

SSHログイン

サーバ立ち上げ時に作成あるいは設定したpemキーを使ってSSHログインします。
ついでにrootのパスワード設定まではやっておきましょう。

これでいいや。

ミドルウェアインストール

それではApache,PHPをインストールしましょう。
環境は以前のインストール時に触れた通りですが下記となります。

PHP5.4以上がapache2上及びコンソール上で動く環境

という事でまずはApache

次にPHP、ですが、今回はPHP5.5を入れます。
どこかしらで、Laravelの便利機能artisanコマンドが「PHP5.5以上でないと使えない」
と読んだ気がするんですが、今その文献が見つけられず、勘違いっぽいですが一応5.5を入れます。

--enablerepo=remi --enablerepo=remi-php55 としても、デフォルトのリポジトリ amzn-main が指定され、
PHPのバージョンが 5.3.29-1.7.amzn1 となっていますね。
もちろんこれではLaravelが動かないので、「N」でインストールを中止します。
リポジトリamzn-main を指定しないようにする --disablerepo=amzn-main オプションを付けて再度実行

remiリポジトリから、PHP5.5を指定してインストールを行うようになりました。

これでPHPのインストールも完了です。

Laravelのインストール

まずはおなじみ Composer.phar のインストールです。

/var/www/ で実行したら、 /var/www/laravel/public がドキュメントルートになった感じですね。

ec2-54-65-235-96_ap-northeast-1_compute_amazonaws_com
インストール完了!
必要最低限の設定しかしていないので、この設定のままだと問題はあると思いますけど。

触ってみる

Hello worldくらいまで触ってみます。

ルーティング

ルーティングファイルの場所が app/Http/routes.php と変わってますね。

という事で、ルートを軽く付け足してみます。

ec2-54-65-235-96_ap-northeast-1_compute_amazonaws_com_hello
はいはい、ハロワハロワ。

artisan

Controllerを作成したり、マイグレーションを提供したりと、
色々と便利機能の詰まったartisanコマンドも見てみましょう。

このコマンドを叩くと、Controllerクラス置き場の app/Http/Controllers/ の下に、
HogeController.php が自動で作成されます。
中身は、空関数の集まりですが、データのCRUDに適した関数郡が設置されていて、

上記ルーティングを app/Http/routes.php に追記するだけで、
/hoge でアクセスした場合は index() が動き、
/hoge/create でアクセスした場合は create() が動き、
/hogeにPOST でアクセスした場合は store() が動くなど、
プログラムの大枠が提供されるようになっています。すてき。

View

LaravelはBladeというテンプレートエンジンを利用しています。
正規表現の置換でテンプレートをコンパイル?出力するから動作が高速だとかなんとか。
個人的にはデザインの共通化も簡単ですてきだと思います。
Viewの置かれるディレクトリは project/resources/views/ です。
先ほど /hoge/ にルートを設定したので、

としてビューを作成します。

resources/views/hoge/index.blade.php@extends('hoge.layouts')
ベースのレイアウトとなる hoge/layouts.blade.php のテンプレートを取得して、
hoge/layouts.blade.php@yield('content') の位置に、

の中身を出力するって感じです。
BladeはPHPとしては独特な記法にはなってしまいますが、テンプレートの継承って思想が面白くて好きです。

で、コントローラで、先に作ったテンプレートを出力するように追記します。

viewの作成も簡潔で分かり易くなってますね。

以上でルート、コントローラ、ビューが全て設定完了しました。

ec2-54-65-235-96_ap-northeast-1_compute_amazonaws_com_hoge

コニチワー!!

最も大事な事を忘れないように。。。
EC2_Management_Console_5
サーバは立ち上げっぱなしだとどんどんお金がかかります。
テストが終わったらしっかりSTOPに。

Tags : | |

コメントを残す

Please type the characters of this captcha image in the input box

Please type the characters of this captcha image in the input box