はじめに
皆さんこんばんわ。
Stay Homeがんばってますか?
Stay Homeとか言う前からこの記事は用意してたんですが、ようやく日の目を見ることができそうで何よりです。
この記事は「Dockerで始めるLaravel講座」のLaravel編です。
Docker編で作ったDocker環境を使ってLaravel構築を行っていこうかと思いましたが色々手間取りそうだったので最初から作り直します。
おしながき
- Docker環境を作ろう
- Laravelのインストーラーをインストールしよう
- Laravelをインストールしよう
- ログイン画面を作ってみよう
Docker環境を作ろう
早速なのですが、何処か新しいディレクトリを作ってから、その中でこちらのコマンドを実行して環境を引っ張ってきてください。
$ git clone git@github.com:layzy/docker-laravel.git docker
リポジトリのURLはこちらです
https://github.com/layzy/docker-laravel
できたら html
というディレクトリも作ります。
多分こんな感じになるはずです。
.
├── docker
└── html
今回はみんな大好きAmazonLinux2をもとに作ります。
中のDockerfile見ればなんとなく感づいたと思いますが、以下の構成で作ろうかと思います。
CentOS+Apacheで頑張るパターンもたまに見かけますが、AWS使うならこの構成が楽で良いと思います。
(ローカル環境作るのはやや苦労しますが)
- AmazonLinux2
- Nginx
- php-fpm
- php7.4
- mariaDB
- mailcatcher
ここまでできたらdockerディレクトリの下にいって、下記のコマンドで一気にコンテナを立ち上げてしまいましょう。
$ docker-compose up -d
そしたらphpコンテナの中に入ります。どきどき。
$ docker exec -it {phpコンテナの名前} bash
phpコンテナの名前がわからなかったら docker ps
コマンドで見てみてください。
Laravelのインストーラーをインストールしよう
phpコンテナに入ったら以下のコマンドでLaravelのインストーラーを引っ張ってきます。
$ composer global require laravel/installer
できたら、グローバルインストールしたcomposerの配下にある vendor/bin
のパスを通してやります。
$ export PATH=$PATH:/root/.config/composer/vendor/bin
すると
$ laravel
というコマンドが使えるようになります。なんだか怖いね!w
Laravelをインストールしよう
Laravelをインストールしてみましょう。
とりあえず何も考えずにドキュメントルートに移動しましょう。
$ cd /usr/share/nginx/html
で、せっかくLaravelのインストーラーを入れたので、 app
という名前のプロジェクトを作ってみましょう。
$ laravel new app
すると一気にめくるめくLaravelのプロジェクトが展開されていきます。
終わったら http://localhost:8080
にアクセスしてみてください。
こんな感じの画面が出てきたらまずは成功です。やったぜ!
ログイン画面を作ってみよう
Laravel使ってわざわざ作るようなものはだいたい会員制サービスと相場が決まっています。
スマホアプリのREST APIバックエンドに使うにしたって、ユーザー登録くらいはするのです。
流行りのVue.jsを使ったシャレオツなSPAサイトをササッと作れるのもLaravelの良いところではあるのですが、今回は静的ページで無骨に作りましょう。
ではまず、アプリケーションキーを生成しましょう。
Laravelの安全性を高めるために必要な儀式です。
appディレクトリに移動して以下のコマンドを実行します。
$ php artisan key:generate
これだけです。これをすると .env
ファイルに APP_KEY
と言うのが書き加えられてるのがわかると思います。
このときに使った artisan
(アーティザン、またはアルティザン) コマンドはLaravelで開発していく上で死ぬほどお世話になります。他のフレームワークにも大体似たようなのはあるので、それのLaravel版だと思ってください。
FW名 | コマンド名 |
---|---|
CakePHP | bake |
Symphony | symphony |
ZendFramework | zf |
Phalcon | phalcon |
FuelPHP | oil |
CodeIgniter | 自動生成など甘え、そんなものはない |
ついでにDB接続周りの設定もしちゃいましょう。
.env
ファイルをこんな感じに書き換えてください。
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=larapass
これでさっき一緒に立ち上げた mariadb
のコンテナにアクセスできます。
そこまでできたら今度はこのコマンドです。
ちょっと時間かかりますが、なかなか驚くかと思います。
$ composer require laravel/ui
$ php artisan ui bootstrap --auth
終わったらさっきのページを読み込み直してみましょう。
するとこんな感じになってると思います。
この右上のリンクの LOGIN
というやつを押してみると……
ワオ! ログインフォームが出てきたぞい!
今回はとりあえずここまでです。
次回はもう少しページを増やしたりしてみましょう!
おつかれさまでした!
おまけ
セミナーの様子はYouTubeでも公開されています!
https://www.youtube.com/watch?v=LPnoqJ6Pl8Y