◆はじめに
前回までの「LEMP(Linux、Nginx、MariaDB、PHP)環境構築編」に続いて、Rocky Linux 9 サーバ構築手順次のステップは、「WordPress移設編」について設定を行います。
この設定により、旧サーバ(CentOS 7)のWordPressサイトを新しいRocky Linux 9サーバへ移行することができます。データベースとファイルの両方を安全に移行し、動作確認まで実施します。
免責事項:
本記事の内容は筆者の環境で動作確認したものですが、すべての環境での動作を保証するものではありません。本記事の手順を実施する際は、以下の点にご注意ください。
◆環境情報
当ブログサイトを運用しているサーバは、「KAGOYA JAPAN」で提供されている「KAGOYA CLOUD VPS」を利用しています。
- 移設元OS: CentOS 7
- 移設先OS: Rocky Linux 9
- Webサーバ: Nginx
- データベース: MariaDB
- PHP: 8.3
◆WordPress移設
・移設準備
移設先サーバでの準備
PHP必要パッケージのインストール
WordPressに必要なPHP拡張モジュールをインストールします。
sudo dnf install -y php-{intl,zip,opcache,pdo}
'~ 中略 ~'
Installed:
capstone-4.0.2-10.el9.x86_64
libicu74-74.2-1.el9.remi.x86_64
php-intl-8.3.12-1.el9.remi.x86_64
php-opcache-8.3.12-1.el9.remi.x86_64
php-pecl-zip-1.22.4-1.el9.remi.8.3.x86_64
remi-libzip-1.11.1-1.el9.remi.x86_64
Complete!
各パッケージの説明:
php-intl: 国際化ライブラリ(日付や数値のフォーマットなど)php-zip: ZIPアーカイブの処理ライブラリ(テーマやプラグインのアップデートなど)php-opcache: オプコードキャッシュ。PHPスクリプトの実行速度を向上させるphp-pdo: データベースアクセス抽象化レイヤー。複数のデータベースに統一的なインターフェースでアクセスできる
SSH接続設定
移設元サーバから移設先サーバへSSH接続できるよう公開鍵認証を設定します。
移設元サーバ(CentOS 7)での作業:
ssh-keygen
ls ~/.ssh
authorized_keys authorized_keys2 id_rsa id_rsa.pub known_hosts
cat id_rsa.pub
移設先サーバ(Rocky Linux 9)での作業:
vi ~/.ssh/authorized_keys
表示された公開鍵(id_rsa.pubの内容)をauthorized_keysファイルに追記します。
接続確認(CentOS 7):
ssh maruuser@192.0.2.100
exit
※IPアドレスは実際のサーバIPに置き換えてください。
・移設元サーバでのバックアップ
データベースのダンプ
WordPressのデータベース全体をエクスポートします。
mysqldump -u root -p wordpress > wordpress.sql
実行後、パスワードを入力します。
WordPressファイルのバックアップ
WordPressのファイル全体をアーカイブ化します。
sudo tar czvf wordpress.tar.gz /var/www/wordpress
移設先サーバへの転送
バックアップファイルを移設先サーバへSCPで転送します。
scp wordpress.sql maruuser@192.0.2.100:/tmp/
wordpress.sql 100% 2539MB 8.6MB/s 04:53
scp wordpress.tar.gz maruuser@192.0.2.100:/tmp/
wordpress.tar.gz 100% 10GB 9.1MB/s 19:02
※IPアドレスとユーザ名は実際の環境に合わせて変更してください。
・移設先サーバでのリストア
パスワード生成ツールのインストール
WordPress設定ファイルで使用する認証キー用のパスワードを生成するツールをインストールします。
sudo dnf install -y pwgen
'~ 中略 ~'
Installed:
pwgen-2.08-8.el9.x86_64
Complete!
データベースの作成
MariaDBへのログイン
mysql -u root -p
mysql: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb' instead
Enter password:
データベースの作成
CREATE DATABASE wordpress;
Query OK, 1 row affected (0.025 sec)
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wordpress |
+--------------------+
5 rows in set (0.027 sec)
ユーザの作成と権限の付与
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
EXIT
Bye
※your_secure_passwordは強固なパスワードに変更してください。
SQLファイルのインポート
WordPressユーザでログイン
mysql -u wordpress -p
mysql: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb' instead
Enter password:
データベースの選択とインポート
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| wordpress |
+--------------------+
2 rows in set (0.002 sec)
USE wordpress;
Database changed
SOURCE /tmp/wordpress.sql;
インポートが完了するまで待ちます(サイズによっては数分かかります)。
テーブルの確認
SHOW TABLES;
+---------------------------------------+
| Tables_in_wordpress |
+---------------------------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+---------------------------------------+
12 rows in set (0.001 sec)
EXIT
Bye
WordPressファイルの展開と配置
アーカイブの展開
cd /tmp
tar zxvf wordpress.tar.gz
cd var/www/
ファイルの配置
sudo mv wordpress/ /var/www/html/wp/
※配置先のディレクトリパスは環境に合わせて変更してください。
セキュリティキー用パスワードの生成
WordPress設定ファイルで使用する認証キーとソルト用のパスワードを生成します。
pwgen -sy 64 -r "'"
オプションの説明:
-s:--secure完全ランダムな文字列を生成-y:--symbols特殊記号を含める-r "'":--remove-charsシングルクォーテーションを除外64: 文字数(デフォルトは8文字)
デフォルトで20個のパスワードが生成されるので、8個をメモ帳等にコピーしておきます。
設定ファイル(wp-config.php)の編集
メインサイトの設定
sudo vi /var/www/html/wp/wp-config.php
以下の部分を編集します:
'~ 抜粋 ~'
// Begin AIOWPSEC Firewall
if (file_exists('/var/www/html/wp/aios-bootstrap.php')) {
include_once('/var/www/html/wp/aios-bootstrap.php');
}
define('AUTH_KEY', 'generated_password_1');
define('SECURE_AUTH_KEY', 'generated_password_2');
define('LOGGED_IN_KEY', 'generated_password_3');
define('NONCE_KEY', 'generated_password_4');
define('AUTH_SALT', 'generated_password_5');
define('SECURE_AUTH_SALT', 'generated_password_6');
define('LOGGED_IN_SALT', 'generated_password_7');
define('NONCE_SALT', 'generated_password_8');
※generated_password_#の部分に、先ほど生成した8個のパスワードをそれぞれコピー&ペーストします。
サブサイトの設定(複数サイトがある場合)
複数のWordPressサイトを運用している場合は、他のサイトの設定ファイルも同様に編集します。
sudo vi /var/www/html/art/wp-config.php
重要: 認証キーとソルトには、メインサイトと同じパスワードを使用してください。
パーミッションの設定
Nginxユーザがファイルにアクセスできるよう、所有権を変更します。
sudo chown -R nginx:nginx /var/www/html/wp
・Nginx設定
設定ファイルの作成
ドメイン用のNginx設定ファイルを作成します。
sudo vi /etc/nginx/conf.d/www.example.com.conf
以下の内容を記述します:
server {
listen 80;
listen [::]:80;
root /var/www/html/wp;
index index.html index.htm index.php;
server_name www.example.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
※www.example.comと/var/www/html/wpは実際のドメインとパスに変更してください。
設定ファイルの構文確認
Nginx設定ファイルに文法エラーがないか確認します。
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Nginxサービスのリロード
設定を反映させるためNginxをリロードします。
sudo systemctl reload nginx
・動作確認
ブラウザでアクセス
ブラウザでhttp://www.example.com(実際のドメイン)にアクセスします。
ブログページが正しく表示されれば、WordPress移設は完了です。
確認項目
移設後、以下の項目を確認してください:
- トップページの表示
- 記事ページの表示
- 画像の表示
- プラグインの動作
- 管理画面へのログイン
- パーマリンク設定の確認
・トラブルシューティング
データベース接続エラーが表示される場合
wp-config.phpのデータベース接続情報を確認してください:
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'your_secure_password');
define('DB_HOST', 'localhost');
画像が表示されない場合
ファイルのパーミッションとNginxの設定を確認してください:
sudo chown -R nginx:nginx /var/www/html/wp
sudo chmod -R 755 /var/www/html/wp
404エラーが表示される場合
パーマリンク設定を再保存してください:
- 管理画面にログイン
- 「設定」→「パーマリンク設定」
- 何も変更せず「変更を保存」をクリック
◆まとめ
本記事では、CentOS 7からRocky Linux 9へのWordPress移設手順について説明しました。データベースとファイルの両方を安全に移行し、新しいサーバで正常に動作させることができました。
注意事項:
◆次のステップ
次回は「HTTPS(SSL/TLS)化編」についての手順を実施します。
Let’s Encryptを使用して無料のSSL/TLS証明書を取得し、サイトをHTTPS化します。





コメント