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
  2.  

この警告は僕がなにかしら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
  5.  

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

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を利用しているため、変更しやすいかも。 とはいえ全部変更するとなると結構な数のファイル数・・・

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

投稿日 2010年2月19日 04:13
カテゴリ 設定
タグ EC-CUBE | PHP
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1039

コメント

コメントする
Name
Email Address
URL