Zencart・「お支払い方法」が表示されない。会員登録時にエラーが起こる(Zen-Cart)
問題は、設定ファイルによるものが大半です。
<兆候>
・Zencartにログインして、商品をカートに入れる。
その際、配送方法は指定できるが(配送モジュール読まれる)、お支払い方法が次のページで出てこない。(支払いモジュールが読まれない)
・新規アカウント登録(顧客登録)時に、
"The email template file cannot be found."
また「header modifcation....」などのエラーが出る。
しかしながら、顧客登録はできる。
~この場合、特定のモジュールがパス指定のミスにより、読まれていないことが考えられます。
=============================================================
技術・専門的には・・・
=============================================================
言われてみれば単純なエラーですが、設定ファイルにて
/home/my_name/public_html
とホームディレクトリを指定していて、メールディレクトリへの相対パス指定が
email/
などとなっていた場合、ZenCartはこの二つをそのまま結合します。
すなわち、
/home/my_name/public_htmlemail/
などと、存在しない public_htmlemail/ というディレクトリを参照に向かうわけです。
そのため、特定のモジュールなどが読まれない現象が起こります。
重複指定分については、たいていのサーバでは許容がありますので、「余分なくらいのトレイリングスラッシュ(/)(*)」を指定して、動作を見ながら引き算をしていくと、簡単に解消ができます。
ex)たとえば・・・
/home/my_name/public_html//email/
など
*トレイリングスラッシュ
・・・「trailing slash」、「あとにくっつくスラッシュ」、区切りのスラッシュのことです。
=============================================================
どうしても、こんがらがり、解消できない場合はクリーンインストール、あるいはアップデートなどでも解消可能です。
(続きに、「configure.php(設定ファイルの雛形と説明があります。)」)
ここから設定ファイルの中身になります。
//
//
//
// 表題の問題が発生する場合、設定ファイルに問題があり、指定されたアクション時
// に特定のディレクトリを参照できないために、エラーが発生している場合がある。
// たいていの場合、トレイリングスラッシュ「/」の指定ミス、余分・不足などでパス
// の読み込みエラーが起こっている場合が考えられる。以下「▲」部分が注意点である。
//
//
//
// +----------------------------------------------------------------------+
// |Zen Cart Open Source E-commerce |
// +----------------------------------------------------------------------+
// | Copyright (c) 2004 The Zen Cart developers |
// | |
// | http://www.zen-cart.com/index.php |
// | |
// | Portions Copyright (c) 2003 osCommerce |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the GPL license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available through the world-wide-web at the following url: |
// | http://www.zen-cart.com/license/2_0.txt. |
// | If you did not receive a copy of the Zen Cart license and are unable |
// | to obtain it through the world-wide-web, please send a note to |
// | license@zen-cart.com so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
//
//▲以下基本URLはトレイリングスラッシュはいらない。
// Define the webserver and path parameters
// Main webserver: eg, http://localhost - should not be empty for productive servers
define('HTTP_SERVER', 'http://my_site.com');
// Secure webserver: eg, https://localhost - should not be empty for productive servers
define('HTTPS_SERVER', 'https://my_site.com');
// secure webserver for checkout procedure?
define('ENABLE_SSL', 'false');
//▲ここではスラッシュが無い場合、各ファンクション・インクルードファイルへの橋渡しができなくなる。
// * DIR_WS_* = Webserver directories (virtual/URL)
// these paths are relative to top of your webspace ... (ie: under the public_html or httpdocs folder)
define('DIR_WS_CATALOG', '/');
define('DIR_WS_HTTPS_CATALOG', '/');
define('DIR_WS_IMAGES', 'images/');
define('DIR_WS_INCLUDES', 'includes/');
define('DIR_WS_BOXES', DIR_WS_INCLUDES . 'boxes/');
define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/');
define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/');
define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/');
define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/');
define('DIR_WS_DOWNLOAD_PUBLIC', DIR_WS_CATALOG . 'pub/');
define('DIR_WS_BLOCKS', DIR_WS_INCLUDES . 'blocks/');
define('DIR_WS_TEMPLATES', DIR_WS_INCLUDES . 'templates/');
define('DIR_WS_PHPBB', '/');
//▲絶対パスを以下で指定するが、ここでトレイリングスラッシュを入れない場合、各ページにはアクセスできるが、
//肝心な処理ファンクション・クラスをロードできなくなる。
//
//ex)「お支払方法」が表示されない(支払いファンクションがロードできなくなる。
//ex)「メンバー登録時」のメールエラー(header error)
//
//
// * DIR_FS_* = Filesystem directories (local/physical)
//the following path is a COMPLETE path to your Zen Cart files. eg: /var/www/vhost/accountname/public_html/store
define('DIR_FS_CATALOG', '/home/healthy/public_html/');
define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');
define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');
define('DIR_WS_UPLOADS', DIR_WS_IMAGES . 'uploads/');
define('DIR_FS_UPLOADS', DIR_FS_CATALOG . DIR_WS_UPLOADS);
define('DIR_FS_EMAIL_TEMPLATES', DIR_FS_CATALOG . 'email/');
// define our database connection
define('DB_TYPE', 'mysql');
define('DB_PREFIX', 'zen_');
define('DB_SERVER', 'localhost'); // eg, localhost - should not be empty
define('DB_SERVER_USERNAME', 'my_site_zen');
define('DB_SERVER_PASSWORD', '私のパスワード');
define('DB_DATABASE', 'my_site_zen');
define('USE_PCONNECT', 'false'); // use persistent connections?
define('STORE_SESSIONS', 'db'); // leave empty '' for default handler or set to 'db'
// The next 2 "defines" are for SQL cache support.
// For SQL_CACHE_METHOD, you can select from: none, database, or file
// If you choose "file", then you need to set the DIR_FS_SQL_CACHE to a directory where your apache
// or webserver user has write privileges (chmod 666 or 777). We recommend using the "cache" folder inside the Zen Cart folder
// ie: /path/to/your/webspace/public_html/zen/cache -- leave no trailing slash
define('SQL_CACHE_METHOD', 'file');
define('DIR_FS_SQL_CACHE', '/home/my_site/public_html/cache');
ここまでです。