ホーム > フォーラム > 質問箱 > XCL2.2(Pack 2012) > 2.2へのアップグレード

2.2へのアップグレード
投稿者: KSL | 投稿日時: 2015/12/2 16:26 | 閲覧: 6007回
KSL

いくつかのXOOPSサイト(XOOPS 2.0.16a JP)を運営してきたのですが、今年(2015年)9月末にすべてのサイトでフォーラム投稿表示のフォーラム名、スレッド項目が表示されなくなり、運営がストップしてしまいました。

日本語データのデータベースとのやりとりに問題が起きたのだとは思うのですが、その原因、解決方法がわかりません。XOOPSサイトのアップグレードを怠ったままでしたので、とりあえずテスト用のサイトで、最新版へのアップグレードを試みました。

(XCL2.1.8)へのアップグレードは一応完了したのですが、管理画面に入ると、トップページのフォーラム同様、各項目の表示がありません。

最新版(legacy-stable、2.2.2)に期待を込めてそのままアップグレードを作業し立ち上げると、'FETAL: open error: site setting config.'のエラーメッセージであとは真っ白。

そこで'XCL2.18(EUC)をpack2011(XCL2.2 UTF-8)にアップグレードしてみよう!'を頼りにローカルPC上にサーバー環境を作り、試してみました。

そうしたら、当面の問題だったフォーラム投稿表示のフォーラム名、スレッド項目が'XOOPS 2.0.16a JP'のままの時点で何の問題もなく表示され、そのままローカル環境では何の問題もなく、最新版(legacy-stable、2.2.2)までアップグレードできました。

最使用サーバー、PHP5.4、MySQL5.5
ローカル環境、PHP5.5、MySQL5.6 です。

最終的にやはり、サーバー上で最新バージョンでのつつがない運営をいたしたく、ご助言をいただけたらと思います。

タグ:

コメント(7)

Re: 2.2へのアップグレード 
投稿者: nao-pon | 投稿日時: 2015/12/5 18:03
nao-pon

KSL さん、こんにちは。

お困りのようですね。サイト上の文字が一部表示されなくなった原因は、PHP 5.4 以降の htmlspecialchars() 関数の非互換性が影響していると思います。

大雑把に言いますと、PHP 5.4, 5.5 は、UTF-8 以外のサイトでは、古いコードのままだと部分的に文字が表示されなくなります。

最新の XCL のコアレベルではその問題は修正済みですが。モジュールレベルで対応していないと、問題が生じます。

よって、サイトを UTF-8 化して、XCL 2.2 以上で運用すると安定すると思います。また XOOPS X であれば、コアや対応モジュールのアップデートも簡単ですので、強くお勧め致します。

#21544 | | 返信する |
ご助言、ありがとうございます。 
投稿者: KSL | 投稿日時: 2015/12/5 23:19 | 親コメント: #21544
KSL

ご助言、ほんとうにありがたい。

本日(12月5日)夜10時過ぎに帰宅し、コメントをいただいていて
その内容も予想していたところでもあり理解できました。

まだ解決できていないのですが、方向性がはっきり理解できました。
サイトの UTF-8 化は端からしたかったのですが、なんせサーバー上では、
管理画面が表示されずそのすべがなく、とにかく2.2までいったらなんとかなるのかもとの
期待を込めて試みていました。

これ、もしかしたらローカルで UTF-8 化して、サーバーに送るということになるのかもしれません。

とりあえず、お礼まで。
うまく解決できたら、あらためてお礼と経緯のご報告をさせていただきます。

経過 
投稿者: KSL | 投稿日時: 2015/12/24 22:41 | 親コメント: #21545
KSL

(XCL2.1.8)へのアップグレードは一応完了したのはお話しした通りなのですが、管理画面に入ると、トップページのフォーラム同様、各項目の表示が全くなく、一般設定(General Settings)での使用言語変更の選択ができません。

そこでしかたがないので、'phpMyAdmin'を使いデータベースにダイレクトにアクセスし、'config'というテーブルにある使用言語という項目を見つけ、'japanese'(EUC-JP)となっているのを'ja-utf8'に変えて立ち上げてみました。

立上げ画面(ホームページ)は文字化け(エンコードを見ると'ISO-8859-1')しているのですが、エンコードに'UTF-8'を選ぶと、フォーラム投稿表示のフォーラム名、スレッド項目の表示が回復、管理画面も入ったときにやはり文字化けですが、エンコードに'UTF-8'を選べば各項目が表示されるようになりました。管理画面の各ページにアクセスするたびに文字化けでエンコードに'UTF-8'の選択が必要になっています。

でもやっと顔が見えてほっと一息。

つまり、どうやら使用言語が'UTF-8'というのは了解されたようなのですがこれがデフォルトなんだよという指定が了解されていないということのようです。

そこで、いわば裏で使用言語を強引に変更したわけで、正規の管理画面で変更していれば、デフォルトにする作業もまかなってくれていたのではないかと気づき、いちど'japanese'(EUC-JP)に戻し表(おもて、正規の管理画面)から'UTF-8'を選択しようと思ったのですが、戻すと管理画面が表示されない。で、'english'にして、それを表から管理画面で'UTF-8'を選択、送信して立ち上げました。

結果、同じなのです。デフォルト'UTF-8'にならないのです。

ご助言いただけたら、ありがたい。

