【Laradock環境構築】Dockerインストール〜Laravelデフォルトページ表示まで②
はじめに
こちらの記事では、Laradockの環境構築として、
Dockerのインストール〜Laravelのデフォルトページ表示までを載せていきます。
※本記事はパート①の続きになります。
↓
【Laradock環境構築】Dockerインストール〜Laravelデフォルトページ表示まで①
https://qiita.com/y-aimi/items/4fc3c65f85a103685238
前提条件
パート①でDockerのインストールが終わっている状態
プロジェクト用のディレクトリを作成
開発するアプリケーション用のディレクトリを作成します。
本記事ではecsiteとします。
以下のコマンドを実行。
//mkdirでディレクトリを作成。cdでecsiteのディレクトリに移動
$ mkdir ecsite
$ cd ecsite
ちなみに、どこでこのコマンドを実行すればいいの?という方は、
// ~ はルートディレクトリを表している
$ cd ~
でルートディレクトに移動すれば、下記の場所にecsiteというフォルダができるので
そちらで問題ないかと思います。
リポジトリのクローンを作成
LaradockのGithubのリポジトリをクローンします。
クローンしたらlaradockディレクトリに移動します。
以下のコマンドを実行。
$ git clone https://github.com/Laradock/laradock.git
$ cd laradock
試しに、
https://github.com/Laradock/laradock.git
をクリックしてGithubを見てみてください。
ここのクローンを先程作ったecsiteのディレクトリに作っているよー
ということですね!
そして、そのディレクトリに移動したということです。
Laradockの設定ファイル準備
Laradockのenv-exampleを.envとしてコピーします。
/ecsite/laradock/で以下のコマンドを実行してください。
$ cp env-example .env
(cp はコピーという意味です。まんまですね。)
以下のコマンドを実行し、/ecsite/laradock/直下に.envファイルがあることを確認。
$ ls
次に作成した.envファイルをVimを使って編集していきます。
(Vimを使えば、いちいちフォルダを探して、ファイルを探して開いて編集・・・
をしなくてもターミナル上で編集できるのでラクです!)
/ecsite/laradock/で以下のコマンドを実行。
$ vi .env
するとターミナルでこんな画面がでます。
この画面は/ecsite/laradock/.envの編集画面です。
この画面上で i を押します。
下部に-- INSERT --と編集できるモードに切り替わるので、
この状態でファイルを編集していきます。
/ecsite/laradock/.envを以下のように編集してください。
### Paths #################################################
# Point to the path of your applications code on your host
# 次の行を編集
APP_CODE_PATH_HOST=../ecsite
# Point to where the `APP_CODE_PATH_HOST` should be in the container
APP_CODE_PATH_CONTAINER=/var/www
APP_CODE_PATH_HOSTの値が、
Laradockで動かすウェブアプリのディレクトリのパスになります。
(つまり、Laradockで動かす時にどのフォルダを使うの?それの場所をここに書いてね。ということです。)
次にescキーを押してコマンドモードに移行し、:wqを押し、
enterキーでファイルへの変更を保存し終了。
(":w"は保存、"q"は終了のVimコマンド→合わせて":wq"コマンドというわけですね)
次にウェブアプリのディレクトリを作っておきます。
以下のコマンドを実行。
$ mkdir ../ecsite
これで、現在のディレクトリは下記のようになっているかと思います。
ecsite
├── ecsite ←今作ったウェブアプリ用のディレクトリ
└── laradock ←序盤にクローンしたlaradock.gitのクローン
mysqlの認証方法の設定
mysqlのバージョンによっては、認証方法がデフォルトでは
なくなってしまっていることがあるので、
※変更の必要ない人は必要ないです。
(ちなみに私も変更しなくても良かったです。)
/ecsite/laradock/ディレクトリ内で以下のコマンドを実行し、vimを起動。
$ vi mysql/my.cnf
先程と同じように、iを押してINSERTモードに切り替え、
/ecsite/laradock/mysql/my.cnfを以下のように編集。
# The MySQL Client configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysql]
[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
character-set-server=utf8
# この行を追加(この文が元々ある人もいるかも?)
default_authentication_plugin=mysql_native_password
escキーを押してコマンドモードに移行し、
:wqを入力しenterキーでファイルの変更を保存し終了。
これでmysqlの準備は終了です。
Laradockのコンテナ起動
Laradockを使ってあらかじめ用意されている、
ウェブサーバー(nginx)とデータベースサーバー(mysql)のコンテナを起動します。
/ecsite/laradock/ディレクトリ内で以下のコマンドを実行します。
$ docker-compose up -d nginx mysql
そして、下記のように全部"done"になれば無事起動されています。
これで、ローカルのウェブサーバーとデータベースが起動しました!
workspaceコンテナのパッケージアップデート
つぎにworkspaceコンテナに入り、パッケージのアップデートをしておきます。
workspaceコンテナは開発に必要なツール等がインストールされているコンテナらしいです。
(Laradockのコンテナを起動すると自動的にworkspaceコンテナも起動します)
以下のコマンドでパッケージをアップデート。
$ docker exec -it laradock_workspace_1 bash
root@hoge:/var/www# apt-get update
(root@hogeの"hoge"は個人で違うかと思います。)
Laravelのセットアップ
最後にlaravelのセットアップをします。
workspaceコンテナに入ったまま、Laravelをインストール。
//こちらを参考にプロジェクト名を入れて実行
root@hoge:/var/www# composer create-project laravel/laravel [プロジェクト名]
//実例①
root@hoge:/var/www# composer create-project laravel/laravel ECsite
//実例②:laravelのバージョンを指定する際はこちらを参考に
root@hoge:/var/www# composer create-project laravel/laravel ECsite "5.8.*"
動作確認
下記のURLでLaravelのデフォルトページが表示されれば環境構築成功です!
エラー多発した!!
この環境構築、個人個人によって色んなエラーが出ることが多いです。
(エラーで苦戦して、やっぱLaradock使うのやめよう...と思った人もいるはず)
ちなみに、個人的にあるあるなのが、
Nginx 404not found
でデフォルトページが表示されないエラー。
おそらく原因は、/ecsite/laradock/.envで編集したこちらが正しくない可能性が高いです。
例えば、ディレクトリの構成を変えていたり、置く場所を変えていたりすると、
ここも変えなければいけません。
重要!
あ、エラーになってしまった!
↓
よし、これを修正したら大丈夫なはず!!
↓
...え、また同じエラー??
↓
...え、しかも何かエラー増えてる?
↓
.........わからん。
↓
............オワタ。詰んだ。
となった方いませんか?
僕がまさにこの状態になって抜け出せなかったので、対処法を!!
以下のコマンドで、コンテナを再起動!!
$ docker-compose stop
$ docker-compose up -d nginx mysql
そしたら、エラー解消しました。
エラー箇所を正しく修正したとしても、再起動しないとエラーのままだったりするので、
困ったら再起動してみましょう。
それでもエラーが出るなら、何か修正点があるかと思いますので、
ボス戦の攻略法を探すような感じで、ググりましょう!
まとめ
環境構築って一番の壁だと思います。
わからないことだらけですし、これができないとその後の開発が何もできないし...
でも、個人的にはこの環境構築に苦戦して乗り越えると、
ただ開発するだけでは得られない知識が得られるので、
良い経験ができているなーと感じてます。
開発中のエラーがボス戦だとしたら、
環境構築のエラーはシークレットボス戦みたいな感じですかね!笑
Author And Source
この問題について(【Laradock環境構築】Dockerインストール〜Laravelデフォルトページ表示まで②), 我々は、より多くの情報をここで見つけました https://qiita.com/y-aimi/items/a6b3ee863ec67c8d4b97著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .