◆はじめに
前回の「HTTPS(SSL/TLS)化」に続いて、Rocky Linux 9 サーバ構築手順次のステップは、「WordPress高速化設定編」について設定を行います。

WordPressのパフォーマンスを向上させるために、PHPのOPcacheとMariaDBのチューニングを実施します。
適切な設定を行うことで、ページの応答速度が大幅に改善され、サーバリソースの効率的な活用が可能になります。
免責事項:
本記事の内容は筆者の環境で動作確認したものですが、すべての環境での動作を保証するものではありません。本記事の手順を実施する際は、以下の点にご注意ください。
◆環境情報
当ブログサイトを運用しているサーバは、「KAGOYA JAPAN」で提供されている「KAGOYA CLOUD VPS」を利用しています。
- OS: Rocky Linux 9
- Webサーバ: Nginx
- PHP: 8.3
- データベース: MariaDB
◆PHP設定
・OPcache
OPcacheは、PHPのスクリプトをコンパイル済みのバイトコード(オペコード)としてメモリにキャッシュする機能です。
通常、PHPはリクエストのたびにスクリプトを解析・コンパイルしますが、OPcacheを使用することでこの処理をスキップし、PHPの性能を大幅に向上させることができます。
OPcache設定ファイルの編集
sudo vi /etc/php.d/10-opcache.ini
設定内容(抜粋):
zend_extension=opcache
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.blacklist_filename=/etc/php.d/opcache*.blacklist
opcache.huge_code_pages=0
各パラメータの説明:
| パラメータ | 説明 |
|---|---|
opcache.enable | OPcacheを有効化(0:無効、1:有効) |
opcache.enable_cli | PHP の CLI 版に対してオペコードキャッシュを有効化 |
opcache.memory_consumption | OPcacheが使用できるメモリの最大値(MB単位) |
opcache.max_accelerated_files | キャッシュできるファイル数の最大値 |
opcache.revalidate_freq | スクリプトのタイムスタンプをチェックする頻度(秒単位)。0にするとリクエストごとに更新チェックを実施 |
opcache.blacklist_filename | OPcache ブラックリストファイルの場所。キャッシュ対象外とするファイルを1行1つで記載(ワイルドカードやプレフィックスも使用可能) |
opcache.huge_code_pages | PHPコード(textセグメント)をHUGE PAGEにコピーする機能の有効化(0:無効、1:有効) |
補足:
opcache.memory_consumption はサイトの規模に応じて調整してください。WordPressプラグインが多い場合は 256 程度に増やすと効果的です。
OPcacheの動作確認
設定反映のためPHP-FPMを再起動します。
sudo systemctl restart php-fpm
PHPのバージョンとOPcacheの有効化を確認します。
php -v
出力例:
PHP 8.3.12 (cli) (built: Sep 24 2024 18:08:04) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.12, Copyright (c) Zend Technologies
with Zend OPcache v8.3.12, Copyright (c), by Zend Technologies
出力に with Zend OPcache の文字列が表示されていれば、OPcacheが有効化されています。
注意:
Zend OPcache の文字列が表示されない場合は、設定ファイルのパスや構文を再確認してください。
◆MariaDB高速化設定
MariaDBのパフォーマンスチューニングを行います。
WordPressはデータベースへのアクセスが多いため、適切な設定によりサイト全体の応答速度を改善できます。
MariaDB設定ファイルの編集
sudo vi /etc/my.cnf.d/server.cnf
設定内容(抜粋):
[mysqld]
# バッファプール
innodb_buffer_pool_size = 2G
innodb_log_file_size = 256M
# スレッド
max_connections = 150
thread_cache_size = 100
# InnoDBの設定
innodb_flush_log_at_trx_commit = 2
innodb_io_capacity = 200
innodb_read_io_threads = 4
innodb_write_io_threads = 4
# その他のバッファ設定(WordPress向け)
key_buffer_size = 16M
sort_buffer_size = 2M
read_buffer_size = 1M
join_buffer_size = 1M
# パフォーマンススキーマ
performance_schema = ON
各パラメータの説明:
| パラメータ | 説明 |
|---|---|
innodb_buffer_pool_size | InnoDBのバッファプールサイズ。一般的にはメモリ容量の50〜70%程度を割り当てる。WordPressのような頻繁にアクセスされるサイトでは多めに設定すると効果的 |
innodb_log_file_size | トランザクションログのサイズ。頻繁な更新がある場合は大きくすることでパフォーマンスが向上する |
max_connections | 同時に許可される最大接続数。WordPressのアクセス数に応じて適宜調整 |
thread_cache_size | 再利用のためにキャッシュされるスレッド数。接続の頻繁な作成・破棄を減らし、オーバーヘッドを低減 |
innodb_flush_log_at_trx_commit | トランザクションコミット時のログ書き込み頻度(0:毎秒、1:毎コミット、2:毎コミット書き込み+毎秒フラッシュ)。2 はパフォーマンスと安全性のバランスがよい |
innodb_io_capacity | InnoDBのI/O処理能力の目安値。SSDを使用している場合はより高い値(例:1000〜2000)に設定するとパフォーマンスが向上する場合がある |
innodb_read_io_threads | 読み取り処理に使用するスレッド数 |
innodb_write_io_threads | 書き込み処理に使用するスレッド数 |
key_buffer_size | MyISAMのインデックスキャッシュサイズ。WordPressはInnoDBを主に使用するが、一部のシステムテーブルに影響 |
sort_buffer_size | ソート処理に使用するバッファサイズ |
read_buffer_size | テーブルスキャン時の読み取りバッファサイズ |
join_buffer_size | JOIN処理に使用するバッファサイズ |
performance_schema | パフォーマンス関連の統計情報を収集する機能。有効化するとオーバーヘッドが若干増加するが、詳細な性能分析が可能になる |
補足(SSD環境の場合):
innodb_io_capacity、innodb_read_io_threads、innodb_write_io_threads は、SSDを使用している環境では高めの値に設定するとI/O性能を最大限に活用できます。
補足(メモリ容量の目安):
innodb_buffer_pool_size はサーバの総メモリ容量に依存します。たとえばメモリが4GBの場合は 2G、8GBの場合は 4G〜6G 程度が目安です。
MariaDBの再起動
設定を反映するためにMariaDBを再起動します。
sudo systemctl restart mariadb
MariaDBの動作確認
MariaDBの起動状態を確認します。
sudo systemctl status mariadb
出力例(正常時):
● mariadb.service - MariaDB 10.5 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
Active: active (running) since ...
設定が正しく反映されているか、MariaDBに接続して確認します。
sudo mysql -u maruuser -p
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'max_connections';
出力例:
+-------------------------+------------+
| Variable_name | Value |
+-------------------------+------------+
| innodb_buffer_pool_size | 2147483648 |
+-------------------------+------------+
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 150 |
+-----------------+-------+
innodb_buffer_pool_size が 2147483648(2GB = 2 × 1024³ bytes)と表示されていれば設定が反映されています。
◆まとめ
本記事では、WordPressの高速化を目的としたPHP設定(OPcache)とMariaDB設定のチューニングについて説明しました。
実施内容:
- OPcacheの有効化とパラメータ調整
- MariaDBのバッファプール・スレッド・I/Oチューニング
- 各サービスの再起動と動作確認
注意事項:
◆次のステップ
次回は「Cockpit導入編」として、サーバ管理ツール Cockpit のインストールと設定についての手順を実施予定です。




コメント