2011年8月3日水曜日

Project in フィリピン③(完)

フィリピン・セブ島生活も残り3日にして、なんとかフィリピンプロジェクトが完成しました。

コンテンツ量は、まだまだ少ないものの、これから徐々に増やしていきたいと思います。
完成したサイトが下記です↓


今後はローカルではなく、本番環境で手をいれていこうと思います。

Wordpressのローカル環境から本番環境への移行に関しては、絶対にエラーが多発してトラブルになるのが本能的に分かっていたので、今日こそやろう!いや、明日こそは! という感じで、ぐずぐずしてましたが、やっと昨日から着手しました・・・。

案の定、エラーが多発で、完了するまで実働5時間くらいかかりましたが、なんとかクリアしました。

次回は同じエラーを繰り返したくないので備忘録も兼ねて記録しておきたいと思います。
下記は、あくまで自分の場合のケースのため、下記の通りやる場合は、各自の責任でバックアップをとって実行してください↓


<自分の環境>
・サーバーは、さくらサーバーを借りる
(スタンダードプラン以上でないと、PHPが使えないので注意)
・ムームードメインで、ドメインを取得して、さくらサーバへ移管
・XAMPPでローカル環境でテーマ構築

<参照>
・Webクリエイターズボックス:WordPress オリジナルテーマをアップロードする 

P-mtg アーカイブ:XAMPPで制作したWordPressを本サーバに


<全体の工程:ローカル環境から本番環境までの移行>

ローカル側の作業

1.ローカル側のPHP Adminにアクセス
2.エクスポートタブをクリック

ここで早速、第一のトラップ。
エクスポートする際は、以下に注意しないとさくらサーバでインポートした際にエラーとなります。
(実際エラーになりました。)

・PHP adminの左側のサイドバーでエクスポートしたい「データベースを選択」する
・そのすぐ右側の欄で「全選択」を押す
・オプション欄の構造の箇所でDROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT を追加」にチェックを入れる
そして、完全な INSERT 文を作成する」欄のチェックをはずす



上記をちゃんとクリアして、「実行する」をクリック。
そうするとSqlファイルが吐き出されます。


3.上記2でエクスポートしたsqlファイルをDreamweaverで開いて、ローカルのURLを本番のURLに置き換える。
(ウィンドウズのメモ帳などでは、文字コードが異なるので編集しないようにしましょう)

Dreamweaverでsqlを開いたら、「Ctrl + F」を押して、一気に置換する。
自分の場合は、「http://localhost/mysite」を「http://good-english.jp」を置き換えした。
その際、「http://localhost/mysite/」のように最後に「/(スラッシュ)」などは入れなかった。

置き換えした結果、200個以上が置き換えされました。


ローカル側の作業は以上で完了。


さくらサーバー側の作業

4.さくらサーバーのサーバーコントロールパネルにログイン
5.左側のバーの「データベース設定」から「管理ツールログイン」をクリックしてサーバ側のPHP adminにログインする

ここで、PHPのバージョンをローカルと本番で合わせる必要はないのだろうか?と疑問に思う。
さくらサーバのコントロールパネルの「PHPのバージョン選択」から、バージョンを変更できるようになっている。さあ、どうしよう。
ちなみに、サーバ側は「PHP 5.2.17 [標準のPHP]」となっており、ローカル側と異なっていたが、無視することとした。(結果、問題なしだった。一応調べてみるとローカル側のPHPが古いと問題となるかと思われる。)




6.sqlファイルをインポートする

PHP adminに入ったら、左側のサイドバーでデータベースを選択してから、インポートファイルを選択して「実行」します。
これをきちんと選択しないとエラーとなるため注意。

ちなみに自分の場合は、上記と工程2にて、トラップにハマっていたため、以下エラーが発生しました。
#1046 - No database selected
Access denied for user・・・



以上でサーバー側の作業は完了です。


ワードプレスのファイル全体をサーバーにアップロード

7.FTPソフトを使って、アップロードします。

