ページへ戻る
印刷
技術系備忘録/Docker/LAMP環境構築
をテンプレートにして作成 ::
シンクリッジ
xpwiki
:技術系備忘録/Docker/LAMP環境構築 をテンプレートにして作成
開始行:
LAMP 環境の docker-compose です。
ちょっとしたポイントとしては、以下な感じです。
- webサーバーは、centos7 のイメージから自前で apache + PH...
-- 使いそうなモジュールもとりあえず入れています。
-- php.ini の設定も少々変更しています。 (web/added_php.ini)
-- xdebug も使える状態です。xdebug.remote_host で宛先を書...
-- composer もインストールしています。
- db は MySQL ではなく MariaDb 使ってます。が、特に理由は...
- phpMyAdmin も便利なので使えるようにしています。
-- phpinfo() を 有効にしています。
- ドキュメントルート と DB はホスト側フォルダをマウントし...
不要なものは適宜消して docker-compose up すればいいだろう...
極力普通に、まったく尖った仕様ではないと自分では思ってま...
以上、備忘録として。
#contents
* docker-compose ファイル一覧
├ .env
├ docker-compose.yml
├ db
│ └ conf.d
│ └ my.cnf
├ phpmyadmin
│ └ config.user.inc.php
└ web
├ added_php.ini
└ Dockerfile
** .env
# web
WEB_PORT=10080
# phpMyAdmin
PHPMYADMIN_PORT=10081
# db
DB_PORT=13306
DB_PASSWORD=pass
** docker-compose.yml
version: '3'
services:
web:
build: ./web
ports:
- ${WEB_PORT}:80
volumes:
- ./volumes/web/:/var/www/html
- ./web/added_php.ini:/etc/php.d/added_php.ini
container_name: "lamp-web"
db:
image: mariadb/server:10.4
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_ROOT_HOST: "%"
TZ: Asia/Tokyo
ports:
- ${DB_PORT}:3306
volumes:
- ./volumes/db/:/var/lib/mysql
- ./db/conf.d/:/etc/mysql/conf.d
- ./db/initdb/:/docker-entrypoint-initdb.d
container_name: "lamp-db"
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
ports:
- ${PHPMYADMIN_PORT}:80
environment:
- PMA_ARBITRARY=1
- PMA_HOST=db
- PMA_USER=root
- PMA_PASSWORD=${DB_PASSWORD}
volumes:
- /sessions
- ./phpmyadmin/config.user.inc.php:/etc/phpmyadmin...
container_name: "lamp-phpmyadmin"
-- MYSQL_ROOT_HOST は、デフォルトが"%"のハズだけど何故か...
** web/added_php.ini
memory_limit = -1
upload_max_filesize = 16G
post_max_size = 16G
max_execution_time = 1200
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
; XDEBUG ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
xdebug.remote_enable=1
; 192.168.1.2 ...
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
** web/Dockerfile
FROM centos:centos7
RUN yum -y update
# タイムゾーンを日本時間に設定
RUN \cp -p -f /usr/share/zoneinfo/Japan /etc/localtime
# install apache2.4
RUN yum -y install httpd
# install php73
RUN yum -y install http://rpms.famillecollet.com/enterpr...
RUN yum -y install --enablerepo=epel libedit libargon2 l...
RUN yum -y install --disablerepo=* --enablerepo=remi,rem...
# composer インストール
RUN php -r "copy('https://getcomposer.org/installer', 'c...
&& php composer-setup.php \
&& php -r "unlink('composer-setup.php');" \
&& mv composer.phar /usr/local/bin/composer
EXPOSE 80
CMD ["httpd", "-D", "FOREGROUND"]
** db/conf.d/my.cnf
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_bin
[client]
default-character-set=utf8mb4
** phpmyadmin/config.user.inc.php
<?php
// Maximum execution time = no limit
$cfg['ExecTimeLimit'] = 0;
// phpinfo enable
$cfg['ShowPhpInfo'] = true;
終了行:
LAMP 環境の docker-compose です。
ちょっとしたポイントとしては、以下な感じです。
- webサーバーは、centos7 のイメージから自前で apache + PH...
-- 使いそうなモジュールもとりあえず入れています。
-- php.ini の設定も少々変更しています。 (web/added_php.ini)
-- xdebug も使える状態です。xdebug.remote_host で宛先を書...
-- composer もインストールしています。
- db は MySQL ではなく MariaDb 使ってます。が、特に理由は...
- phpMyAdmin も便利なので使えるようにしています。
-- phpinfo() を 有効にしています。
- ドキュメントルート と DB はホスト側フォルダをマウントし...
不要なものは適宜消して docker-compose up すればいいだろう...
極力普通に、まったく尖った仕様ではないと自分では思ってま...
以上、備忘録として。
#contents
* docker-compose ファイル一覧
├ .env
├ docker-compose.yml
├ db
│ └ conf.d
│ └ my.cnf
├ phpmyadmin
│ └ config.user.inc.php
└ web
├ added_php.ini
└ Dockerfile
** .env
# web
WEB_PORT=10080
# phpMyAdmin
PHPMYADMIN_PORT=10081
# db
DB_PORT=13306
DB_PASSWORD=pass
** docker-compose.yml
version: '3'
services:
web:
build: ./web
ports:
- ${WEB_PORT}:80
volumes:
- ./volumes/web/:/var/www/html
- ./web/added_php.ini:/etc/php.d/added_php.ini
container_name: "lamp-web"
db:
image: mariadb/server:10.4
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_ROOT_HOST: "%"
TZ: Asia/Tokyo
ports:
- ${DB_PORT}:3306
volumes:
- ./volumes/db/:/var/lib/mysql
- ./db/conf.d/:/etc/mysql/conf.d
- ./db/initdb/:/docker-entrypoint-initdb.d
container_name: "lamp-db"
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
ports:
- ${PHPMYADMIN_PORT}:80
environment:
- PMA_ARBITRARY=1
- PMA_HOST=db
- PMA_USER=root
- PMA_PASSWORD=${DB_PASSWORD}
volumes:
- /sessions
- ./phpmyadmin/config.user.inc.php:/etc/phpmyadmin...
container_name: "lamp-phpmyadmin"
-- MYSQL_ROOT_HOST は、デフォルトが"%"のハズだけど何故か...
** web/added_php.ini
memory_limit = -1
upload_max_filesize = 16G
post_max_size = 16G
max_execution_time = 1200
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
; XDEBUG ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
xdebug.remote_enable=1
; 192.168.1.2 ...
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
** web/Dockerfile
FROM centos:centos7
RUN yum -y update
# タイムゾーンを日本時間に設定
RUN \cp -p -f /usr/share/zoneinfo/Japan /etc/localtime
# install apache2.4
RUN yum -y install httpd
# install php73
RUN yum -y install http://rpms.famillecollet.com/enterpr...
RUN yum -y install --enablerepo=epel libedit libargon2 l...
RUN yum -y install --disablerepo=* --enablerepo=remi,rem...
# composer インストール
RUN php -r "copy('https://getcomposer.org/installer', 'c...
&& php composer-setup.php \
&& php -r "unlink('composer-setup.php');" \
&& mv composer.phar /usr/local/bin/composer
EXPOSE 80
CMD ["httpd", "-D", "FOREGROUND"]
** db/conf.d/my.cnf
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_bin
[client]
default-character-set=utf8mb4
** phpmyadmin/config.user.inc.php
<?php
// Maximum execution time = no limit
$cfg['ExecTimeLimit'] = 0;
// phpinfo enable
$cfg['ShowPhpInfo'] = true;
ページ名: