wordpressデータの移行方法について

Gakuです。

最近放置気味のこのブログなんですが、サクラのVPSがお高い&動作が重い感&conohaにvpsを統一したい願望がむくむくと湧き出てきたため、今回思い切って移行してみました。

あばれるコメント欄、放置される更新


2000件を超えるスパムコメント。。。

放置される更新。。。

さすがにあかんっすわ。なので移行です。

移行手順

いろいろ文献見てると、結構みんなハマってるみたいですw
今回の行った移行手順は、移行先に投稿記事&その他メディアだけのお引越しとなります。
プラグインやテーマの引越しは考えていませんのであしからず。

移行元からデータエクスポート

まずは移行元wordpressサーバからデータをエクスポートしてきます。

「エクスポートファイルをダウンロード」ボタンをクリックすると、下記のようなファイルがダウンロードされます。
このファイルが移行データになります。

ドメインの設定

ここまで終われば、移行元wordpressサイトは不要です。
なので、このタイミングでドメインを移行先サイトへ設定しておきます。

wordpressのインストール前にこの作業を行っておかないと、動作がおかしなことになるので、必ずやっておきましょう。
(※ここらへんどうにかならんのかな。。。)

ドメインの設定が完了したら移行先サーバへwordpressのインストールを行います。

移行データを編集

先ほどエキスポートしたxmlデータですが、このままインポートすると失敗します。
原因としては画像データ等々が前ドメインの内容になっていて、インポート元で参照することができないためです。
そこで、下記コマンドでxmlの内容を一括置換します。

sed -i -e 's/https:\/\/www.gakusmemo.com\//http:\/\/???.???.???.???\//g' ~/Desktop/ファイル名

https://www.gakusmemo.com/部分は各自の移行元ドメイン名を設定し、???.???.???.???は移行元のIPアドレスを設定します。
これでhttps://www.gakusmemo.com/が移行元サーバIPの???.???.???.???になるため、インポート先でも失敗なく参照できるようになります。

移行先へデータをインポート

先ほど編集したxmlファイルを移行先wordpressへインポートします。


wordpressの今すぐインストールをクリック。

xmlファイルを指定します。
ここで、エラーが出る場合、uploadのファイルサイズ制限に引っかかっている可能性があります。
その際は、php.iniのupload_max_filesizeの数値を大きくして、再度uploadします。

uploadが完了すればこの画面に遷移します。
この画面では必ず、「添付ファイルをダウンロードしてインポートする」にチェックを入れて「実行」ボタンを押してください。
チェックを入れることで、画像等々のファイルを格納してくれます。

少し待って、この画面に遷移すれば移行完了です。

おわりに

みんなくっそハマってますねw
文献参照していると「dbdump取っていろいろやる」という手法が多いのですが、沼地にハマっていく気がしてこの方法に行き着きました。
わかってしまえば簡単です。純正のインポートツール使うのが一番の近道ですね。

これでdocker上で動くwordpress環境が手に入りましたので、今後はそこまでビビらずいろいろ作業できそうです( ^ω^ )
ではでは。

nginx+mysqlでwordpressを構築してみよう

wordpress-code-image

gakuです。今回はこのブログを立ち上げる際、wordpressを使用しましたのでその際の構築手法を掲載したいと思います。

wordpressって何

wordpressとは、ブログを作るためのアプリケーションです。世の中にはhatenaブログやlivedoorブログなど様々なブログがありますが、wordpressは自分でサーバ構築しその上で動作させるシステムですので、プラグインなどによる拡張性やテーマのカスタマイズなどあらゆるところに手が届くシステムとなっています。
そこまで難しいものではないので、サーバ構築の勉強題材としても良いかもしれません。

構築方法

今回はCentOS6.5へwordpressの構築を行います。
サーバにアクセスは出来ている前提で話を進めていきます。

nginxの導入

webサーバーアプリのnginxを導入します。

$ vi /etc/yum.repos.d/nginx.repo

nginx.repoファイルに以下のように記載

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
$ yum install nginx

これでnginxの導入は完了です。
nginxの設定を行っていきましょう。

$ vi /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  localhost;
    root   /var/www/wordpress;  #wordpressの格納場所
    index  index.php;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    location ~ /\.ht {
        deny  all;
    }

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    #location / {
    #    root   /usr/share/nginx/html;
    #    index  index.html index.htm;
    #}

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

wordpressの格納場所と、ポート番号を指定することに注意すれば設定も簡単です。

PHPの導入

wordpressはPHP言語で動作しています。そのため、PHPを導入する必要があります。
以下のコマンドでインストールを行います。

