ニクニクドットミー

カッコいいおっさんを目指すエンジニアの厳かなブログ

Vagrantにロリポップで運用しているWordPressを構築した話

Vagrant このブログはロリポップで運用しているのですが、いままでバックアップを意識したことがありませんでした。

そこで、VagrantWordPress入れて、本番と同じブログをローカルに構築してみようと思い立ったので、やってみたという話です。 特にバックアップがどうのこうのという話ではありません。

やったこと

ローカルにVagrant建てて、WordPressをインストール。 ロリポップで運用しているブログの画像、ブログ記事を落としてきて、Vagrantへアップ。 ローカル環境のVagrantに本番同様のブログを構築。

でてこない話

  1. Vagrantのインストール
  2. WordPressのインストール

前提として、Vagrant上にWordPressが動作していることとします。

流れ

  1. phpMyAdminからdumpファイルをダウンロード
  2. ロリポップにアップした画像をダウンロード
  3. Vagrant上のMySQLにdumpファイルをインポート
  4. Vagrantに画像をアップロード(アップロードというか設置)
  5. 本番で使っているテーマをVagrant上のWordpressにインストール

ざっくりとこんな感じ。

では1から進めていきます。

phpMyAdminからdumpファイルをダウンロード

ロリポップphpMyAdminへログイン。 エクスポート->データベースの項目でinformation_schemaを外す->エクスポート方法 詳細を選択し実行。 これでMySQLdumpが取れます。

ロリポップにアップした画像をダウンロード

FTPツールなどを使って、画像をダウンロードします。 自分はツールCyberduckを使いました。 画像はwp-content/uploadsに入っていますので、ゴソっと落としましょう。

ここまでで、本番からダウンロードしてくるものはありません。 Vagrant側の作業にいきます。

Vagrant上のMySQLにdumpファイルをインポート

ローカルのVagrantのディレクトリに先ほど落としたdumpファイルを置きましょう。 ここに置くとVagrant上の/vagrant/以下に設置されることとなります。

vagrant up vagrant ssh vagrantへ入ります。ちなみに自分はCentOSを使っています。

追記 10/22 dumpしたsqlを書き換えることをすっかり忘れてました! sqlを開いて、自分のドメインVagrantで使っているIPに書き換えましょう。 でないと画像とかのURLが本番のURLになっているので、本番を見に行ってしまいます。

service mysqld status mysql -u root < /vagrant/lolipop.sql 特に問題なければDBが作成されるはずです。 自分はdumpファイルにinformation_schemaの作成も入ってしまっていて、インポートに失敗しました。

確認

mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | [データベース名] | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.01 sec)

mysql> use [データベース名]; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A

Database changed mysql> show tables; +--------------------------------+ | Tables_in_[データベース名] | +--------------------------------+ | wp1_commentmeta | | wp1_comments | | wp1_links | | wp1_nxs_log | | wp1_options | | wp1_postmeta | | wp1_posts | | wp1_statpress | | wp1_term_relationships | | wp1_term_taxonomy | | wp1_terms | | wp1_usermeta | | wp1_users | | wp1_wordbooker_errorlogs | | wp1_wordbooker_fb_friend_lists | | wp1_wordbooker_fb_friends | | wp1_wordbooker_postcomments | | wp1_wordbooker_postlogs | | wp1_wordbooker_process_queue | | wp1_wordbooker_userdata | | wp1_wordbooker_userstatus | +--------------------------------+ 21 rows in set (0.00 sec)

おそらく自分が入れているWordpressプラグインによって作られたテーブルもありそう。 ちゃんとテーブルが表示されているのでインポート完了。

Vagrantに画像をアップロード(アップロードというか設置)

FTPツールでダウンロードしたuploadsの画像を先ほどのMySQLdumpと同様にvagrantディレクトリに設置します。 Vagrant上のWordpressからこちらを参照して欲しいので、シンボリックリンクを張ります。 cd wp-content rm -rf uploads ln -s /vagrant/uploads/ uploads

ここまででダウンロードしたファイルたちの設置・インポートは完了です。

次にテーマのインストールと行きたいのですが、ちょっとWordpressのファイルをいじります。

vim wp-config.php

/* WordPress のためのデータベース名 / define('DB_NAME', '[データベース名]'); データベースの名前をインポートしたデータベース名へ変更。

/* * WordPress データベーステーブルの接頭辞 * * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を * インストールすることができます。半角英数字と下線のみを使用してください。 / //$table_prefix = 'wp'; $table_prefix = 'wp1'; ロリポップのテーブルはwp1_となっているので、そちらに合わせます。

define('FS_METHOD', 'direct'); ↑追記 これはWordpressのテーマのインストール時にftpの設定画面が表示されるのを防ぐ為に追記します。

これでVagrantWordpressロリポップと同じブログが構築されたと思います。 もし本番側のfunction.phpなどいじっている場合は、その辺りもダウンロードしておく必要があります。

では次にテーマのインストールします。

本番で使っているテーマをVagrant上のWordpressにインストール

Wordpressの外観->テーマ->新規追加->テーマのアップロード 自分は最近STINGER5というとても便利なテーマに変えたので、それをアップロードしました。 で、アップロードするときにftpの設定画面になってしまったので、先ほどのdefine('FS_METHOD', 'direct');を追加した次第です。 これに関してはこちらが参考になりました! WordpressでFTP接続情報を求められたときのメモ

アップロード完了して、テーマを有効化すればすべての作業が完了です!

ちなみにロリポップで生成されたDB名には-(ハイフン)が付いているので、ちょっとだけめんどうです。 自分が書いた記事を張っておきます。 MySQLで-(ハイフン)付きのデータベース名を使うとめんどい

ローカルで手軽に構築ができるので、Vagrantはとても便利だと思います。 これでテーマとかプラグインの検証が捗るぞ!