KANTENNA.COM

Solarized

HOME > 情報備忘録 > EC-CUBE インストールメモ

EC-CUBE インストールメモ

PHPのEC用のCMSはEC-CUBEで決まりなのかと思ってたら、 Live Commerceなるものが。

どっちが使いやすいのか、比べたいところだけどどっちも使ったことないので まずはEC-CUBEのインストールからw

インストール

EC-CUBEのverは 2.4.3、サーバはCORESERVERs86.coreserver.jpで実行。 基本的に下記ページの通りやればインストールできる。

ただし途中PHPの警告が2箇所ほど。 最初の警告はインストール画面で、最初の次へボタンを押したあと。

HTML
  1.  Warning: Invalid argument supplied for foreach() in ~/public_html/eccube/data/class/util/SC_Utils.php on line 1466

この警告は僕がなにかしらPHPスクリプトを書くと、必ず一回は出てくる 配列がないからまわせないよって警告w

発生場所は下記の関数のforeach()。$src以下のファイルをコピーする ようですがファイルがないため警告がでてるっぽい。

PHP
  1.  <?php
  2.  // ディレクトリ以下のファイルを再帰的にコピー
  3.  function sfCopyDir($src, $des, $mess = "", $override = false){
  4.   if(!is_dir($src)){
  5.   return false;
  6.   }
  7.  
  8.   $oldmask = umask(0);
  9.   $mod= stat($src);
  10.  
  11.   // ディレクトリがなければ作成する
  12.   if(!file_exists($des)) {
  13.   if(!mkdir($des, $mod[2])) {
  14.   print("path:" . $des);
  15.   }
  16.   }
  17.  
  18.   $fileArray=glob( $src."*" );
  19.   foreach( $fileArray as $key => $data_ ){
  20.   // CVS管理ファイルはコピーしない
  21.   if(ereg("/CVS/Entries", $data_)) {
  22.   break;
  23.   }
  24.   if(ereg("/CVS/Repository", $data_)) {
  25.   break;
  26.   }
  27.   if(ereg("/CVS/Root", $data_)) {
  28.   break;
  29.   }
  30.  
  31.   mb_ereg("^(.*[\/])(.*)",$data_, $matches);
  32.   $data=$matches[2];
  33.   if( is_dir( $data_ ) ){
  34.   $mess = SC_Utils::sfCopyDir( $data_.'/', $des.$data.'/', $mess);
  35.   }else{
  36.   if(!$override && file_exists($des.$data)) {
  37.   $mess.= $des.$data . ":ファイルが存在します\n";
  38.   } else {
  39.   if(@copy( $data_, $des.$data)) {
  40.   $mess.= $des.$data . ":コピー成功\n";
  41.   } else {
  42.   $mess.= $des.$data . ":コピー失敗\n";
  43.   }
  44.   }
  45.   $mod=stat($data_ );
  46.   }
  47.   }
  48.   umask($oldmask);
  49.   return $mess;
  50.  }
  51.  ?>

で、この関数の呼び出し元。

html/install/index.php

PHP
  1.  <?php
  2.  $objPage->copy_mess = SC_Utils_Ex::sfCopyDir("./user_data/", "../user_data/", $objPage->copy_mess);
  3.  ?>

うまくデバックできなかったんであれなんですがhtml/install/user_data/は空なんで たぶんここが原因な気がする。下記ページ見るとファイルあるはずなんですが2.4.3には含まれていないっぽい。

どうも2系になってから消えたみたいなんで、 無視してインストール続行。

次の警告はこんな感じ。

HTML
  1.  Warning: mkdir() [function.mkdir]: Unable to access ~/public_html/eccube/data/Smarty/templates_c/default/ in /virtual/caquu/public_html/eccube/data/class/SC_Initial.php on line 180
  2.  Warning: mkdir() [function.mkdir]: Unable to access ~/public_html/eccube/data/Smarty/templates_c/default/mobile/ in /virtual/caquu/public_html/eccube/data/class/SC_Initial.php on line 184
  3.  Warning: mkdir() [function.mkdir]: Unable to access ~/public_html/eccube/data/Smarty/templates_c/default/admin/ in /virtual/caquu/public_html/eccube/data/class/SC_Initial.php on line 188
  4.  Warning: mkdir() [function.mkdir]: Unable to access ~/public_html/eccube/data/Smarty/templates_c/default/user_data/ in /virtual/caquu/public_html/eccube/data/class/SC_Initial.php on line 192

発生箇所は下記。ディレクトリ作成できずに警告っぽい。

PHP
  1.  <?php
  2.  /**
  3.   * 各種キャッシュディレクトリを生成する.
  4.   *
  5.   * Smarty キャッシュディレクトリを生成する.
  6.   *
  7.   * @access protected
  8.   * @return void
  9.   */
  10.  function createCacheDir() {
  11.   if (defined("HTML_PATH")) {
  12.   umask(0);
  13.   if (!file_exists(COMPILE_DIR)) {
  14.   mkdir(COMPILE_DIR);
  15.   }
  16.  
  17.   if (!file_exists(MOBILE_COMPILE_DIR)) {
  18.   mkdir(MOBILE_COMPILE_DIR);
  19.   }
  20.  
  21.   if (!file_exists(COMPILE_ADMIN_DIR)) {
  22.   mkdir(COMPILE_ADMIN_DIR);
  23.   }
  24.  
  25.   if (!file_exists(COMPILE_FTP_DIR)) {
  26.   mkdir(COMPILE_FTP_DIR);
  27.   }
  28.   }
  29.  }
  30.  ?>

どこにディレクトリ作ればよいか、分かりにくいんですが、 このままインストール完了までいって実際にページにアクセスしてみると Smatyがエラー出してくれるので分かりやすいです。 エラー見ながらディレクトリ作ってパーミッション設定すればOKです。

ここらへんは下記ページに詳しくは書いてあったので引用しときます。

内容を読むとディレクトリにアクセス(作成)できなかったと表示されていますので、FTPやファイルマネージャーで

/public_html/data/Smarty/templates_c/default/
/public_html/data/Smarty/templates_c/default/mobile/
/public_html/data/Smarty/templates_c/default/admin/
/public_html/data/Smarty/templates_c/default/user_data/

の4つのディレクトリを作成して、パーミッションを707に設定します。

ざっとメモ

html/以下のページと対になった拡張クラスがdata/class_extends/pages/にあって そのクラスはdata/class/pages/を継承している。それらはすべてdata/class/LC_Page.phpを継承している。 テンプレートへ値を引き渡すには、対応しているクラスでassain。

テンプレートはdata/Smarty/templates/default/

デザインの変更はSmartyを利用しているため、変更しやすいかも。 とはいえ全部変更するとなると結構な数のファイル数・・・

とりあえず、この辺のタグを覚えることから始めてみようかと思います。

パーフェクトPHP (PERFECT SERIES 3)
作者:橋口 誠 | 価格:¥ 3,780

トラックバック(0)

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.08

[Ubuntu11.10]Winows XPユーザーがUbuntuを使ってみて

Windows XPとUbuntuのデュアルブート環境にしてみておもったこと。

2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。