php4.4.7 → php5.2.5 への切替

古いバージョンのZen Cartについて不具合が見つかった場合はこちらで情報を共有してください。
アバター
tetsuwo
記事: 12
登録日時: 2008/1/11 12:33
お住まい: 神奈川県鎌倉市
連絡を取る:

php4.4.7 → php5.2.5 への切替

投稿記事by tetsuwo » 2008/1/18 15:37

いつも、お世話になっております。
当方ではさくらレンタルサーバー上にて以下のzen-cartを動かしています。

・Zen Cart 1.3.0.2-l10n-jp-2
・PHP Version 4.4.7
・MySQL 4.0.27

今年2008年6月よりさくらレンタルサーバーではphpのverが4.4.7から5.2.5へと移るとのこと。
そこで、さくらレンタルサーバーにてphp5.2.5でのテスト動作が可能だった為
php5.2.5へverを切り替えたところ、わかる範囲で以下のトラブルが起きました。
解決のためにお知恵をお貸し願えればと思います。

1) 管理画面に入れない
※ID、PASS入力画面へ正しいパスを入れ、loginボタンを押しても反応がない。エラー文さえ出ない。

2)ショップ上にてアカウントID等を入力後ログイン(サインイン)ボタンを押しても、反応がなくログインが出来ない。
※こちらもエラー文すら出ません。

また、まずphp4.4.7にてショップ内にてログインし、商品を選択後、カート画面にした後、別画面にてサーバーをphp5.2.5に切り替えると、ショッピングカート機能が正しく動かず、先に進めないなどの問題(エラー文はでない)。

当方としても、エラー文等が出れば何かと対応ができるのではないかと思っておりましたが、何も反応がなく困っております。

また、過去ログを検索しましたが、
php5での動作では"正常に動かない説"と”正常に動いてるらしい説”があり、
どちらが正しい情報なのか判断ができません。

特にphp5上のログをみると、どちらかといえば
MySQL(zencart1.2場合)の問題などが特に多く、1.3では対応済みでは?のような
ログが多く見られており、似たような症状を見つけることが困難で、
数日間ログとにらめっこしましたが、未だに打開策が見つかりません。

どなたか似たような症状で打開できた方や、基本的なオバカを私がしているのであれば、ご教授願いますようお願い致します。
鉄雄

PHPデビュー数ヶ月のど素人でもがんばってます。
ーーーーーーーーーーーーーーーーーーーーーーー
運営サイト(zen-cart使用):http://pet-square.jp/
アバター
boro

php5.2.5

投稿記事by boro » 2008/1/18 17:16

新規サーバーでインストールしなおしたところ
似たような問題で困っています。


1) 管理画面に入れない
※ID、PASS入力画面へ正しいパスを入れ、loginボタンを押しても反応がない。


エラー文章は下記がでてきます。
Call to a member function Execute() on a non-object in /home/○○○○/public_html/includes/functions/sessions.php on line 61

61行目は下記です。
$total = $db->Execute($qid);

現在の使用は、
Zen Cart 1.3.0.2-l10n-jp-2
MySQL version 5.0.37-standard-log
Apache version 2.2.6 (Unix)
PHP version 5.2.5

サーバーがアップグレードし、変更になっていたのは
MySQL version 5.0.45 community-
log

が変わっていました。改造をたくさんしているので
新しいものを出来ればインストールせずにこのまま使えればと
願っています。
どなたか助けてください。
どうぞ宜しくお願いいたします。
アバター
kimono
記事: 1995
登録日時: 2005/9/27 13:30
お住まい: 大阪府大阪市天王寺区上本町
連絡を取る:

投稿記事by kimono » 2008/1/18 18:40

こんにちわ。kimonoです :)
日本語版のv1.3.0.2-l10n-jp-2は、まだphp5の対応は出来ておりません。出来ているのは、本家の1.3.7縲怐iかな?)(最新版は1.3.8)になります。
http://zen-cart.jp/blog/2007/12/27/138localize/
にも記載しているように、zencart.jpでの1.3.7及び1.3.8の方はタスクに半年以上かかると言う理由で見送りになりました。
しかし、php4は今年夏にてサポート終了になりますので、私の方としましても、php5への対応は絶対に必須ということで論議させていただき、php5への対応は日本独自で行う事となっております。
現在、アークウェブさんが別件にて、開発中でそれを公開しますということです。来年1月から開発予定とのことでしたので、開発は始めていると思われますが、まだ現状では、間違いのない開発は日本語版では出ておりません。

対応方法としましては、まだ完全ではありませんが、弊社でも実験をしており、同様の現象が出ましたが、どうやらセッションの保存の$dbが上手く読み取れない模様ですので、セッションの保存をDBではなく、fileに変更して対応しております。とりあえずの処置ですが。また、どのページかは分かりませんが、php5をphp4の互換モードにて動作させることにより、一応は今までの確認したところでは、問題は起きていない模様です。もしくは、速度は遅くなりますが、php4をcgiモードで動作させるという方法もあると思われます。
どちらにせよ、サーバーのroot権限があり、弄れないと出来ないですが。

よって、今の状態でしたら、間違いないのは、php4のサーバーへ移転。日本語版の開発が済んでから、php5のサーバーへ移行が一番であると思われます。
急がれない場合であれば、アークウェブさんも含め、みんなで日本語版に対応するために、スレッドなどを立て、それぞれテストを重ね、一緒に開発するのがオープンソースとしてはいい方法ですね。
日本語版が出ていない本家の1.3.8を使う場合は、色々と問題はありますが、そういう方法もありますが。個人で、yamaさんが1.3.7の日本語版を作ってもいますけどね :wink:
アバター
boro

php4

投稿記事by boro » 2008/1/19 19:37

Kimonoさん
親切にありがとうございます!!

今はサーバー会社にPHPのversionを4にさげてくれと
たのんでいます。

ありがとうございました。ペコリ
アバター
kb1
記事: 23
登録日時: 2007/10/03 03:16

PHP5 + MySQL5

投稿記事by kb1 » 2008/1/20 09:50

半年ほどzen-cart-v1.3.0.2-l10n-jp-2をPHP-5.2.xおよびMySQL-5.0.xで使用しています。
あまり記憶が確かではありませんが、メモを見る限り主な修正点は以下のとおりです。

:idea: PHP-5.2.x :idea:

includes/functions/strict_sessions.php - 55行目

function _sess_write($key, $val) {
  // The following is only to work around a PHP 5.2.0 bug:
  global $db;
  if (!is_object($db)) {
    //PHP 5.2.0 bug workaround ...
    $db = new queryFactory();
    $db->connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE, USE_PCONNECT, false);
  }

  global $SESS_LIFE;

  $expiry = time() + $SESS_LIFE;
  $value = $val;

:idea: MySQL-5.0.x :idea:

includes/classes/db/mysql/query_factory.php - 36行目

} else {
// pconnect disabled ... leaving it as "connect" here instead of "pconnect"
$this->link = @mysql_connect($zf_host, $zf_user, $zf_password, true);
}

// for MySQL 5.x
mysql_query( "SET NAMES ujis" );

