WordPress構築のために、PHPとMariaDB(Mysql)環境を整備していきます
現状の状態は、
WordPress6.9.4、PHP 8.2.30 MariaDB10.5.29です。
今回は、バックアップ用が目的ですが、トライアルもかねて、なるべく新しいバージョンにしておきたいと思います。
現wordpressに対応している、phpとwordpressのバージョンは下記を参考にしました
上記を参考に、PHP8.4 MariaDB11.4(LTS)をインストールします
PHPのインストール
筆者の現環境では、PHPはまだインストールしていませんが、とりあえず確認します
php --version
やはりインストールされていませんが、もしインストールされている場合には、必要あればバックアップを取り、問題なければすべて削除します
sudo dnf remove php*
sudo dnf remove php-*
PHP モジュールリストを確認します
dnf module list php
Rocky Linux 9 - AppStream
Name Stream Profiles Summary
php 8.1 common [d], devel, minimal PHP scripting language
php 8.2 common [d], devel, minimal PHP scripting language
php 8.3 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name Stream Profiles Summary
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
php remi-8.3 common [d], devel, minimal PHP scripting language
php remi-8.4 common [d], devel, minimal PHP scripting language
php remi-8.5 common [d], devel, minimal PHP scripting language
私の環境では、AppStream には、8.3までですが、Remiでは、8.5まで登録されています
ここでは、最新は避けて8.4をインストールしようと思います
sudo dnf module install php:remi-8.4
sudo dnf install php
拡張機能を追加
WordPressを動作させるのに、必須と推奨なPHP拡張機能があります。
こちらとAIの意見を参考にして、インストールしておきたいと思います。
すでに、インストール済みや一致するものがない場合もありましたが、インストールしました
sudo dnf install \
php-mysql php-curl\
php-mysql php-exif\
php-mysql php-fileinfo\
php-mysql php-gd\
php-mysql php-imagick\
php-mysql php-intl\
php-mysql php-json\
php-mysql php-mbstring\
php-mysql php-mysqli\
php-mysql php-openssl\
php-mysql php-xml\
php-mysql php-zip
再起動
sudo systemctl restart httpd
sudo systemctl restart php-fpm
PHP8.4について、🧑💻AIからのアドバイス
補足:PHP 8.4での注意点(AIからのアドバイス)
PHP 8.4は比較的新しいため、利用しているWordPressテーマや古いプラグインがまだ対応しておらず、非推奨(Deprecated)の警告が出る場合があります。
- もしエラーが出る場合は、WordPressの管理画面から「サイトヘルス」を確認し、足りないモジュールがないかチェックしてみてください。
もし特定のプラグインで「これが足りない」と言われた場合は、
dnf search php-拡張名で探すとすぐに見つかりますよ。
php.ini の設定
PHPの設定は、「/etc/php.ini」で行います。
念のためバックアップととり、編集します。
sudo cp -p /etc/php.ini /etc/php.ini.org
sudo vi /etc/php.ini
筆者の利用方法としては、記事内に画像貼り付けと少数ですが動画も貼り付けたいと思っているので、多少余裕をもった設定にしました。
・
・
;expose_php = On
expose_php = Off
;max_execution_time = 30
max_execution_time = 300
;max_input_time = 60
max_input_time = 300
;max_input_vars = 1000
max_input_vars = 3000
;post_max_size = 8M
post_max_size = 300M
;upload_max_filesize = 2M
upload_max_filesize = 256M
;max_file_uploads = 20
max_file_uploads = 50
;date.timezone =
date.timezone = "Asia/Tokyo"
;mbstring.language = Japanese
mbstring.language = Japanese
;mbstring.internal_encoding =
mbstring.internal_encoding = UTF-8
;mbstring.http_input =
mbstring.http_input = UTF-8
;mbstring.http_output =
mbstring.http_output = pass
;mbstring.encoding_translation = Off
mbstring.encoding_translation = On
;mbstring.detect_order = auto
mbstring.detect_order = auto
;mbstring.substitute_character = none
mbstring.substitute_character = none
・
・
キャッシュ拡張用の10-opcache.ini の設定変更
OPcache(オプキャッシュ)は、PHPスクリプトのコンパイル結果(バイトコード)を共有メモリにキャッシュすることで、PHPの動作を高速化する拡張モジュールですが、その設定ファイルも余裕をみた設定にしました
/etc/php.d/10-opcache.ini もバックアップをとって編集します
sudo cp -p /etc/php.d/10-opcache.ini /etc/php.d/10-opcache.ini.org
sudo vi /etc/php.d/10-opcache.ini
・
・
opcache.enable=1
;opcache.memory_consumption=128
opcache.memory_consumption=256
;opcache.memory_consumption=128
opcache.memory_consumption=256
;opcache.max_accelerated_files=10000
opcache.max_accelerated_files=20000
・
・
sudo systemctl restart php-fpm
sudo systemctl restart httpd
httpd.conf の編集
こちらは、必須ではないですが、やっといたほうがいいかも?との🧑💻AIのアドバイスです
/etc/httpd/conf/httpd.conf
・
・
LimitRequestBody 314572800 #(= 約300MB)
・
ただ、こちらの情報では、
デフォルト値が
0(無制限) から 1 GiB に変更されたようです。
デフォルトでは無制限ではなくなったみたいです。
多少の動画添付を考慮した、WordPress側の設定
こちらも、🧑💻AIのアドバイス
画像貼り付け予定であれば、設定しておいたほうがよいとの事
こちらは、wordpress立ち上げ時に設定しようと思います
WordPress側の設定(wp-config.php)
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
PHP確認
「/home/www/home」に「index.php」という、ファイルを作成し、ブラウザに「https://www2.hogehoge.com/index.php」で確認します
echo '<?php phpinfo(); ?>' | sudo tee /home/www/html/index.php
アドレスバーに「https://www2.hogehoge.com/index.php」で確認します