自分の場合は、一番有名どころのFFFTPを使ってアップロードしました。
仮に、ドメインのルートディレクトリを「/example」にしていれば、FFFTPにて、ローカル側の「htdocs」より下の階層のファイルを全て「/example」に放り込む。
(通常、ローカルではhtdocs以下にワードプレスのファイルを格納しているかと思います。ファイル数が非常に多いので時間がかかります。)

ここでまたもや2つのトラップあり。
1つ目は、パーミッションの設定。phpのパーミッションを705(もしくは755)にする必要あり。
さくらサーバーのマニュアルを参考(以下抜粋)

1.FFFTP を起動し「オプション(O)」>「環境設定(S)」メニューを選択し、オプションダイアログを開きます。
2. 「転送3」タブをクリックし、「追加(A)」ボタンをクリックします。
3. デフォルト属性の設定ダイアログが開きますので、[ファイル名(F)]欄に「*.php」、[属性(A)]欄に「705」入力し OKボタンをクリックします。

2つ目は、何度やってもアップロードできないファイルがあった。
エラー内容としては「PASVモードで接続できません」と出てしまう。
調べてみると、知恵袋でこんなベストアンサーを発見。
早速試してみたところエラーが解消された!
サーバ側でパッシブモードでの接続を拒否している場合にこうなることがあります。FFFTPの接続メニュー ---> 接続 ---> ホスト一覧から選択 ---> 設定変更 ---> ホストの設定の拡張タブをクリック ---> PASVモードを使うここにチェックが入っていたら、外して接続してみて下さい。


8.サーバー側でアップロードしたファイルの内、wp-config.phpを変更する。

これまたメモ帳などで開かないようにして、編集します。
自分の場合は、さくらサーバーのコントロールパネルのファイルマネージャ(旧バージョン)から下記画面を展開し「編集」にて修正しました。



内容は下記に変更。
全部、さくらのコントロールパネルの「データベースの設定」に記載されている内容です。

// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** ///** WordPress のためのデータベース名 */define('DB_NAME', 'さくらのデータベース設定にある情報を入力(データベース名)');
/** MySQL データベースのユーザー名 */define('DB_USER', 'さくらのデータベース設定にある情報を入力(データベースユーザ名)');
/** MySQL データベースのパスワード */define('DB_PASSWORD', 'データベース接続パスワード');
/** MySQL のホスト名 */define('DB_HOST', 'データベースサーバ(例 mysql999.db.sakura.ne.jp)');
/** データベースのテーブルを作成する際のデータベースのキャラクターセット */define('DB_CHARSET', 'utf8');
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */define('DB_COLLATE', '');


9.以上で完了、本番URLにアクセスすれば記事も含めてワードプレスが全て移管できているはず・・・ だが、案の定エラーとなる。

エラー事象は、トップページには問題なく表示されるが、各記事のページに遷移しようとすると、「Internal Server Error wordpress」となる。
ワードプレスのダッシュボードなどには、問題なく表示されていて記事の投稿もできる。

なぜだ・・・3時間悩む。
とりあえずgoogleで検索しながら、下記を試す。

.htaccessファイルのパーミッションを「666」へ変更
 (さくらのファイルマネージャから変更可能)
・同じく同ファイルのファイル内容を、下記に変更

# BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /ローカルのルートのままだったので、ここに本番に格納したルートを挿/RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /同じくルートを挿入/index.php [L]</IfModule>
# END WordPress


それでも、「Internal Server Error 」となってしまうため、

・ワードプレスのプラグインをいったん全て無効化してみる。

それでもダメ。ワードプレスフォーラムを隅から隅まで見てみると、パーマリンクを独自にしていると再度構築する必要がある、などの回答が結構あった。
だけど自分の場合は、特に独自のパーマリンク設定はしておらず、デフォルトのまま。
とにかく、デフォルトでもいいので、ダッシュボードの「設定」⇒「パーマリンク変更」から、なにも変えずに「変更を保存」をクリック。

そしたら、治りました!!


ということで、今のところは不具合なく動いています。

0 件のコメント:

コメントを投稿