LoginSignup
2
4

More than 5 years have passed since last update.

wordpress サーバ移設作業メモ(ubuntu14.04LTS)

Last updated at Posted at 2016-08-28

初めに

Ubuntu14.04LTS 間で wordpress を移設したときの個人的メモです。

移設理由

主たる理由はサーバ統合によるコストダウン。現状は負荷が少ないのでより安いサービスに移設する。

wordpressのインストール

前提

  • Ubuntu-14.04 LTSに、apt から apache と mysql がインストールされれている。 (個人的にはnginx とか marinaDBも試したいが時間がないのでパス)
  • Global IPアドレス、もしくは、ルータやLoadBalancer等でインターネット側からアクセスで http アクセスができる

インストール

今回は apt を使い、依存パッケージを含めてまとめてインストール。

$ sudo apt-get install wordpress

https://ja.wordpress.org/ から最新版をダウンロードする方法でもよい。

Apacheの設定

  • 今回は、別ドメインを使うので、VirtualHost 設定を利用。
$ vi /etc/apache2/sites-available/wordpress.conf

<VirtualHost *:80>
    ServerAdmin staff@example.com
    ServerName www.example.com
    RewriteEngine on
    DocumentRoot /var/share/wordpress/
    <Directory /var/share/wordpress/>
        Options FollowSymLinks
        AllowOverride Limit Options FileInfo
        DirectoryIndex index.php
        Require all granted
    </Directory>
</VirtualHost>

非公開コンテンツがある場合は、設定がおわるまでダイジェスト認証等をつけておいたほうが安心。

  • 設定の有効化
$ ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enable/wordpress.conf
  • 設定ファイルの文法確認
$ apache2ctl configtest
Syntax OK
  • 設定反映
$ /etc/init.d/apache2 graceful
  • 動作確認

必要であれば、設定したホスト名でアクセスできるようにDNS設定を行う。
DNS設定確認後、curlコマンドで http://www.example.com にアクセスする。

$ curl http://www.example.com
Neither /etc/wordpress/config-www.example.com nor /etc/wordpress/config-example.com could be found. 
Ensure one of them exists, is readable by the webserver and contains the right password/username.

まだ設定ファイルがないので、このエラーで正しい動作。

WordPress設定

ここからが本題で、旧サーバの環境を移行します。

DBデータの移行

  • DBデータのダンプ

phpMyAdminが便利ですが、セキュリティ的にあまり使いたくないのでコンソールから行います。

まずは移行元にsshログインしてmysqldumpでダンプを取得し、scp等で移行先にコピーする。。

mysqldump -h [mysqlDBhost] -u [user] -p --default-character-set=binary [DBname] > wpdump.sql

SSLアクセスができるなら、一時的にポートを開けてリモートからダンプする方法も使えます。

  • DBアカウントの作成

移行先サーバにログインしDBアカウントを作成する。

  • DBデータのリストア

URLが変更になる場合は、予め sed を使ってURLを変更する。エディタでも可能ではあるいが、修正ミスのおそれがあるのでお勧めしない。

$ sed -i 's|[旧URL]|[新URL]|' wpdump.sql

あたらしいサーバのデータベースにリストア

mysql -h HOST -u USER -p DBNAME < wpdump.sql
  • データベース内容の修正

旧サーバへのリダイレクト設定を修正する場合は、「wp_options」というテーブルの「siteurl」と「home」という項目を更新する。

UPDATE wp_options SET option_value = 'http://wptest.example.com' WHERE option_value = 'http://wp.example.com';

(追記)
DBのURL修正について

Search and Replace for WordPress Databases Script]
を使うのが公式な方法です。データベースを直接書き換えるのは、事故の元にななるので、このツールを使うほうが確実でと思われます。

コンテンツの移行

 作業時間節約のため、コンテンツは丸ごとコピーします。
まず旧サーバにログインして、WordPressのディレクトリを丸ごとコピー。

$ cd /usr/share/wordpress/
$ car cvfz /tmp/wpdump.tgz *

DBダンプと同様、scp等で新サーバにコピーし展開

mv /usr/share/wordpress /usr/share/wordpress.orig
cd /usr/share/wordpress/ /usr/share/wordpress/
tar xvfz wpdump.tgz
cd /usr/share/wordpress/ /usr/share/wordpress/
  • 設定ファイルの修正

/usr/share/wordpress/wp-config.php のデータベース名、DBユーザとパスワードなどを新サーバに合わせて修正する

  • 動作確認

ブラウザでアクセスしてみる。

その他Tips

  • WordPress更新時にFTP接続情報入力画面となる場合の回避方法。

ウェブサーバの実行権限と、wordpressのファイル権限が違いことで発生するらしい。ubuntuの場合 www-data で統一すれば解消できる。

sudo chown -R www-data:www-data /usr/share/wordpress/

ファイルオーナが書き換えられない場合は「wp-config.php」に以下の行を書着こむことでも可能

define('FS_METHOD', 'direct');

参考

2
4
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
2
4