$ yum install php php-pdo php-xml php-pear php-xmlrpc php-common php-cli php-gd php-mysql php-devel php-mbstring php-fpm

設定についてはこんな感じで編集します。

$ vi /etc/php-fpm.d/www.conf
;user = apache
user = nginx

;group = apache
group = nginx

apacheからnginxへ2箇所修正するだけでOKです。こちらも簡単です。

MySQLの導入

データベースであるMySQLを導入します。以下のコマンドでインストールします。

$ yum install mysql mysql-server

インストールが終わったらmysqlへアクセスし、DBとユーザを作成します。

$ mysql -u root -p

DBの作成&ユーザの作成

create database wpdb;
grant all on wpdb.* to 'username'@'localhost' identified by 'password';

MySQLの設定もこれで終わりです。

サービスの起動

各種サービスを起動します。以下コマンドで起動することができます。

$ sudo /etc/init.d/nginx start
$ sudo /etc/init.d/php-fpm start
$ sudo /etc/init.d/mysqld start

また、OS起動時に各種サービスを自動起動するように設定しておきます。

$ sudo chkconfig nginx on
$ sudo chkconfig php-fpm on
$ sudo chkconfig mysqld on

wordpressの導入

最後にwordpressを導入します。以下URLからwordpressの.tar.gz形式のファイルをダウンロードします。(wgetあたり使います。)
https://ja.wordpress.org/

ダウンロードが終わったら、nginxで指定した格納場所へwordpressを配置します。

$ sudo tar xfvz wordpress-4.3-ja.tar.gz -C /var/www

アクセスしてみる

サーバアドレスへアクセスするとwordpressの設定画面が表示されていると思います。
スクリーンショット 2014-12-22 23.32.09
設定内容を記入し「送信」ボタンをクリックします。

wp-config.php&その他の設定

今回の場合、/var/www/wordpress以下にwp-config.phpを作成し画面に表示されている設定をコピー&ペーストし貼り付けます。
また、FTP接続でのプラグインなどの導入は面倒なので、最後に1行付け加えます。

define('FS_METHOD','direct');

このままでは、画面上でプラグインやテーマをインストールすると「権限がない」と怒られてしまうので、各種フォルダへ権限も付与しておきます。
フォルダがない場合は作成してください。

/wp-content/upgrade
/wp-content/uploads
/wp-content/themes
/wp-content/plugins
/wp-content/languages
$ sudo chmod 0707 upgrade
$ sudo chmod 0707 uploads
$ sudo chmod 0707 themes
$ sudo chmod 0707 plugins
$ sudo chmod 0707 languages

おわりに

以上でwordpressの構築は終わりです。シンプルな設定が多いですが最後の権限付与周りなどはまりどころもあるため掲載しておきます。
それにしてもwordpressは楽しい。

wordpressにSyntaxHighlightを導入してみる

SyntaxHighlighter
Gakuです。
このブログではプログラムコードを多く載せることになると思うので、見やすいようにSyntaxHighlightできるプラグインを導入してみます。

https://wordpress.org/plugins/syntaxhighlighter/

無題

zipのままダウンロードして、pluginでアップロードします。
この時、権限がないと怒られる時があります。その際は/wordpress/wp-contentへuploadsフォルダを作成し権限を付与して下さい。

mkdir uploads
sudo chmod 0707 uploads

導入完了。Very Easy。。。

使ってみる

使い方も簡単。[code][/code]で囲ってあげればその部分がハイライトされる。
(今回の例では[]を全角で表記していますが、実際は半角で)
[java]
int val = 11;
if (val == 10) {
System.out.println(“変数valは10です”);
} else if (val == 20) {
System.out.println(“変数valは20です”);
} else {
System.out.println(“変数valは10でも20でもありません”);
}
[/java]

int val = 11;
if (val == 10) {
  System.out.println("変数valは10です");
} else if (val == 20) {
  System.out.println("変数valは20です");
} else {
  System.out.println("変数valは10でも20でもありません");
}

使える言語はこんな感じ。

html,actionscript3,bash,coldfusion,cpp,csharp,css,
delphi,erlang,fsharp,diff,groovy,javascript,java,javafx,
matlab (keywords only),objc,perl,php,text,powershell,
python,r,ruby,scala,sql,vb,xml

slimがない!erbがない!railsがない!
まぁ、いいか。多分css追加すれば対応できると思う。

参考文献

ソースコードをキレイに表示するWordPressプラグイン「SyntaxHighlighter Evolved」