if ($this->link) {
God helps them who help themselves.
アバター
kimono
記事: 1995
登録日時: 2005/9/27 13:30
お住まい: 大阪府大阪市天王寺区上本町
連絡を取る:

投稿記事by kimono » 2008/1/21 09:39

kb1さん。情報提供ありがとうございます。
うちでもテストしてみたいと思います^^
アバター
tetsuwo
記事: 12
登録日時: 2008/1/11 12:33
お住まい: 神奈川県鎌倉市
連絡を取る:

投稿記事by tetsuwo » 2008/1/21 10:54

お返事が遅くなり大変申し訳なく思います。

>>kimonoさん、kb1さん

有力な情報を有難うございます。当方でも、上記の修正をテストし、且つ結果を報告したいと思っております。
また、本日レンタルサーバー側にphp5移行後も任意でphp4の使用を認めてもらえないか問い合わせをするとともに、他php4を使用し続けることができるサーバー等の検討もしていこうと思います。
出来れば、さくらレンタルサーバーのまま(ドメイン取得手続きもしてしまったため)やっていきたいとは思いますが…。

当方でもphp5の対応のために出来る限り協力していく所存です。
オープンソースのメリットを有効に活用しないともったいないですしね。
鉄雄



PHPデビュー数ヶ月のど素人でもがんばってます。

ーーーーーーーーーーーーーーーーーーーーーーー

運営サイト(zen-cart使用):http://pet-square.jp/
アバター
tetsuwo
記事: 12
登録日時: 2008/1/11 12:33
お住まい: 神奈川県鎌倉市
連絡を取る:

結果の報告

投稿記事by tetsuwo » 2008/1/21 11:04

php5.2.5において

上記のkb1さんの通りの修正をしてみました。
以下の

55行目

コード: 全て選択

function _sess_write($key, $val) {
      global $db;
      global $SESS_LIFE;



コード: 全て選択

function _sess_write($key, $val) {
  // The following is only to work around a PHP 5.2.0 bug:
  global $db;
  if (!is_object($db)) {
    //PHP 5.2.0 bug workaround ...
    $db = new queryFactory();
    $db->connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE, USE_PCONNECT, false);
  }
  global $SESS_LIFE;


に修正後、php5.2.5にて動作チェックを行ったところ
管理画面ログイン。ショップログイン、買い物カートの当初私が持ち上げたバグ、問題点はクリアしておりました。
細かい部分に関してはチェックしきれてないのが現状ですので、構築、運営中に見つかり次第またピックアップしていこうかと思います。


大変助かりました。本当に有難うございます。
鉄雄



PHPデビュー数ヶ月のど素人でもがんばってます。

ーーーーーーーーーーーーーーーーーーーーーーー

運営サイト(zen-cart使用):http://pet-square.jp/
アバター
tetsuwo
記事: 12
登録日時: 2008/1/11 12:33
お住まい: 神奈川県鎌倉市
連絡を取る:

投稿記事by tetsuwo » 2008/1/24 11:15

連続投稿申し訳ないです。

上記修正後、問題なく動作しておりましたが、ひとつ気づいた点を余談になるとは思いますが、追記しておきます。
上記修正した人で該当する方がいらしたら、動作チェックをしてみてください。


■ニュース管理モジュールが一部動作しない
php5.2.5上にて上記の通りに修正した場合、管理画面やショップログインの問題は回避できますが、管理画面上のニュース管理モジュールにおいて、"新規に追加"は可能ですが、その後の修正等が一切受け付けなくなります
IE、およびfirefoxにて確認。

おそらくですが、モジュール自体が5.2.5に対応してないものだと思われますが、ニュース管理モジュールをお使いの方はお気をつけ下さい。
鉄雄



PHPデビュー数ヶ月のど素人でもがんばってます。

ーーーーーーーーーーーーーーーーーーーーーーー

運営サイト(zen-cart使用):http://pet-square.jp/
アバター
kimono
記事: 1995
登録日時: 2005/9/27 13:30
お住まい: 大阪府大阪市天王寺区上本町
連絡を取る:

投稿記事by kimono » 2008/2/06 14:16

そういえば、この設定で問題なく動作するとのことですが、まだテストしていないので、多分なのですが、表側のSHOPや管理画面などは、文字化けなどもなく動作すると思うのですが、データベース側のphpmyadminではどうなのでしょうか?
普通にインストーラーでインストールしますと、デフォルトキャラセットがlatin1_swedish_ciで登録されちゃって、またphpmyadminはutf-8ですから、文字化け起こしちゃいますね。php4.1の問題と同じです。
他の出来た方のデータベースの方がどうなっているかお聞きしたいですね。
ちなみに、移行したから大丈夫とか、様々な意見をお待ちしております。
アバター
kino
記事: 893
登録日時: 2005/5/15 19:39
お住まい: 京都
連絡を取る:

投稿記事by kino » 2008/2/06 18:47

木下です。

ZenCartのインストールを始める前に kb1さんが書かれている

Idea MySQL-5.0.x Idea

includes/classes/db/mysql/query_factory.php - 36行目

} else {
// pconnect disabled ... leaving it as "connect" here instead of "pconnect"
$this->link = @mysql_connect($zf_host, $zf_user, $zf_password, true);
}

// for MySQL 5.x
mysql_query( "SET NAMES ujis" );

if ($this->link) {

をやっておけば大丈夫だと思われます。

(zc_install 下のファイルに対して行う必要があったかもしれません。)[/quote]
-----
木下 敏夫
http://www.tktools.jp/

大阪府産業デザインセンターデザイン専門員 ( http://bmb.oidc.jp/index.php?topic=-m-D14 )
奥様ショップ 店長 ( http://okusama-shop.com/ )
電脳ドロップシッピング 店長 ( http://d-064.d-shipping.net/ )
アバター
kimono
記事: 1995
登録日時: 2005/9/27 13:30
お住まい: 大阪府大阪市天王寺区上本町
連絡を取る:

投稿記事by kimono » 2008/2/09 17:32

そうですね縲怐B
今度の会議に出しましょう。
アバター
志田
記事: 526
登録日時: 2005/5/15 14:14
お住まい: 東京都
連絡を取る:

投稿記事by 志田 » 2008/2/12 11:11

議論に参加できなくて申し訳ありません。

PHP5, MySQL5については、佐々木2号さんと一緒に作業をすすめておりまして、一通り作業が終わりました。

皆さんからフィードバックがあった箇所が、こちらでもれてないか、確認もしまして、Zen Cart日本語版本体にマージしていきたいと思います。

会議は、今週設定しましょう。また連絡します。
アークウェブ http:/www.ark-web.jp
きものリメイク comachi http://comachi-kimono.jp
アバター
kimono
記事: 1995
登録日時: 2005/9/27 13:30
お住まい: 大阪府大阪市天王寺区上本町
連絡を取る:

投稿記事by kimono » 2008/2/14 18:50

出来るだけ早めに公開していけるといいですね。
実際どんどんと各サーバー会社がphp5化している事情ですし。
アバター
M.O

助かった・・・

投稿記事by M.O » 2008/2/20 21:40

私が見落としていたのか借りているXREAのサーバーのPHPのバージョンが予告無く5.2.5になったらしくてログイン出来ずに騒いでおりました。
こちらの情報を元に修正したところ動いているようです。助かりました。
アバター
おふころ
記事: 10
登録日時: 2008/3/11 19:34

投稿記事by おふころ » 2008/3/17 23:56

こんにちは。

私の同様のphp5.2.5症候群に悩まされていましたが、上記の対応で事なきをえていました。
しかし、本日になって同じ症状が復活してしまいました。setrict_sessions.phpはちゃんと変更されているにも関わらずです。

データベース: MySQL 5.0.45-log
HTTP サーバ: Apache1.3.33
PHP バージョン: 5.2.5 (Zendのバージョン: 2.2.0)
サーバOS: Linux 2.4.21-27.ELsmp
Zen Cart 1.3.0.2-l10n-jp-2

ちなみに、「カートに入れる」ボタンをクリックすると、カート中身の画面になり、「カートにはなにも入っていいません」という表示になってしまいます。
それを以下のメッセージが同時に出ています。
1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SQL_SHOW_SHOPPING_CART_EMPTY' at line 1
in:
[SQL_SHOW_SHOPPING_CART_EMPTY]

どなたか、同様の症状にみまわれてませんか?????
アバター
tetsuwo
記事: 12
登録日時: 2008/1/11 12:33
お住まい: 神奈川県鎌倉市
連絡を取る:

投稿記事by tetsuwo » 2008/3/20 13:38

こちらの書き換えも行いましたか?
ボクはphpのverupだけだったので、こちらの修正はしてないんですが、
mySQLのver次第ではこちらも必要みたいですよ。

includes/classes/db/mysql/query_factory.php - 36行目

コード: 全て選択

} else {
// pconnect disabled ... leaving it as "connect" here instead of "pconnect"
$this->link = @mysql_connect($zf_host, $zf_user, $zf_password, true);
}

// for MySQL 5.x
mysql_query( "SET NAMES ujis" );

if ($this->link) {


一応、エラー内容は細かくはわからないんですが、試してみてはいかがでしょうか。
鉄雄



PHPデビュー数ヶ月のど素人でもがんばってます。

ーーーーーーーーーーーーーーーーーーーーーーー

運営サイト(zen-cart使用):http://pet-square.jp/
アバター
おふころ
記事: 10
登録日時: 2008/3/11 19:34

投稿記事by おふころ » 2008/3/23 09:01

tetsuwo様

アドバイスありがとうございます。
エラーの内容は、このスレッドで報告されたものと同じです。

が、どうもサーバーに問題があるようです。いまは通常に戻っています・・・。なんだんだ???
サーバーの変更を考えはじめました。
でも、データベースがどうやっても文字化けしてしまいどうしたものか・・・

もし宜しければ、後学のために、いただいた変更が必要なmySQLのバージョンをお知らせ頂けましたら幸いです。
データに影響を与えそうで、ビビッてます。当方のものはデータベース: MySQL 5.0.45-logです。
アバター
tetsuwo
記事: 12
登録日時: 2008/1/11 12:33
お住まい: 神奈川県鎌倉市
連絡を取る:

投稿記事by tetsuwo » 2008/3/25 00:53

当方もド素人のため、同時に探っていくって形になるのをお許し下さい。
ただ、もしも自分がそうだったら・・・と想定して考えてみてます。


データベースの文字化けは今どの"文字コード"で書かれているのか
PhpMyAdminでチェックしてみてはいかがでしょうか。
私の場合、全部EUC(japanese)で書かれています。

たぶん、ログイン画面か、データベース選択画面かなんかで
文字コードが選択できたと思う(当方ではできる)ので。

何かの拍子にShift-JISとかUTF-8とかでデータが書き込まれて(または処理されて?)異なった文字コードのデータが紛れ込んでるのかも。

※たとえば、EUCで書かれているデータベースをS-JISで見ると意味不明な文字化けばかりになるように。

今データベースの情報が何で書かれているかチェックしてみてはいかがでしょうか。

正直、見当違いなことを言ってるかもしれませんが…
もっとお詳しい方がここにはたくさんいらっしゃるので、私みたいなド素人じゃ到底わかりえない答えを知ってる方もいらっしゃると思います。
ただ、万が一、この問題が放置されてしまったら と考えて、書き込んでいます。

ちなみに、前回書き込んだ変更コードはmySQl5のためのもの(だと思います)

コード: 全て選択

// for MySQL 5.x

と書かれているからという、単純な読みからですけどね。

私はmySQL4なので変更をしてません。

縲恍ヌ記縲彌r
もしも、今回のコードの編集後の処理が違う文字コードで行われてる場合、
データベース(たぶんEUC)の中身を全部その文字コードに変換してみたら直るかもしれません。
鉄雄



PHPデビュー数ヶ月のど素人でもがんばってます。

ーーーーーーーーーーーーーーーーーーーーーーー

運営サイト(zen-cart使用):http://pet-square.jp/
アバター
kimono
記事: 1995
登録日時: 2005/9/27 13:30
お住まい: 大阪府大阪市天王寺区上本町
連絡を取る:

投稿記事by kimono » 2008/3/25 10:05

こんにちわ。kimonoです :)
恐らく、最初に登録した際に、"SET NAMES ujis"を入れてなかったため、デフォルトのキャラセットでmysqlに登録されていると思われます。phpMyAdminを見ますと、それぞれのテーブルのデフォルトキャラセットが記載していると思いますが、多分通常ならLatin1だと思いますが、こちらで登録されておりませんか?
もし、上記のような場合は、phpMyAdminや、本家のZenCartのバックアップモジュールでも文字化けしてしまいます。同様の現象に悩まされたのが私です。その後も何件か同様の現象を扱ってきました。問題なのは表示側(ブラウザ側)はちゃんと見れていて、問題なく運営も出来ますが、データーベースがその状態では、バックアップを取ることも出来ず、phpMyadminでも何を書いてあるか分からず、カスタマイズなどもしにくいことなどがあげられます。
私が行った方法は、sshなどで無理やりにデフォルトキャラセットujisでdumpする方法を取りました。sshがない場合などは、phpでプログラムを書けばいけるかな? :wink:

“1.3.0.x公式版の不具合情報” へ戻る