Re: 経過 
投稿者: pcboy | 投稿日時: 2015/12/27 11:10 | 親コメント: #21546
pcboy

KSLさん、こん**は、pcboyです。

引用:
ローカル環境では何の問題もなく、最新版(legacy-stable、2.2.2)までアップグレードできました。

ローカル環境のDBと本番サイトのDBで、'config'テーブルを比較して見る。
または、ローカル環境のDBを流用する(サイトのURLやディレクトリ等は変更する事)。

引用:
使用言語という項目を見つけ、'japanese'(EUC-JP)となっているのを'ja-utf8'に変えて立ち上げてみました。

ただのスペルミスかも知れませんが、'ja-utf8'は、'ja_utf8'ですね。(ハイフンではなくアンダーバー)..(^_^);
_MD_AM_LANGUAGEとProtectorモジュールを導入している場合は、_MI_PROTECTOR_DEFAULT_LANGも。

個人で運用しているサイトに、「XOOPS Cubeのキャラクタコードを変更する手順 」をまとめていますので問題解決のヒントになれば幸いです。
http://pcboy.dip.jp/xoopscube/modules/pico/index.php?content_id=15

経過その2 
投稿者: KSL | 投稿日時: 2016/1/8 10:47 | 親コメント: #21547
KSL

埒が明かないので、「もしかしたらローカルで UTF-8 化して、サーバーに送るということになるのかもしれません」と思った通り、意を決してサーバー上のものをローカルで実現している2.2の環境に置換えることを試みることにしました。

バックアップはもちろんとっていますが、サーバー上のデータベースを削除、かなりリスク覚悟の勇気のいる作業。もともとサーバーからダウンロードしたものですが、ローカル上で2.2へのアップグレードしたものは、Xoops構築上(モジュールとかの情報)のデータが追加変更されているので必要な作業です。

ローカルのデータをアップロード(インポート)、サーバー上の2.18であっけなく動き表示され、ほっと一息。

さて期待のローカルで実現されている2.2をアップロード。何度か転送がうまくいかなかったのですが、無事完了。

mainfile.phpをサーバー環境のものに置換えて立ち上げ、残念。またしても'FETAL: open error: site setting config.'のエラーメッセージでの真っ白。

使用サーバー、PHP5.4、MySQL5.5
ローカル環境、PHP5.5、MySQL5.6

この.1の違いの問題なのでしょうか?

もう一から作り直すしかないのかもしれません。

新規構築に向けて、ネジの巻き直しということかもしれません。

経過その3 
投稿者: KSL | 投稿日時: 2016/1/23 14:49 | 親コメント: #21548
KSL

新規構築はやはりちょっと大変。その決断の前にもう少し探ることにしました。
やっぱり、PHP、MySQLのバージョンの問題が大きそう。

「PHP 5.4, 5.5 は、UTF-8 以外のサイトでは、古いコードのままだと部分的に文字が表示されなくなります。」

という助言をいただきましたが、

昨年(2015年)9月末にすべてのサイトでフォーラム投稿表示のフォーラム名、スレッド項目が表示されなくなり運営がストップしてしまった、こちらのXOOPSサイト(XOOPS 2.0.16a JP、以下2.0)では、管理画面に入っても部分的どころか各項目が全く表示されず、UTF-8化しようがない。

そこで'phpMyAdmin'を使いMySQLデータベースにダイレクトにアクセスして使用言語を'ja-utf8'にするとか、いろいろ試みたのですが、結果うまくいきません。

2.0の時点でUTF-8化、アップグレードしてあったらこういう問題は起きなかったということのようなので、過去に遡って、そういう状態(UTF-8化)にする算段ができないものかと、大手サーバー会社を当たってみました。

そこに、「任意のバージョンのPHP、MySQLの利用が可能」というのがありました。
もしそれが可能なら正常に機能していた古いバージョンのPHP、MySQLを利用してUTF-8化することができるのではないか?

ただ、サーバーの乗換えとか手間と費用がどれくらいかかるものか分からない。現在の使用サーバー会社に同様のサービスがあればそれに越したことはない。そこで現在のサーバー会社に、前回の問合せ(昨年11月始め、このとき使用PHP5.4、MySQL5.5と、バージョンの確認ができた)を添付して当たってみたろころ、「任意のバージョンのPHP、MySQLの利用」というサービスはやっていないということとともに、現在のバージョンはPHP5.6.13、MySQ5.5との回答、担当者が違ったのだろうか?

「フォーラムカラムの日本語の表示がされない件でございますが時期的にphpが5.6
にアップデートされた頃でございます。
phpは5.6.0以降はDefault_CharsetがUTF-8に変更となりましたのでこの部分で不
具合が発生している可能性が高いのではないかと存じます。
ご利用プログラムの文字コード指定に関する設定を見直す事で解決できる可能性
がございますのでお試しください。」

とのこと。

事態一転。把握していたサーバー、ローカルのバージョンが新旧が逆でした。

要は、昨年9月末、サーバー会社がPHPのバージョンを5.6にアップデートしたことで今回の問題が発生したようです。

少し頭を冷やしています。

Re: 経過その3 
投稿者: marine | 投稿日時: 2016/2/21 12:16 | 親コメント: #21550
marine

    投票(0)

    新しいものから | 古いものから | RSS feed
     
    To Top