2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows環境上にLinuxを構築。Laradockを導入してMigrationするまでの手順

Last updated at Posted at 2020-10-18

開発環境

Laravel 7.20.0
PHP 7.4
MYSQL 8.0.21
Windows version 2004

全体のおおまかな流れ

  • Ubuntu導入
  • WSL2に更新・導入
  • dockerインストール
  • laradock導入

##本記事のゴール
本記事はWindows環境上にWSL2を用いてLinux環境を構築し、Laradockを導入して画面の表示+Migrationすることを目標としています。

まずはUbuntu導入準備から

####Windowsを最新状態にアップデート(下記URLでダウンロード)
https://support.microsoft.com/ja-jp/help/4028685/windows-10-get-the-update

####PCの設定から開発者モードに変更
• 「設定(スタートボタンの歯車アイコン)」-「更新とセキュリティ」-「開発者向け」を選択
• 「開発者向け機能を使う」欄の「開発者モード」を選択して有効化

####追加機能でSubsystem for Linuxを有効化
• 「コントロールパネル」-「プログラム」-「Windowsの機能の有効化または無効化」を選択
• 一覧のなかから「Windows Subsystem for Linux(Beta)」にチェックを入れる

windows version2004の場合は表記が「Linux用Windowsサブシステム」に変更しているためそれを有効化してください。

PC再起動

####Ubuntuのインストール

UbuntuとはLinuxディストリビューションの1つであり、フリーソフトウェアとして提供されている

Microsoft storeでubunntuをインストール。

コマンドプロンプトでbashと入力。(Ubuntuにログイン出来たら成功)

続いてUbuntuの状態を最新にします。

$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo apt-get autoremove

###GitとPHPを取得

普通にインストールすると古いバージョンのGitがインストールされるので、リポジトリを追加して最新のものを取得。

下記コマンドを実行。

$ sudo apt-get install build-essential
$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt-get update
$ sudo apt-get install git
$ git --version //最新になっていたらOK
git version 2.28.0

###PHP
※PHP--version 7.4を指定しています。

$sudo apt-get install php7.4 php7.4-fpm php7.4-mysql php7.4-mbstring php7.4-gd
$ php -v  //指定したバージョンがインストールされているかを確認
PHP 7.4.3 (cli) (built: May 26 2020 12:24:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

##WSL2の事前準備

WSL2とはLinuxカーネルが動作する「本物のLinux環境」

#####「Windows PowerShell」の中の「Windows PowerShell」を「管理者として実行」して下記コマンドを実行

PS C:\>dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

PS C:\>dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

PCを再起動

バージョンの確認

C:¥> ver
Microsoft Windows [Version 10.0.19041.84]

バージョンが10.0.18917以上であることを確認

デフォルトをWSL2に設定するため、下記コマンドを実行。

C:¥> wsl --set-version ubuntu 2

WSL2に切り替わっているか確認。

C:¥> wsl -l -v
  NAME    STATE    VERSION
* Ubuntu   Stopped    2

WSL2を導入したのでDockerを構築するうえでの事前準備は完了

##Dockerのインストール

DockerとはLinux コンテナの作成と使用を実現するオープンソースのコンテナ化技術

####下記URLからDocker Desktop Edgeをインストール
https://docs.docker.com/docker-for-windows/wsl-tech-preview/

PC再起動

再起動後、タスクバーのdockerアイコンから「setting」を選択
「Enable the experimental WSL2 based engine」にチェックを入れ「Appli&Restart」をクリック

再起動が終わってnotificationと表示されたらOK

続いて、ResourcesのWSLIntegration内の「Enable WSL Integration」をクリック

「Ubuntu」を選択して「Appli&Restart」をクリック

##Dockerの動作確認

C:\Users\magic>wsl -d ubuntu
$ docker -v
Docker version 19.03.5, build 633a0ea838

####Hello Worldと表示されれば成功

$ docker run hello-world
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.

Hello from Docker!

##Laradock導入

本番環境に必要なパッケージを提供してくれる。Homesteadをより細かく分割したようなもの

###前提

Laradockも含めて1プロジェクト1リポジトリで管理したいので下記構成。


 ──project_dir
 ├ app  //laravel ディレクトリ
 │  ├  app
 │  │ bootstrap
 │ └ .env
 │   
 └ Laradock

###Laradockをgit clone


$git clone https://github.com/Laradock/laradock.git

####設定ファイル(env-exampl)をコピーして.envを生成

$ cd laradock
$ cp env-example .env

###コピーしたenv(Laradock.env)ファイルの編集

####指定したいプロジェクトを指定

APP_CODE_PATH_HOST=../
APP_CODE_PATH_HOST=../プロジェクト名/

####データの保存ディレクトリを指定

DATA_PATH_HOST=~/.laradock/data
+ DATA_PATH_HOST=.laradock/data

####プロジェクト名の設定

laradockを使ったプロジェクトを複数作る場合、プロジェクト名が同じ場合、過去に作った同じ名前のコンテナイメージが上書きされてしまいまうため、被らない名前を設定

COMPOSE_PROJECT_NAME=laradock
+ COMPOSE_PROJECT_NAME=

####MYSQLの設定

MySQLは8系になってパスワードの生成方法が変わったらしくLaravelから操作できないため下記記述を追記。

/lardock/mysqmy.cnfに下記を追加

// [mysqld]のエリアに追記する(デフォルトの場合一番下)
default_authentication_plugin=mysql_native_password

##Laravel.envの設定
DBの設定を合わせて変更します
※DB_HOSTはdocker-compose.ymlに書かれているコンテナ内名を指定します。

DB_CONNECTION=mysql
DB_HOST=mysql(既存だと127.001になっていると思うのでmysqlに修正)
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

##Laradockの起動
下記コマンドでlaradockを起動します。 引数には起動したいミドルウェアを指定

なお、projectが存在しない場合はroot権限で作成されてしまうため、必ず作成した状態で起動すること

$ docker-compose up -d nginx mysql workspace

起動確認

$ docker-compose ps

##Dockerコンテナ内からLaravelをインストール
dockerコンテナ内からlaravelをインストールする方法と、設定。

下記コマンドでWorkspaceコンテナに入る。

※userオプションでユーザを指定してください。

$ docker-compose exec --user=laradock workspace /bin/bash

コンテナ内で下記を実行してLaravelをインストール。

/var/www$ composer create-project --prefer-dist laravel/laravel .

インストール完了したところで動作確認。
(※3306portを他に使用している場合はportが競合するためタスクマネージャーなどでportを終了させてください)

Windows側のブラウザで、http://localhostにアクセスします。

###画面が表示されればインストール完了

マイグレーションの確認
MySQLの設定が完了したか、マイグレーションで確認してみましょう。

下記のようにDBにテーブルが作成されれば成功

/var/www$ php artisan migrate

Migration table created successfully.
Migrating: 2014_10_19_000000_create_users_table
Migrated:  2014_10_19_000000_create_users_table (0.36 seconds)
Migrating: 2014_10_19_100000_create_password_resets_table
Migrated:  2014_10_19_100000_create_password_resets_table (0.35 seconds)
Migrating: 2019_10_19_000000_create_failed_jobs_table
Migrated:  2019_10_19_000000_create_failed_jobs_table (0.1 seconds)

終わりに

今回はWindows環境にLaradockを導入するまでの流れを記事として投稿しました

それと来月でプログラミングを始めてから一年経つこともあり、当初よりも知見が深まったこともあるので、これから少しずつ技術記事を上げていこうと思います。
どうかよろしくお願いいたしますm(._.)m

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?