LoginSignup
1
0

More than 1 year has passed since last update.

LaradockでPHP7.4+Apache2.4+MariaDB10.3+phpMyAdminの環境構築をする手順

Last updated at Posted at 2022-04-17

Laradockで環境構築するとnginxがデフォルトになっています。
本番環境がApacheとMariaDB10.3のため、laradockの設定を変更します。

要件

  • Git 2.35.1
  • Docker version 20.10.13
  • docker-compose version 1.29.2, build 5becea4c
  • Laradock v12.1

コンテナの構成

  • Apache2.4
  • MariaDB10.3
  • PHP7.4
  • phpMyAdmin

ディレクトリ構成

laradock-Apache   ... プロジェクトルート
   ┗ laradock     ... Laradock
   ┗ laravel      ... Laravel app project
       ┗ public   ... 公開ディレクトリ(Document Root)

Laradockのset up

プロジェクトルートへ移動

$ mkdir laradock-Apach
$ cd ~/laradock-Apache/

Laradockをclone

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

Laradockへ移動

$ cd ~/laradock-Apach/laradock

.envを作成

$ vi cp .env.example  .env

.envを編集

$ vim .env
---

### PHP Version ###########################################

- PHP_VERSION=7.3
+ PHP_VERSION=7.4

### MARIADB ###############################################

- MARIADB_VERSION=latest
+ MARIADB_VERSION=10.3

- MARIADB_DATABASE=default
+ MARIADB_DATABASE=laradock

### WORKSPACE #############################################

- WORKSPACE_INSTALL_MYSQL_CLIENT=false
+ WORKSPACE_INSTALL_MYSQL_CLIENT=true

### PHP MY ADMIN ##########################################

- PMA_DB_ENGINE=mysql
+ PMA_DB_ENGINE=mariadb

### APACHE ################################################

- APACHE_DOCUMENT_ROOT=/var/www/
+ APACHE_DOCUMENT_ROOT=/var/www/laravel/public/

---

Apacheの設定変更

apache、default.apache.confのバックアップを取っておきます。

$ cp apache2/sites/default.apache.conf apache2/sites/default.apache.conf.example
$ mv apache2/sites/default.apache.conf.example apache2/sites/default.apache.conf

apacheのvirtual hostsを編集

$ vim apache2/sites/default.apache.conf
<VirtualHost *:80>
  ServerName laradock.test
- DocumentRoot /var/www/
+ DocumentRoot /var/www/laravel/public/
  Options Indexes FollowSymLinks

- <Directory "/var/www/">
+ <Directory "/var/www/laravel/public/">
    AllowOverride All
    <IfVersion < 2.4>
      Allow from all
    </IfVersion>
    <IfVersion >= 2.4>
      Require all granted
    </IfVersion>
  </Directory>

  ErrorLog /var/log/apache2/error.log
  CustomLog /var/log/apache2/access.log combined
</VirtualHost>

MariaDBの設定変更

mariadbサーバの文字セットをutf8mb4に変更します。

$ cd ~/laradock-Apach/laradock/mariadb

$ cp my.cnf my.cnf.example

$ vi my.cnf

+ [mariadb]
+ character-set-server = utf8mb4

+ [client-mariadb]
+ default-character-set = utf8mb4

laradock 起動

コンテナ起動

$ docker-compose up -d workspace apache2 mariadb phpmyadmin

Laravelプロジェクトの作成

$ docker-compose exec workspace bash
root@509785bbe57:/var/www$
root@509785bbe57:/var/www$ composer create-project "laravel/laravel=8.*" laravel --prefer-dist
root@509785bbe57:/var/www$ cd laravel
root@509785bbe57:/var/www/laravel$ chmod -R 777 storage/

Laravelの環境設定変更

作成されたLaravelプロジェクト配下の.envを更新します。

root@509785bbe57:/var/www$ cd laravel/
root@509785bbe57:/var/www/laravel$ vi .env

/var/www/laravel/.env

DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=laradock
DB_USERNAME=default
DB_PASSWORD=secret
root@509785bbe57:/var/www/laravel$ exit

動作確認

全てのコンテナがupになっていればOKです。

$ docker-compose ps
           Name                          Command               State                                                                      Ports
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
laradock_apache2_1            /opt/docker/bin/entrypoint ...   Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_docker-in-docker_1   dockerd-entrypoint.sh            Up      2375/tcp, 2376/tcp
laradock_mariadb_1            docker-entrypoint.sh mysqld      Up      0.0.0.0:3306->3306/tcp
laradock_php-fpm_1            docker-php-entrypoint php-fpm    Up      9000/tcp, 0.0.0.0:9003->9003/tcp
laradock_phpmyadmin_1         /docker-entrypoint.sh apac ...   Up      0.0.0.0:8081->80/tcp
laradock_workspace_1          /sbin/my_init                    Up      0.0.0.0:2222->22/tcp, 0.0.0.0:3000->3000/tcp, 0.0.0.0:3001->3001/tcp, 0.0.0.0:4200->4200/tcp, 0.0.0.0:8001->8000/tcp, 0.0.0.0:8080->8080/tcp

http://localhostにアクセスしてLaravelのトップ画面が表示されればOKです。

20210118143323.png

http://localhost:8081でphpmyadminにアクセスできることを確認します。
.envのmariadbに設定したユーザー、パスワードでログインできればOKです。

名称未設定2.png

マイグレーションの実行

マイグレーションの実行が無事に完了できるか確認します。

root@509785bbe57:/var/www/laravel$ php artisan migrate
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (22.06ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (21.03ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (25.08ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated:  2019_12_14_000001_create_personal_access_tokens_table (32.52ms)

MysQLクライアント

MySQLクライアントでログインできるか確認します。

root@509785bbe57:/var/www$ mysql -h mariadb -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 202
Server version: 5.5.5-10.3.34-MariaDB-1:10.3.34+maria~focal mariadb.org binary distribution

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

これで、Laravelの開発をスタートする準備完了です。

補足:Laradock(docker) 操作

dockerのworkspaceにログイン

$ docker-compose up -d workspace apache2 mariadb phpmyadmin

docker コンテナ停止

$ docker-compose down

docker コンテナ停止、イメージ削除

$ docker-compose down --rmi all

docker コンテナ停止、ボリューム削除

$ docker-compose down -v

Dockerの設定ファイル(apacheなど)変更した場合

$ docker-compose up -d --build workspace apache2 mariadb phpmyadmin
or
$ docker-compose build apache2 など
1
0
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
1
0