久々にconcrete5の案件。
いろいろ手直しするために現状サイトをコピーして修正テストをすることにしました。
サイト複製の手順は「コンクリートファイブ・ジャパン」のサイトに詳しく載っているのでその手順に沿って行いましたが、すんなりといかなかったので手順と解決方法をメモ。
このページのもくじ
サイトの移転
サイトの移転は大まかに5ステップあります。
以下、コンクリートファイブ・ジャパンの「サイトの移転」より転載。
一部加筆しています。
今回はCPIサーバーにインストールされている公開サイトの複製を作りました。
icon-folder-o public-html
┗━ icon-folder-o 公開サイト
┗━ icon-folder-o 複製サイト
このようなディレクトリになっています。
移転手順
-
データベースのバックアップを取得します。
phpMyAdminでsqlでエクスポートしました。 - concrete5ルートディレクトリ内のファイルのバックアップを取得します。
▶フォルダ 4フォルダ
・ icon-folder-o application
・ icon-folder-o concrete
・ icon-folder-o packages
・ icon-folder-o updates▶ファイル 6ファイル
・ icon-file-o index.php
・ icon-file-o htaccess
・ icon-file-o license.txt
・ icon-file-o php.ini
・ icon-file-o robots.txt
・ icon-file-o sitemap.xml「inedex.php」以外のファイルについてはインストール環境によって違いがあるかもしれません。現状サイトにあるものはすべて複製しておきます。
- ファイルを新しいサーバー(または、新しいディレクトリ)にアップロードします。
- 新しい、空のデータベースを新しいサーバーに作成し、ステップ1で取得したバックアップを新しいデータベースにインポートします。
- 新しいサイトの設定ファイルを変更します。
●パーミッションを「755」に変更
・application/files/
・packages/
・updates/
・application/config/
・sitemap.xml●application/config/database.php の内容を新しいデータベース接続情報に変更。
このファイルは、下記のようなPHPの連想配列になっています。<?php return array( 'default-connection' => 'concrete', 'connections' => array( 'concrete' => array( 'driver' => 'c5_pdo_mysql', 'server' => 'localhost', 'database' => 'mydatabase', 'username' => 'myusername', 'password' => 'mypassword', 'charset' => 'utf8' ) ) );
サーバーのホスト(server)、データベース名(database)、ユーザー名(username)、アパスワード(password)の内容を、新しいサーバーの情報に変更。
テスト
管理画面にログインし、キャッシュをクリアする。
ログインは、
URL/index.php/login
から行えます。
トラブル
ここでエラーが出てしまいました。
複製したサイトを表示しようとすると、ファイルが見当たらないと表示。。。
サーバーのログ管理でエラーログをチェックしてみると
Premature end of script headers: index.php
という記述があります。
??? どういう意味??
調べてみると、
これは「とにかく何かおかしい」というエラーなので、
原因がわかりにくい場合が多い。…(中略)
5:ディレクトリのパーミッション
なんと!777 だと動かない!!(セキュリティの為か?)
755 などにして試してみる。
参照:http://xiaoxia.exblog.jp/1078664/
そこで、FTPでサーバーにアクセスし、複製したディレクトリ内の「index.php」のパーミッションを「755」に変更。
無事、表示されました〜〜!!!
icon-file-o index.phpのパーミッションも「755」に変更しなくちゃいけなかったんですね〜 (^_^)
現状の公開サイトを移転/複製する手順でした。
保存保存