約 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
コメントありがとうございます。
該当マシンはインターネットからアクセスできないセグメントに置くことで対策をしています。