WordPress移設

スポンサーリンク
RockyLinux
この記事は約12分で読めます。
ランキングに参加しています。応援よろしくお願いします。
ブログランキング・にほんブログ村へ 人気ブログランキングへ FC2ブログランキングへ
スポンサーリンク
この記事が気に入ったら
フォローしよう
最新情報をお届けします。

前回までの「LEMP(Linux、NginxMariaDBPHP)環境構築編」に続いて、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拡張モジュールをインストールします。

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接続できるよう公開鍵認証を設定します。

移設元サーバ(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のファイル全体をアーカイブ化します。

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!
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は強固なパスワードに変更してください。

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
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個をメモ帳等にコピーしておきます。

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設定ファイルを作成します。

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をリロードします。

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

パーマリンク設定を再保存してください:

  1. 管理画面にログイン
  2. 「設定」→「パーマリンク設定」
  3. 何も変更せず「変更を保存」をクリック

本記事では、CentOS 7からRocky Linux 9へのWordPress移設手順について説明しました。データベースとファイルの両方を安全に移行し、新しいサーバで正常に動作させることができました。

Rocky Linux 9 サーバ構築手順一覧

注意事項:

  • 移設作業前には必ずバックアップを取得してください
  • DNS切り替え前に動作確認を十分に行ってください
  • セキュリティキーは移設元と異なる新しいパスワードを使用してください

次回は「HTTPS(SSL/TLS)化編」についての手順を実施します。

Let’s Encryptを使用して無料のSSL/TLS証明書を取得し、サイトをHTTPS化します。

コメント

タイトルとURLをコピーしました