ファイル構成
今回のファイル構成はこちらになります。
<任意のプロジェクト>
├.vscode
│ └launch.json
├wordpress
└infra
├docker
│ ├php
│ │ └php.ini
│ └wordpress
│ └Dockerfile
└docker-compose.yml
Wordpressフォルダーがローカルの作業ディレクトリとなります。
launch.jsonの中身
{
"version": "0.2.0",
"configurations": [
{
"name": "PHP XDebug",
"type": "php",
"request": "launch",
"port": 9002,
"pathMappings": {
// {docker上のdocument root}:{ローカルのdocument root}
"/var/www/html": "${workspaceRoot}/wordpress"
},
"ignore": ["**/vendor/**/*.php"]
"xdebugSettings": {
"max_children": 128,
"max_data": 1024,
"max_depth": 10
}
}
]
}
php.iniファイルの中身
zend.exception_ignore_args = off
expose_php = off
max_execution_time = 30
max_input_time = 90
max_input_vars = 1000
upload_max_filesize = 128M
post_max_size = 128M
memory_limit = 1024M
max_file_uploads = 50
error_reporting = E_ALL
display_errors = on
display_startup_errors = on
log_errors = on
error_log = /dev/stderr
default_charset = UTF-8
allow_url_fopen=on
[Date]
date.timezone = "Asia/Tokyo"
[mysqlnd]
mysqlnd.collect_memory_statistics = on
[Assertion]
zend.assertions = 1
[mbstring]
mbstring.language = Japanese
; zend_extensionは環境によって変更する必要がある。
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so
[xdebug]
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9002
xdebug.remote_log=/tmp/xdebug.log
xdebug.remote_connect_back = 0
php.iniファイルは各自で変更していただければ良いかと思います。
現在筆者が利用しているものは上記のものとなります。
Dockerfileの中身
FROM wordpress:latest
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
最新版のワードプレスとxdebugのインストールを行う処理を記述しています。
docker-compose.ymlの中身
version: "3"
services:
mysql:
image: mysql:5.7
ports:
- 3308:3306
volumes:
- .mysqldata:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: [hoge]
MYSQL_USER: [hoge]
MYSQL_PASSWORD: [hoge]
wordpress:
build: ./docker/wordpress
volumes:
- ../wordpress:/var/www/html
- ./docker/php/php.ini:/usr/local/etc/php/conf.d/php.ini
restart: always
depends_on:
- mysql
ports:
- 8082:80
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_NAME: [hoge]
WORDPRESS_DB_USER: [hoge]
WORDPRESS_DB_PASSWORD: [hoge]
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
environment:
PMA_HOST: "mysql"
UPLOAD_LIMIT: 102400000
restart: always
ports:
- 8890:80
ポート番号に関しては(ローカルのポート番号:docker側のポート番号)となっていますのでローカル側のポート番号を任意のものに変更していただければ良いかと思います。
[hoge]の部分は、任意のものに変更してください。
下記のコマンドでサーバーを立ち上げます。
$ cd /任意のプロジェクト名/infra
$ docker-compose up -d
上記の通りにファイルを保存した場合
http://localhost:8082
でサーバーにアクセス出来ると思います。
Wordpressの画面が表示されれば成功です。