laradockでIntelliJ+Laravel+Vuejsの環境構築:⑴Laravelを動かしてみよう


概要

laradockでIntelliJ+Laravel+Vuejsの環境構築:⑴Laravelを動かしてみよう
⬆︎今ここ
laradockでIntelliJ+Laravel+Vuejsの環境構築:⑵Vuejsを動かしてみよう
laradockでIntelliJ+Laravel+Vuejsの環境構築:⑶

Laravelとは

phpで人気のフレームワーク。
設計方針的に自由度高い。
自由度が高いので汚く書こうと思えば書けちゃう。

2019年8月3日現在
5.5LTSが安定板で最新

公式
https://readouble.com/laravel/

環境

今回気にする環境
OS:mac, Ubuntu
docker, docker-compose

  • 動作確認してる環境
mac book
docker:19.03.1
#docker内で動かした各種バージョン
php:7.2.20-2
composer:1.8.4
laravel:v5.5

環境構築の種類

1.ローカル上に環境を構築する

osの上にphpenvとか入れてlaravel入れる。今回これ使わない。ってか今後も使わない。つもり

メリット:覚えることが少ない。仮想環境の勉強はしなくて良い。
デメリット:他の人と環境合わせる時に結構めんどくさい。

2.laradock dockerで環境を構築する

osの上にdocker入れて、その環境内でlaravel環境を構築する。
今回はこれで。

メリット:docker覚えれば便利。
デメリット:docker覚えないといけない。

3.Homesteadで環境を構築する
→dockerでいいじゃん的な趣味的な理由でここは学習しない。

laradockで環境構築

laradockはlaravel専用docker。

前提としてdockerインストールしておいてね。updateもしておいてね。バージョン古いと動かないとかある。
インストールの仕方は他の資料参照。こことか。
https://qiita.com/teradonburi/items/8c23806e20ec8efc0ef4

mkdir app
cd app
git clone https://github.com/Laradock/laradock.git
cd laradock
#バージョンを固定してもいいと思う
git checkout v7.15
cp env-example .env

APP_CODE_PATH_HOSTはアプリケーションのディレクトリパス。 DATA_PATH_HOSTはプロジェクトのデータ管理場所。 COMPOSE_PROJECT_NAMEはdokcerのコンテナ名。 MYSQL_VERSIONはmysqlのバージョン。

.envの内容を修正。

app/laradock/.env
APP_CODE_PATH_HOST=../src/
DATA_PATH_HOST=../.laradock/data
COMPOSE_PROJECT_NAME=laradock-project_name
MYSQL_VERSION=5.7

コンテナ起動。※ここでお昼に行ってもいい。かなり待つ。

nginxはwebサーバー。mysqlはdb。
docker-compose up -dで必要なdockerコンテナを立ち上げる。必要なコンテナがなければ、コンテナイメージをpullしてきてコンテナ化する。-dのオプションをつけてるのでバックグラウンドで動く。

redisはNoql。beanstalkdはキューイング。

docker-compose up -d nginx mysql phpmyadmin

dockerの中に入ってlaravelプロジェクトを作成する。
composerやnodeなどlaravel開発に必要なものを用意してくれてるコンテナがworkspace。

docker exec -it laradock_workspace_1 /bin/bash
or
docker-compose exec workspace bash

workspaceコンテナ内部でlaravelプロジェクトを作成する。

testappフォルダを作ってその中に5.5バージョンで構築する
composer create-project "laravel/laravel=5.5.*" testapp
testappフォルダを作ってその中に構築する
composer create-project laravel/laravel testapp
srcフォルダを作ってその中に構築する
composer create-project laravel/laravel=5.5 ./
src/resources/views/welcome.blade.php
...
            <div class="content">
                <div class="title m-b-md">
                    Laravel2! //こんな感じで少し変更する!
                </div>

                <div class="links">
                    <a href="https://laravel.com/docs">Documentation</a>
                    <a href="https://laracasts.com">Laracasts</a>
                    <a href="https://laravel-news.com">News</a>
                    <a href="https://forge.laravel.com">Forge</a>
                    <a href="https://github.com/laravel/laravel">GitHub</a>
                </div>
            </div>
...

アクセスして
http://localhost/

文言が少し変わってることを確認する。

次はVuejsを動かします。

参考

ここ参考
https://qiita.com/kurkuru/items/6ce0b9c4632b944347b8

サクッと動かす時はここを参考にしました。
https://daiki-sekiguchi.com/2018/08/13/laravel-vue-js-helloworld/

homestead
https://qiita.com/oreo3@github/items/1705b133e00019800ff6

Laravelについて
https://qiita.com/oreo3@github/items/1705b133e00019800ff6

チュートリアル
https://www.hypertextcandy.com/laravel-tutorial-authentication-part-2

AWSの良い記事
https://miyabi-lab.space/blog/14

docker良い記事
https://y-ohgi.com/introduction-docker/

PHPで大事なこと

  • まだ呼ばれてない関数は実行できない。

/* ここでは関数foo()はまだ定義されていないので
コールすることはできません。
しかし関数 bar()はコールできます。 */

動かない時

dockerは動いてるか確認

mysqlは動いてるか確認
https://qiita.com/fuwamaki/items/194c2a82bd6865f26045