確認ができたら、削除しておきましょう
sudo rm /home/www/html/index.php
MariaDB 11.4(LTS)
11.5も動作すると思いますが、11.4(LTS)をインストールしようと思います
リポジトリ追加
リポジトリ追加
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-11.4"
パッケージキャッシュの更新
sudo dnf makecache
EPEL リポジトリ系のネットワーク接続エラーが出たので、AIに聞いてみましたが、問題はないようです
AIの回答では閉鎖環境では、EPELを無効化する事でエラーは消えるようです(筆者は試していません)
EPEL リポジトリ系エラーについて、🧑💻AIの回答
なるほど、閉域網環境なんですね。その状況なら無効化で問題ないです。
EPEL を無効化する
sudo dnf config-manager --disable epel確認
sudo dnf makecacheエラーが消えれば OK です。
本機トラブル時に外部接続が必要になったら
その時は再度有効化すればいいだけです:
sudo dnf config-manager --enable epel切り替えが簡単なので、普段は無効化しておいて問題ありません👍
パッケージ情報の一覧は、下記で確認できます
11.4のパッケージが確認できました
dnf list mariadb*
・
MariaDB-client.x86_64 11.4.10-1.el9 @mariadb-main
MariaDB-client-compat.noarch 11.4.10-1.el9 @mariadb-main
MariaDB-common.x86_64 11.4.10-1.el9 @mariadb-main
MariaDB-server.x86_64 11.4.10-1.el9 @mariadb-main
MariaDB-server-compat.noarch 11.4.10-1.el9 @mariadb-main
MariaDB-shared.x86_64
・
MariaDB 11.4 のインストール
sudo dnf install -y MariaDB-server MariaDB-client
MariaDB サービスの起動と自動起動設定
sudo systemctl start mariadb
sudo systemctl enable mariadb
初期セキュリティ設定
sudo mariadb-secure-installation
対話形式で以下を設定します:
| 項目 | 推奨設定 |
|---|---|
| ERROR 2002 (HY000): Can’t connect to local server through socket | MariaDB サービスが起動していない場合、このエラーがでます。その場合は起動させます。 sudo systemctl start mariadb |
| Enter current password for root (enter for none): カレントrootパスワード: | 以前設定していなければ「Enter」 |
| Switch to unix_socket authentication [Y/n] Unix socket 認証 | n(パスワード認証を使う場合) |
| Change the root password? [Y/n] root パスワード設定 このパスワードは、データベース作成時にも使用するので、忘れないようにメモします | y → パスワードを入力データベースへのログインで使用する mysql -u root -p[パスワード] |
| Remove anonymous users? [Y/n] 匿名ユーザーの削除 | y |
| Disallow root login remotely? [Y/n] リモート root ログインの禁止 | y |
| Remove test database and access to it? [Y/n] テスト DB の削除 | y |
| Reload privilege tables now? [Y/n] 権限テーブルのリロード | y |
ファイアウォールの設定(外部接続が必要な場合)
外部からデータベースに接続する場合には、ファイヤフォールに許可します
筆者は外部からデータベースへのアクセスの予定はないので、今回は設定していませんが
覚書として、書いておきます。
sudo firewall-cmd --permanent --add-service=mysql
sudo firewall-cmd --reload
sudo firewall-cmd --list-all --zone=public
インストール確認
sudo systemctl status mariadb
文字コードの設定
文字化け防止に、文字コードを編集します
設定ファイルは
「/etc/my.cnf.d/server.cnf」
「/etc/my.cnf.d/client.cnf」で行うので
バックアップアップを取って、編集。
sudo cp -p /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.org
sudo cp -p /etc/my.cnf.d/client.cnf /etc/my.cnf.d/client.cnf.org
sudo vi /etc/my.cnf.d/server.cnf
・
・
# This group is only read by MariaDB servers, not by MySQL.
# If you use the same .cnf file for MySQL and MariaDB,
# you can put MariaDB-only options here
[mariadb]
# ----- 2026/05/01 -----
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
・
・
sudo vi /etc/my.cnf.d/client.cnf
・
・
#
# These two groups are read by the client library
# Use it for options that affect all clients, but not the server
#
[client]
# ----- 2026/05/01 -----
default-character-set = utf8mb4
・
・
再起動と確認
sudo systemctl restart mariadb
sudo systemctl status mariadb
mysql -u root -p[パスワード]
mysql: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb' instead
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 11.4.10-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show variables like "chara%";
+--------------------------+------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------+
| character_set_client | utf8mb4 |
| character_set_collations | |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mariadb/charsets/ |
+--------------------------+------------------------------+
9 rows in set (0.002 sec)
MariaDB [(none)]> quit
Bye
utf8mb4 になっていることを確認します
もし、「latin1」とかになっていた場合には、再起動「sudo systemctl restart mariadb」で反映されます。
WordPress環境構築まとめ
4
5
6

コメント