さいきん,Laravel を勉強する機会があり,一通り動かしてみました。
このあとは具体的なアプリケーションを作っていくわけですが……
ちょっと待てと!
「絶対これ,また設定詰むじゃん!」と。
ここまでやっただけでも,とにかく設定面に時間がかかりました。
そういうわけで,自分のアプリケーション作成&みなさまのお役に立てばと,以下に手順書や試行錯誤の過程を残しておきます。ドキュメントごとに微妙に扱っている範囲が違ったりするせいで,横断的な設定って最初苦しみますよね。
なお,この後に,postgreSQL / SQLite + Eloquent の設定についても書く予定です(が,思ったより記事書くのに時間がかかって面倒……)。
※ はじめにお読みください
ぼくの人生のゴールは「対人ストレスをミニマムにしながら,気の合う愉快なネクラ達と,『やっぱり人生は最悪だぜ!』と笑いながら,ゆるくプログラムを書いて生きていくこと」です。
中長期的には寺子屋的なものを目指していますが,短期的な野望は「労働時間をミニマムにして空いた時間を勉強とその共有にあてたい」です。
要するに何が言いたいかというと,ほしい物リストを公開しているので,なんかください!!!
前提条件
だいたい,以下のような調子で進めます。
項目 | 説明 |
---|---|
PC | Mac(homebrewインストール済み)。インストール以外は Windows もだいたい共通のはず |
知識 | 入門レベルのPC操作,git, PHP, HTML, CSS, Paas としての Heroku, フレームワークとしての Laravel |
ゴール | Laravel による CRUD 操作,PHPUnit の設定がひととおり行える状態(この記事では Hello world まで) |
やらぬ | Laravel の機能説明・文法的説明 |
DB | Heroku では posgresql, ローカルでは SQLite |
この記事ではリファレンスや入門ブログや入門書を片手に取り組んでいる人が,設定面で参考にする記事を目指しています。「Herokuってすごいよ。PaaS で工数減らして開発に注力だよ!」みたいな概念的な説明は行いません。
また,本記事作成時点では,ぼくはまだ Heroku で本番運用の webアプリケーションを開発したことがありません。そのため,記事の正確性やセキュリティリスクについては責任を持てません。「それヤバイよ」って内容は twitter で教えてくれるとありがたいです。また,新たな知見は追記していきます。
Laravel(というかウェブフレームワーク)すごすぎてwktkが止まらない。去年はじめてPHPはじめたときは便利機能をクラスにまとめてほくほくしてたけど、それが初めから、在る…!
— ひろきppoi (@HrkPPoI) 2017年11月14日
まっ,こまけえこたあいいんだよ!
とりあえず動かそうぜ!!!!!!
インストール
Laravel は,プロジェクト作成時にアプリケーションの大枠を自動で作ってくれます。そのため,Hello World をするまでであれば,自分でPHPプログラムを書く必要はありません。単純に設定設定アンド設定です。
用語 | 意味 |
---|---|
プロジェクト | プログラムをサービスの単位でまとめたもの。 |
Heroku にサインアップ&CLI クライアントのインストール
まずは Heroku にサインアップします。↓の URL から「Sign Up」をクリックし,ユーザー情報を入力してください。
次に,Heroku CLI をインストールします。以下のリンクからその内容を見ることができます。記事は英語なので, Google Chrome で開き,記事上で右クリックして「日本語に翻訳」を選択すると良いでしょう。
ターミナルを立ち上げ,brew install heroku/brew/heroku
と入力します。すると,ぐるぐると何やらインストールされます。これがうまくいかない場合は,homebrew がインストールされていないかもしれません。以下の記事が参考になると思います。
インストールが終わったら,ターミナルで heroku --version
と入力し,バージョン情報が表示されることを確認しましょう。
ここまでで,Heroku を利用する環境が整いました!!
用語 | 意味 |
---|---|
CLI | Command Line Interface の略。黒い窓(ターミナルやコマンドプロンプトなど)からサービスを操作するためのもの。GUI(Graphical User Interface)と比べるととっつきづらいが,基本的に手順書等があればコピペ一発で済むのでかえって楽である |
Heroku CLI | Heroku を利用するための CLI 。黒い窓で heroku ~ と打って操作する。 |
homebrew | ソフトウェアのインストールをターミナルから行うためのもの。 GUI と比べるととっつきづらいが,以下略 |
Composer のインストール
ここからは Laravel を利用するための準備となります。Laravel のインストールは一般に Composer によって行いますので,まずは Composer のインストールからやっていきましょう。以下のページにアクセスし,最新バージョンのリンクをクリックします。すると,composer.phar
というファイルがダウンロードされます。
次に,ダウンロードした Composer を usr/local/bin/
の配下に移動し,ファイル名を composer に変更させます。移動先は user/~
ではなく usr/~
なので注意しましょう。ダウンロードしたディレクトリでターミナルを開き,以下のコマンドを入力します。
sudo mv composer.phar /usr/local/bin/composer
さらに,Composer へのアクセス権を設定します。そのままターミナル上で以下のコマンドを入力します。
chmod a+x /usr/local/bin/composer
最後に,Composer を実行できることを確認します。ターミナルで composer
と入力してください。なにやらズラズラと表示されれば成功です。
もし -bash: composer: command not found
と表示された場合はヤバイです。
ls /usr/local/bin | grep composer
とターミナルに入力し,入力行の次の行に composer と表示されなければ,ファイル移動までのどこかで失敗しています。composer と表示されていればアクセス権付与に失敗しています。それぞれ場合に応じてググってみてください。
用語 | 意味 |
---|---|
Composer | PHP に関するソフトウェアのインストールを黒い窓から行うためのもの。GUI と以下略 |
sudo | 一般ユーザーが root ユーザー等でコマンドを実行するためのコマンド |
mv | ファイル移動のコマンド。mv コマンド後に書いた1つ目のファイルを,2つ目に書いた場所に移動する |
chmod a+x | chmod はファイルやディレクトリにアクセス権を付与するコマンド。a+x は,「全員に実行権限を(付与する)」という旨のオプション |
Laravel のインストール
Composer を使って Laravel をインストールします。インストールはコマンド一発です。嬉しいですね。
composer global require “Laravel/installer=~1.1”
インストールが終わったらパスを通します。
sudo nano ~/.bash_profile
とターミナルで入力します。すると,下のスクリーンショットのような画面になります(赤字下線の部分はこれから書くところなので,まだ書かれていません)。
赤下線部を .bash_profile ファイルの末尾に書き加え,Ctr+x でファイルを閉じます。Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
と尋ねられますが,y
(yesの意味)と入力します。
最後に Laravel が実行できることを確認します。ターミナルで laravel
と入力し,なにやらズラズラと表示されれば成功です。
ここまでで,必要なソフトは揃いました!!!
用語 | 意味 |
---|---|
nano | ターミナル上で動作するテキストエディタ。ほぼほぼ普通のテキストエディタの使い心地。 |
Hello, “Hello World!!”
ひとそろい用意ができたところで,ここからは実際にプログラムを作成します。
作成
通常のPHPでは,エディタ上で右クリックして「新しいファイルを作成」といった具合に新しいファイルを作ってきました。これに対して Laravel では,基本的には artisan を利用してファイルを作成していきます。
まずはターミナルで,新規にアプリを作りたいディレクトリに移動します。例えば,デスクトップに作りたいのであれば,cd ~/Desktop
となります。pwd
や ls
,tree
コマンドによって現在地を確認しておくといいでしょう。
任意のディレクトリに移動できたら,次のコマンドによって,プロジェクトを作成します。
laravel new _app_name_
_app_name_
の箇所には,好きな名前をはめ込んでください。その値がプロジェクト名となります。実行するとなにやらズラズラと画面に表示されます。
これでプロジェクトは完成(?)しました。
実行
完成したプロジェクトを実行します。
cd _app_name_
によってプロジェクトのディレクトリに移動し,php artisan serve
と打ちましょう。
Failed to listen on 127.0.0.1:8000 (reason: Address already in use)
と画面に表示された場合は,すでになんらかのアプリケーションが 8000番のポートを塞いでいます。以下のスクリーンショットの要領で起動済みのアプリケーションを終了させましょう *1 。
Laravel development server started: <http://127.0.0.1:8000>
とターミナルに表示されていることを確認し,
ブラウザを起動して http://127.0.0.1:8000
にアクセスします。
わあい!
用語 | 意味 |
---|---|
artisan | Laravel に含まれているコマンドラインインターフェイス。要するに黒い窓からいろんなことをするソフト。ファイルを作成したり,データベースを初期化したりできる。GUI と比べると略 |
cd | 「change directry」を表すコマンド。次の単語の場所に向かってディレクトリを移動する。 |
~ | ユーザーごとのホームディレクトリを表す |
pwd | 「print working directory」を表すコマンド。現在いるディレクトリを表示する。 |
ls | 「list」を表すコマンド。現在いるディレクトリの配下にあるファイル,ディレクトリを表示する。 |
tree | 現在いるディレクトリの配下にあるファイル,ディレクトリを木構造の形式でババーッと表示できる。brew install tree によってインストールすることで使えるようになる。 |
Hello Heroku!!
Laravel のプロジェクトは無事作成できました。次にこれを Heroku 上で動作するように設定していきます。
ここからしばらく↑に沿っています。読めばOK。
git init
git add .
git commit -m 'こみっと めっせーじ!’
cd _app_name_
でプロジェクトのルートディレクトリに移動してから,上記の要領で記載しましょう。
次に Procfile を作成します。
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m 'ぷろっくふぁいるを つくったよ!’
さらに, heroku create
のコマンドを実行します。
heroku create
コマンドは,オプションコマンドなしで実行した場合,自動的にアプリ名をつけてくれます*2。紫がアプリ名,青がWebページのURL,緑が git のURLです。
次に,アプリケーションキーの登録を行います。次のコマンドを引き続き実行します。
heroku config:set APP_KEY=$(php artisan --no-ansi key:generate --show)
Heroku のホームページでは①アプリケーションキーを発行する②その値を heroku config
によって設定する,という方法が主たるやり方として紹介されていますが,上記で一発でやるのがいいと思います。
というのは,php artisan key:generate —show
でアプリケーションキーを生成した場合,なにやらとても意味深なアプリケーションキーが発行され,「これは全部がアプリケーションキーなのか?ここからここまでがアプリケーションキーなのか?」と悩まされるからです。
(試しに heroku config
と入力して,設定したアプリケーションキーの値を表示してみましょう。 base64
やら行末の =
やら,非常に意味深です)
それでは,ローカルでの作業を push してファイルを開きましょう。
git push heroku master
heroku open
用語 | 意味 |
---|---|
Procfile | Heroku 用の設定ファイル。ドキュメントルートがどこかを書く。 |
echo | ファイルを作って書き込むコマンド |