LaradockでPHP+Apache+mariadbな環境構築をする手順
Laradockで環境構築するとnginxがデフォルトになっている。
本番環境とミドルウェアを揃えるため、apacheを利用するのにハマったので手順を残しておきます。
要件
- Git
- Docker >= 17.12
- Laradock v8.0
ディレクトリ構成
~/project/ ... プロジェクトルート
~/project/laradock ... Laradock
~/project/laravel ... Laravel app project
~/project/laravel/public ... 公開ディレクトリ(Document Root)
Laradockのset up
~/project/ ... プロジェクトルート
~/project/laradock ... Laradock
~/project/laravel ... Laravel app project
~/project/laravel/public ... 公開ディレクトリ(Document Root)
Laradockのset up
プロジェクトルートへ移動
cd ~/project/
Laradockをclone
git clone --branch v8.0 https://github.com/laradock/laradock.git
Laradockへ移動
cd ~/project/laradock
.envを作成
cp env-example .env
.envを編集
vim .env
---
- PHP_VERSION=7.3
+ PHP_VERSION=任意のバージョン
- WORKSPACE_INSTALL_NODE=true
+ WORKSPACE_INSTALL_NODE=false
- WORKSPACE_INSTALL_YARN=false
+ WORKSPACE_INSTALL_YARN=false
- WORKSPACE_INSTALL_NPM_GULP=true
+ WORKSPACE_INSTALL_NPM_GULP=false
- WORKSPACE_INSTALL_NPM_VUE_CLI=true
+ WORKSPACE_INSTALL_NPM_VUE_CLI=false
- WORKSPACE_INSTALL_XDEBUG=false
+ WORKSPACE_INSTALL_XDEBUG=true
- PHP_FPM_INSTALL_XDEBUG=false
+ PHP_FPM_INSTALL_XDEBUG=true
+ LARAVEL_HORIZON_INSTALL_PHPREDIS=true
- MARIADB_VERSION=latest
+ MARIADB_VERSION=任意のバージョン
- MARIADB_DATABASE=default
+ MARIADB_DATABASE=任意のDB Name
- MARIADB_USER=default
+ MARIADB_USER=任意のUser Name
- MARIADB_PASSWORD=secret
+ MARIADB_PASSWORD=任意のUser Password
---
docker-compose.ymlを編集
vim docker-compose.yml
---
laravel-horizon:
build:
context: ./laravel-horizon
args:
- PHP_VERSION=${PHP_VERSION}
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
- INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
- INSTALL_SOCKETS=${LARAVEL_HORIZON_INSTALL_SOCKETS}
- INSTALL_CASSANDRA=${PHP_FPM_INSTALL_CASSANDRA}
+ - INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS}
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ./laravel-horizon/supervisord.d:/etc/supervisord.d
depends_on:
- workspace
extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}"
networks:
- backend
---
apacheのvirtual hostsを追加
cp apache2/sites/default.apache.conf apache2/sites/sample.apache.conf
apacheのvirtual hostsを編集
vim apache2/sites/sample.apache.conf
---
<VirtualHost *:80>
- ServerName laradock.test
+ ServerName sample.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>
</VirtualHost>
---
hostsの設定
vim /etc/hosts
---
+ 127.0.0.1 sample.test
---
laravel project のインストール
composer create-project --prefer-dist laravel/laravel laravel "5.8.*"
cd ~/project/laravel
vim .env
---
DB_CONNECTION=mysql
- DB_HOST=127.0.0.1
+ DB_HOST=mariadb
DB_PORT=3306
- DB_DATABASE=laravel
+ DB_DATABASE=default
- DB_USERNAME=root
+ DB_USERNAME=default
- DB_PASSWORD=
+ DB_PASSWORD=secret
- REDIS_HOST=127.0.0.1
+ REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
---
php artisan optimize:clear
php artisan key:generate
composer install
chmod 777 storage/logs
chmod 777 bootstrap/cache
chmod 777 storage/framework
chmod 755 public/index.php
laradock 起動
cd ~/project/laradock
composer create-project --prefer-dist laravel/laravel laravel "5.8.*"
cd ~/project/laravel
vim .env
---
DB_CONNECTION=mysql
- DB_HOST=127.0.0.1
+ DB_HOST=mariadb
DB_PORT=3306
- DB_DATABASE=laravel
+ DB_DATABASE=default
- DB_USERNAME=root
+ DB_USERNAME=default
- DB_PASSWORD=
+ DB_PASSWORD=secret
- REDIS_HOST=127.0.0.1
+ REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
---
php artisan optimize:clear
php artisan key:generate
composer install
chmod 777 storage/logs
chmod 777 bootstrap/cache
chmod 777 storage/framework
chmod 755 public/index.php
cd ~/project/laradock
docker 起動
docker-compose up -d workspace mariadb apache2 redis php-fpm
Dockerの設定ファイル(apacheなど)変更した場合
docker-compose up -d --build workspace mariadb apache2 redis php-fpm
or
docker-compose build --no-cache workspace mariadb apache2 redis php-fpm
Laradock(docker) 操作
dockerのworkspaceにログイン
docker-compose exec workspace bash
docker コンテナ 停止
docker-compose down
docker コンテナ 削除
docker-compose down --rmi all
docker コンテナ ボリューム削除
docker-compose down -v
トラブルシューティング
(1)Laradock 起動時にエラー発生
エラー内容
apache2_1 | AH00526: Syntax error on line 119 of /etc/httpd/conf/httpd.conf:
apache2_1 | DocumentRoot '/var/www/html' is not a directory, or is not readable
対処方法
vi /etc/httpd/conf/httpd.conf
---
- DocumentRoot "/var/www/html"
+ DocumentRoot "/var/www/laravel/public"
---
service httpd restart
Author And Source
この問題について(LaradockでPHP+Apache+mariadbな環境構築をする手順), 我々は、より多くの情報をここで見つけました https://qiita.com/kurosuke1117/items/5fee47acbe5a16950f71著者帰属:元の著者の情報は、元の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 .