約 6 分で読めます。
先日こんな記事を見つけました。

PHP標準のアプリケーションサーバー「PHP-FPM」から「NGINX Unit」に乗り換えるだけで約8倍も応答速度が改善したというテスト結果
NGINX Unitはさまざまな言語で動作可能なオープンソースの動的アプリケーションサーバーです。PHPのアプリケーションを動作させる際にNGINX Unitを使うと、PHP-FPMを使う場合に比べて約8倍も応答速度が改善するというテスト結...
いまこのサイトではPHP-FPMで動かしていますが、ラズパイ上で動かしていることもあり、パフォーマンスが気になっていて。
そんなところにこんな記事が出てきたので、試してみようと。
TL;DR
これらのファイルでやれました。
$ tree
.
├── docker-compose.yml
├── myapp
│ └── config.json
└── wordpress
└── Dockerfile
3 directories, 3 files
docker-compose.yml
version: '3.1'
services:
wordpress:
build:
context: wordpress
restart: always
ports:
- 8080:8080
links:
- db
volumes:
- ./myapp/config.json:/docker-entrypoint.d/config.json
- wordpress_var_run:/var/run
db:
image: mariadb:latest
restart: always
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
volumes:
- wordpress_var_run:/var/run
volumes:
wordpress_var_run:
Dockerfile
FROM unit:php RUN mkdir /www/ && \ cd /www/ && \ curl -L https://ja.wordpress.org/latest-ja.tar.gz -o wordpress.tar.gz && \ tar zxvf wordpress.tar.gz && \ mv wordpress/* . && \ rm -f /www/wordpress.tar.gz && \ chown -R www-data:www-data /www/ && \ docker-php-ext-install mysqli && \ docker-php-ext-enable mysqli
config.json
– applications/wordpress/processesは動作PCのCPUコア数で増減させると良いです。
{
"listeners": {
"*:8080": {
"pass": "routes"
}
},
"routes": [
{
"match": {
"uri": [
"*.php",
"*.php/*",
"/wp-admin/"
]
},
"action": {
"pass": "applications/wordpress/direct"
}
},
{
"action": {
"share": "/www$uri",
"fallback": {
"pass": "applications/wordpress/index"
}
}
}
],
"applications": {
"wordpress": {
"type": "php",
"user": "www-data",
"processes": 12,
"targets": {
"direct": {
"root": "/www/"
},
"index": {
"root": "/www/",
"script": "index.php"
}
}
}
}
}
コンテナ起動すれば、http://localhost:8080で初期設定画面が見えているはず。
$ sudo apt install -y docker docker-compose $ sudo docker-compose up -d

参考にした記事
このあたりを参考にしました。
NGINX Unit: Unit in Docker
NGINX Unit: WordPress
終わりに
いかがでしたか。
当然これだけでは使い物にならないので、以下を継続して調べていきます!
- WAF(ModSecurity)の適用
- キャッシュの適用
- その他


Comments
docker composeのportsは3306に穴を開けていますよ
https://tec.tecotec.co.jp/entry/2021/12/17/000000
コメントありがとうございます。
該当マシンはインターネットからアクセスできないセグメントに置くことで対策をしています。