0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WordPressコンテンツの復元

Last updated at Posted at 2021-11-04
1 / 5

はじめに

  • 社内WordPressサイトを収めていたQNAPがハードウェア故障した
  • WordPressコンテンツを別サーバに復元した時の手順と内容を記す

WordPressコンテンツのサルベージ

よく知られているように、次の2つのデータを新サーバに持っていく

  1. MySQL(MariaDB)のWordPressデータベースをバックアップ
  2. WordPressコンテンツファイルをバックアップ
sh
# 1.
mysql -u root -p WORDPRESS_DATEBASE > /tmp/wp-content.sql
# 2.
cd /var/www/html/wordpress/ && tar cvzf /tmp/wp-content.tar.gz wp-content/

新サーバにWordPressの環境構築

  1. 新サーバにログイン
  2. php、MySQL(MariaDB)、phpmyadmin、apache2
  3. WordPressのインストール
  4. WordPressコンテンツファイルをコピー
  5. WordPressデータベースの復元とWordPressのDB接続設定を編集
  6. WordPressサイトにアクセス
sh
# 0.旧サーバの名称はqnapとする
# 1.は省略
# 2.
wget https://ja.wordpress.org/latest-ja.tar.gz -O /tmp/latest.tar.gz
tar xvzf /tmp/latest.tar.gz

# 3. 
scp USER@qnap:/tmp/wp-content.sql /tmp
scp USER@qnap:/tmp/wp-content.tar.gz /tmp

# もし、中間ファイルを作りたくない場合は
# cd /var/www/html/wordpress/
# ssh USER@qnap "cd /var/www/html/wordpress/ && tar cvzf - wp-content/" | tar xvzf -
# 旧サーバからなら
# cd /var/www/html/wordpress/
# tar cvzf - wp-content/ | ssh USER@新サーバ "cd /var/www/html/wordpress/ && tar xvzf -"


# 4.
sudo mysql -u root -p WORDPRESS_DATABASE < /tmp/wp_content.sql
cd /var/www/html/
sudo tar xvzf /tmp/wp-content.tar.gz
sudo cp -pr wp-config-example.php wp-config.php
sudo chown -R www-data:www-data .
sudo vi wp-config.php
# db接続設定を編集
define('DB_NAME', '${WORDPRESS_DATABASE}');
define('DB_USER', 'root');
define('DB_PASSWORD', '${PASSWORD}');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4_general_ci');

# 5.
# Webブラウザで新サーバへアクセス http://qnap/wordpress/index.php 

#問題と対策

phpのエラー

挙動がおかしい時は、wp-config.phpのWP_DEBUGをfalseからtrueにすること。

旧URL参照でのリンク切れ

phpmyadminからWORDPRESS_DATEBASEデータベースのwp_optionsテーブルの次の項目を修正

もし、データベース名で振り替えているなら新サーバでシンボリックリンクを貼っておく

sh
cd /var/www/html/
sudo ln -s wordpress WORDPRESS_DATABASE

リンク切れ対策

これまでの手順では、index.htmlは表示されるけれども、個別記事の参照で404 Not Foundが出る可能性がある
その場合は、apacheの設定の問題なので追加設定。

sh
# 0.WordPressでパーマリンクの設定を保存しておくと、.htaccessが生成される
# 1. apacheにmod_rewriteを組み込む
e2enmod rewrite

AllowOverrideをNoneからAllに。

/etc/apache2/apache2.conf
<Directory /var/www/>
        Options Indexes FollowSymLinks ExecCGI
        AllowOverride All
        Require all granted
</Directory>
sh
sudo apachectl restart
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?