SPOTブログ

2012/10/30

ExpressionEngine v2.4.0をお名前.comの共用サーバーSDにサーバー移行(引っ越し)する方法

お客様から、アメリカでサイトを制作した制作会社が倒産してしまったので、データを復旧してほしいとのご依頼を受けました。

ExpressionEngineで制作したサイトのFTPファイルとSQLデータをいただいたので、そこから新しいサーバーに復旧・引っ越しを試みました。

その備忘録です、何かの参考にしてください。

※管理画面のパスがExpressionEngineのデフォルトではhttp://example.com/system/のようですが、今回のサイトではhttp://example.com/manage/に帰られていますので、今後の説明も/manage/で統一しています。適宜読み替えてください。

1.まずはデータをftpでサーバーにアップロード。

これは普通にいつもどおりアップロードすればOKです。

2.SQLファイルから新規にデータベースを作成

これも普通にPhpMyAdminやAdminerなどMySQLをいじれるところからSQL文を実行すればOKです。

3.データベースの設定を新サーバー変更する

/manage/expressionengine/config/database.phpにMySQLデータベースの接続設定が書いてありますので、ここを新しい情報に変更します。

今回のデータの場合は

と、テストサーバーと本番環境で自動でデータベース設定を読み替える様になっていました。

テスト環境のDB設定を触る場合は
$db[‘development’][‘xxxx’]を

本番環境の設定は
$db[‘production’][‘xxxx’]をいじればOKです。

※このあたりはもとのファイルを見ていないので、カスタマイズされている可能性があります。

とりあえず、今回は以下のように設定

DBのホスト名やユーザー名、パス、データベース名などは適宜読み替えてください。

4.cp_urlを編集

管理画面のURLを設定します。

/manage/expressionengine/config/config.phpを編集

$config[‘cp_url’]が旧ドメイン直打ちになっていたので、ここを修正

5.テンプレートファイルのパスを変更

本来は管理画面にログインしてCP Home > Design > Template Manager > Global Template PreferencesのBasepath to Template File Directoryを変更すれば良いはずなのですが、なぜか書き換えても変更できなかったので、直接config.phpを編集

$config[‘tmpl_file_basepath’]を以下のようにフルパスに変更します。
レンタルサーバーなので$_SERVER[‘DOCUMENT_ROOT’]が効かないので、フルパスを直で記入します。

※フルパスは環境によって違うので、適宜読み替えてください。

同様にcaptchaのパスもこのままでは動かなかったので、フルパスを直打ちしました。

6. .htaccessを設定

下層ページを見ようとすると、500 Internal Server Errorが起こったので、.htaccessを以下に変更。
この辺はあまり詳しくないのですが、ググって出てきた設定をほぼそのまま。

最後の行のindex.phpの後に?がないとcode igniterのエラーでNo input file specified errorが出るそうなので、?を追加。

参考:http://office-ikason.com/devblog/archives/264

7.画像のパスを変更

カスタムフィールドで登録している画像のパスが旧サーバーを参照していたので、これも変更します。

MySQLデータベースを開いてexp_upload_prefsのProduct Imagesのパスを変更します。
server_pathは画像のアップロードフォルダへのフルパスに、urlはhttp側のURLパスを。

server_path: /export/sd202/www/jp/r/e/gmoserver/2/1/sd0xxxxxx/xxx.example.com/images/uploads/product_img/
url: http://xxx.example.com/images/uploads/product_img/

これで、一通り設定が完了し、新しいサーバでExpressionEngineが動くようになりました。

もしかしたら設定漏れがあるかもしれませんが、とりあえずこんな感じで。