先日、Wockerで開発した子テーマをGitHub経由でさくらのVPSにアップロードする方法という記事を書きました。
しかしその直後にやはりWockerで開発したWordPressサイトは、やはりすべてのファイルやディレクトリを、丸ごと引越しさせる方が良いと思うようになりました(プラグインとかもインストールして試しているので…)。
WebサーバーやDBの設定も必要
WordPressファイルやディレクトリは、Wocker→ GitHub→さくらのVPSという具合にアップロードして、さくらのVPSでデータベースやWebサーバーなどの調整を行うという考え方です。
子テーマを転送するだけのときと違って、WordPressサイトを丸ごと引っ越しさせる場合、データベースやApacheの設定を調整する必要があります。そのため前回の記事より説明箇所が多くなります。
もっとも自分が行った作業はあくまで一例なので、ご自身の環境に合わせて臨機応変に読み替えていただければと。
1.WordPress専用のリポジトリを作成(GitHub)
GitHubのnew repositoryからWockerのコンテナ名に合わせてリポジトリを作成します。ここでは名前をexampleとしておきます。
2.ドキュメントルートディレクトリの変更(さくらのVPS)
$ sudo -s # cd /var/www # rm -rf hmtl # vi /etc/httpd/conf/httpd.conf # DocumentRoot "/var/www/html" DocumentRoot "/var/www/example"
Webサーバー(Apache)をインストールしたときにできる、/var/www/htmlは削除してます。続けて/var/www/example を新たに作成し、Webサーバー内でドキュメントルートディレクトリとして設定します。
Wockerのコンテナ名でディレクトリを作成しておく方が、のちにさくらのVPSで最新のリポジトリを取得するときに便利です。
3.リポジトリを取得する(さくらのVPS)
# cd /var/www/ # git clone https://github.com/githubusername/example.git
GitHubから受け取る、WordPressのファイルやディレクトリを格納するためのリポジトリを取得します。
4.Git管理対象外ファイルの指定(Wocker)
$ vi .gitignore .DS_Store wp-config.php
wp-config.phpは、WordPressを使用している環境に合わせますので、Gitによる管理の対象外ファイルとします。.DS_Storeを含めるかどうかは、その人が使用しているクライアントPCの状況によります。
4.Gitの初期化とコミット(Wocker)
$ cd wocker/data/example $ git init $ git add . $ git commit -m"1st commit"
Wockerで開発したWordPressサイトをGitで初期化し、内容をコミットしておきます。
5.リモートリポジトリに登録→送信(Wocker)
$ git remote add origin https://github.com/githubusername/example.git $ git push -u origin master
ローカル環境で開発した子テーマをリモートリポジトリとして登録し、内容をGitHubに送信します。このコマンドで”The requested URL returned error: 403″とか表示されたら、以下のコマンドを実行してみてください。
$ git remote set-url origin https://githubusername@github.com/githubusername/example.git $ git push -u origin master
6.リモートリポジトリの取得(さくらのVPS)
# cd /var/www/example # git pull origin master # cd .. # chown -R apache:username example # chmod -R 775 echizenya
外部サーバーのさくらのVPSの中に入って、GitHubにあるリモートリポジトリの内容を取得します。取得後にリポジトリ(ディレクトリ)のユーザー名、グループ名、権限を再帰的に変更します。
7.ローカル開発環境のDBをエクスポートと転送(Wocker)
$ wocker wp db export example.sql
Wockerにはデフォルトの状態でWP-CLIがインストールされていますので、そのコマンドを使ってデータベースファイルをエクスポートします。データベース名はexample.sqlとします。
データベースファイルは、ファイル転送ツール(CyberduckやFileZillaなど)を使って、ドキュメントルーディレクトリ直下に転送します。
8.専用のデータベースの作成とインポート(さくらのVPS)
# mysql -u root -p mysql> create database example mysql> exit
外部サーバーであるさくらのVPSでWordPress専用のデータベースを作成します。
9.データベースのインポート(さくらのVPS)
# mysql -u root -pmysqlpassword example < example.sql;
転送されてきたデータベースファイルを実行して、データベースのインポートをします。完了後、sqlファイルを削除します。
10.wp-cofig.phpファイルの作成と編集(さくらのVPS)
# cd /var/www/example # cp wp-config-sample.php wp-config.php # vi wp-config.php
[php]
<?php
// ** MySQL settings ** //
/** The name of the database for WordPress */
define('DB_NAME', 'example');
/** MySQL database username */
define('DB_USER', 'root');
/** MySQL database password */
define('DB_PASSWORD', 'hoge');
define('AUTH_KEY', 'your_auth_key');
define('SECURE_AUTH_KEY', 'your_securith_auth_key');
define('LOGGED_IN_KEY', 'your_logged_in_key');
define('NONCE_KEY', 'your_nonce_key');
define('AUTH_SALT', 'your_auth_salt');
define('SECURE_AUTH_SALT', 'your_secure_auth_salt');
define('LOGGED_IN_SALT', 'your_logged_in_salt');
define('NONCE_SALT', 'your_nonce_salt');
[/php]
WordPressが参照するデータベース情報が記述されている、wp-config.phpファイルをwp-config-sample.phpからコピーして、編集します。PHPのコードは編集箇所のみ載せています。WordPressの認証用ユニークキーは、こちらから取得できます。
ここまでの作業でWordPressサイトのURLにアクセスすると、「wp-config.phpがすでに存在しています」と言われることがありますが、そのときはブラウザキャッシュを削除しましょう。
11.文字列の置換と文字列数の変更(さくらのVPS)
WordPressのデータベース内には、元の環境のドメイン名やドキュメントルートディレクトリが記述されている箇所があります。またそれらの情報は、文字列だけでなく文字列数と合わせて記述されています。
そのため専用のスクリプトツールを使って、外部サーバーの環境に合うように文字列の置換、文字列数の変更を行う必要があります。具体的には、DATABASE SEARCH AND REPLACE SCRIPT IN PHPというスクリプトツールをダウンロードして使います。
詳しい使い方や考え方については、こちらのページで紹介されていますので参考にしてください。今回の例であれば、置換と変更の対象文字列は以下の2つです。さくらのVPSで使用するWordPressサイトのドメイン名は、example.comとします。
wocker.dev → example.com /var/www/wordpress → /var/www/example
置換が終了したらあとには、スクリプトツールの圧縮ファイルとディレクトリを必ず削除しましょう。
12.adminユーザーの削除と新しいユーザーを作成(さくらのVPS)
Wockerの場合、WordPressのユーザーとしてログインするときは、以下のユーザー名、パスワードを入力します。
ユーザー → admin パスワード → admin
WordPressのセキュリティ上これらは危険なので、新しいユーザーを作成した上で、adminユーザーで削除します。その方法についてはこちらのページで詳しく説明されています。
13..htaccessの有効化(さくらのVPS)
# vi /etc/httpd/conf/httpd.conf # <Directory "/var/www/html"> <Directory "/var/www/example"> # AllowOverride None AllowOverride All # service httpd restart
最後に先頭ページ以外の各ページのリンクが可能になるよう.htaccessを有効化します。具体的にはApacheの設定ファイルを次の通りに変更します。.htaccessの有効化については、こちらのページでも紹介されています。
〔参考サイト〕