ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる  【解決済み】

質問全般・改善要望
返信する
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by sama55 »

WARPまたはXAMPP(V1.7.1)環境1.0.1J から 1.0.2Jにアップグレードすると、ログイン画面が添付のように表示され、ログインできなくなります。

アップグレードでは日本語を選択してます。
ログイン画面の文言は初めて見るもので、「アップグレード中・・・少し待ってからリトライしてね」と書かれてます。
アップグレード操作は、http://localhost/modx/install 的なアドレスを叩いてから開始してます。
mojiraさんはアップグレード操作はクリアしてるようなので、WARPやXAMPP依存の問題でしょうか・・・?
確か、1.0.0 -> 1.0.1 -> 1.0.2の間でインストーラも結構変わりましたよね。
添付ファイル
login.jpeg
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by yama »

xamppの1.7.1で1.0.1Jから1.0.2Jにアップデートを試みましたが、無事に管理画面にログインできました。そちらではWARPで試しても同様の結果が出たのですよね?なぜだろう・・
インストーラは、1.0.1Jから1.0.2Jが大きく変わってます。本家版との差分を少なくすることで日本語版としては差分が大きくなったのですが。今のところ思い当たるフシがないですが、そのへん気をつけてソースを眺めるようにします。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by sama55 »

下記の事象から、マイマシン固有の問題っぽいですね。。。(でも何でだろう・・・)
 ・mojiraさんとyamaさんマシンでは、「1.0.1Jから1.0.2Jは成功」
 ・yamaさんマシンの「xampp環境(1.7.1)で1.0.1Jから1.0.2Jは成功」
 ・sama55マシンの「xampp環境(1.7.1)で1.0.1Jから1.0.2Jは失敗

もう少し慎重に追ってみたところ、決定的なメッセージを見逃してたことに気付きました(申し訳ないです)。アップデート終盤の「おつかれさまでした!」画面の一番下に以下のエラーメッセージが表示され、アップデートシーケンスがアボートしてました。yamaさん何かピンと来ることありませんか?
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 '[*]', &tinyFormats=Block Formats;text;p,h2,h3,h4,h5,h6,div,blockquote,code,pre &' at line 1[/color]

下記は調査経緯と気になること。

【インストール(アップグレード)初期画面】
バージョンの組み合わせでinstallフォルダにアクセスした時の最初の画面が違う。
 ・1.0.0J -> 1.0.1J : 「MODxのインストールを開始します」画面が初期表示される。 ==> OK
 ・1.0.1J -> 1.0.2J : 言語選択画面が初期表示される。 ==> NG ※既にここからおかしい・・・

【おつかれさまでした!画面】
1.0.1J -> 1.0.2Jへのアップグレード時のみエラーでアボートする。
 ・1.0.0J -> 1.0.1J : すべて成功。
 ・1.0.1J -> 1.0.2J : 下のエラーが表示されアップデートシーケンスがアボート。故にログイン画面がアップデート中になる。
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 '[*]', &tinyFormats=Block Formats;text;p,h2,h3,h4,h5,h6,div,blockquote,code,pre &' at line 1[/color]
【MySQLのバージョン】
WARP : 5.0.41-community-nt ※5.0.51は保証範囲外だが5.0.41は言及なし。(でもダメ?)
XAMPP(1.7.1): 5.1.33
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by yama »

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 '[*]', &tinyFormats=Block Formats;text;p,h2,h3,h4,h5,h6,div,blockquote,code,pre &' at line 1[/color]
これはTinyMCEのコードですね。1.0.2のインストーラからアドオンの組み込みがSQLスクリプト直書きではなくなって、phpドキュメンターの記述ルールに則って書かれたphpファイルを自動的に検出し組み込めるようになったのですが。1.0.2になってからの大きな違いと言える部分です。このTinyMCEが原因になってるのか、それ以前に何か不具合があって結果としてTinyMCEの組み込みのタイミングでコケているかだと思います。このへんがヒントになりそうですね。
sama55 さんが書きました: 【インストール(アップグレード)初期画面】
バージョンの組み合わせでinstallフォルダにアクセスした時の最初の画面が違う。
 ・1.0.0J -> 1.0.1J : 「MODxのインストールを開始します」画面が初期表示される。 ==> OK
 ・1.0.1J -> 1.0.2J : 言語選択画面が初期表示される。 ==> NG ※既にここからおかしい・・・
これは1.0.2Jからそのようにしてます。アップグレードで英語になるのは、そこは考えが足りなかったところなので次回で対応しますが・・たぶんここは関係ないような気がします。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by sama55 »

小出しですみません。
同一の環境(WARP[UniformServer])で、本家版の1.0.1 -> 1.0.2も試したところ、問題なくアップグレードできることを確認しました。比較的新しいMySQLのバージョンに依存したSQL構文が日本版に入ってる気がします。Diffを取ることで何か分かるかもしれません。

今度はロジック面から追いかけてみますね。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる  【解決済み】

投稿記事 by sama55 »

大体のカラクリ分かりました。

1.1.0.1(J)と1.0.2(J)における変更点の整理(本件に関することだけ)

 ・tinyMCE   : 1.0.1Jから、3.2.5 -> 3.2.7にアップグレードした。1.0.2JはV3.2.7のまま。
 ・インストーラ : 1.0.1(J)から、インストール/アップグレードの方式が変更された(インストール物の外部定義化)。

2.問題を引き起こすデータ

tinyMCEのプラグイン設定内の以下の部分がまずいようです(ワイルドカード)。
valid_elements : '*[*]',[/b]
※恐らく、mySQLのUpdate文またはSelect文でワイルドカードをSQL構文上の制御文字と誤認してるためではないかと・・・

3.バージョンアップで問題になる箇所

3.1 インストール済みデータ

 1.0.1Jで既にDBに保存されてる、valid_elements : '*[*]',[/b]

3.2 アップデートファイル

 ・install/assets/plugins/tinymce.tpl (L10) ※valid_elements : '*[*]',[/b]
 ・assets/plugins/tinymce/tinymce.tpl (L10) ※valid_elements : '*[*]',[/b]

#######################################
4.対処(回避)法

 ・現サイトのTinyMCEプラグインのプラグイン設定からvalid_elements : '*[*]',[/b]を削除して保存
 ・1.0.2Jのファイル群を上書き
 ・「3.2 アップデートファイル」のvalid_elements : '*[*]',[/b]を削除(2箇所)
 ・install(アップグレード)実施 >> 問題なくアップグレードされる
 ・TinyMCEプラグインのプラグイン設定にvalid_elements : '*[*]',[/b]を追加して保存
#######################################
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by yama »

もしかするとダブルクォートで囲むと違うかも。('*[*]'→"*[*]"
(根拠はないけど他はダブルクォートなので)
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by sama55 »

yama さんが書きました:もしかするとダブルクォートで囲むと違うかも。('*[*]'→"*[*]"
(根拠はないけど他はダブルクォートなので)
3箇所ともそうすればうまくいくかも。。。
(ファイルの方だけ真っ先にやったのですが現象変わらず。ここでえらく悩みました・・・ToT)
@internalを処理するSQLの大元のロジックも関係してる・・・かも。(PHPはまだ見てないっす)
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by yama »

これもしかすると
$hoge = 'abcd 'efg' hijk';
みたいなことになっちゃってるのかも。このとおりだとしたら必ず失敗するはずだけど、これに近いポカミスかも。汗
いずれにせよ他がダブルクォートならダブルクォートで揃えるほうがよいですね。次はそうします
(問題があることが確定っぽければ、重めの不具合だと思うのでp1リリースしたほうがよいかも?)
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by sama55 »

yama さんが書きました:(問題があることが確定っぽければ、重めの不具合だと思うのでp1リリースしたほうがよいかも?)
MySQLのバージョンが絡むので、すごく微妙~な判断ですねーー
事がバージョンアップなので、比較的古いMySQLを使ってる人ほど出易い傾向はあるかもしれませんね。
本家の次期バージョンとの兼ね合いもあると思うので、その辺と相談でしょうか・・・
(とりあえず、当フォーラムには原因と回避策は記したので、原因不明で困ってる人は救えると思います)
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by kazuike »

私も、2件ほど1.0.1Jから1.0.2Jにアップデートしたのですが、
どちらも以下の現象が起こりました。
#特にエラーは出ていなかったと思います。(見落としただけかも?)

●インストール画面最初の言語とログイン画面が英語になる。
 
インストール画面を開くと「English」が選択された状態
インストール画面を開くと「English」が選択された状態
 
ログイン画面が英語
ログイン画面が英語
●ログインができない。(その代り、エラー後のログイン画面は日本語)
 
ログインエラーで日本語のログイン画面に
ログインエラーで日本語のログイン画面に
 (色々と打ちなおしたり、閉じたり開いたりしているうちに、なにかのはずみでログインできました)

●ログインして最初の画面はCSS無しのような設定画面になり、そのまま「保存」で、いつもの管理画面になる。
 
ログインするとCSS無しのような設定画面
ログインするとCSS無しのような設定画面
2件は、PHPもMySQLもバージョンが違う(業者も違う)サーバです。
PHP5.3.0/MySQL5.1.40-log
PHP5.1.6/MySQL5.0.45

少し気になったのは、アップデートする前、管理画面にログインしたままだったということ。
(関係ないかもしれませんが)
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by sama55 »

kazuike さんが書きました:少し気になったのは、アップデートする前、管理画面にログインしたままだったということ。
(関係ないかもしれませんが)
直接的な影響は少ないと思いますが、それも関係ありそうな気がしてます。
インストーラの中でセッション見てるんですよね。。。

様々な要素が複雑に絡み合って現象も色々。kazuikeさんが見た、日本語っぽいログイン画面やCSSが適用されない管理画面も自分確認してます。ブラウザを変えると挙動が変わるので、何でだろう?と思ったのですが、セッション絡みと理解しました。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by yama »

インストール時・アップグレード時に /install/ ディレクトリに直接アクセスした場合は、1.0.2Jの場合は初期画面が英語になります。これは次回対応できると思います。管理画面ログイン直後にCSSを認識してないような白い状態になるというのは、サイトキャッシュが初期化されてる場合にそのようになりますね。初期化というのはMODxアーカイブに含まれるサイトキャッシュをそのまま上書きした場合、ある条件でそのようになるみたいです。どういう場合かは忘れましたが、昔から何度か経験したことがあります。

セッション絡みは1.0.2で何らかの改修が入ったのを確認してます。

全体的に、インストーラの構成がすっきりしていない印象があります。インストーラを改良することでどんなメリットが得られるか(どうせやるならどんなふうに改良したいか)を整理したうえで、必要であれば改良に取り組みたい気もウズウズします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by yama »

http://code.google.com/p/modx-ja/issues/detail?id=328
上記の議論などを経て、原因が特定できました。対症療法でよければ、単純なパッチで対応できます。根本的な問題については今回は慌てて対応せず、シンプルな対応で済ませるのがよいと思います。毎日20~30件のダウンロードがあるので、早いうちの対応を用意したいと思います。
(できれば今晩中にでも)
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by yama »

http://code.google.com/p/modx-ja/downlo ... .2.7p1.zip
パッチを作りました。作ったというほどのものでもなくて、tinymce.tplのバージョンを書き換えただけですが・・どなたか確認をお願いします。tinymce.tplをインストーラに上書きして、インストールをやり直すだけでよいです。

http://code.google.com/p/modx-ja/downlo ... .2J-p1.zip
該当ファイルを差し替えた1.0.2Jもアップしておきます。アーカイブ名にはp1がついてますが、コアやインストーラ本体側の変更はありません。これから1.0.2Jへアップデートをする人用です。

特に問題なさそうであればリリースしたいと思います。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by yama »

http://modxcms-jp.com/news/2009-1122.html
リリースしました。
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by kazuike »

ちょっと確認させてください。

以下のような感じで、なんとかログインできて設定まで行った場合
http://forum.modx.jp/viewtopic.php?f=60&p=1151#p1115

今回配布された中の「tinymce.tpl」の「@internal @properties」の右側の文字列を行末まで全部取り出し、
TinyMCEのプラグイン設定に(上書きで)貼り付ければ良いですよね?
それとも、もう一度アップデートしたほうが良い?

それと、
貼り付ける時に、ダブルクォーテーションは削らないといけなかったでしたっけ?
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by yama »

kazuike さんが書きました:今回配布された中の「tinymce.tpl」の「@internal @properties」の右側の文字列を行末まで全部取り出し、
TinyMCEのプラグイン設定に(上書きで)貼り付ければ良いですよね?
そです。もちろんアップデートし直してもいいけど、ログインできてるならそこまでやるのはおおげさなので。

ダブルクォートやアスタリスクがどういうふうに関係してるのかは具体的にはまだよく分かってません。TinyMCEのinit文としてはイレギュラーでないポイントで切れてしまってる点も謎のひとつです(むしろヒントかも)。ダブルクォートは削るとTinyMCEが動かなくなります。シングル・ダブルいずれかに統一すればよいと思います。たぶんダブルに統一が正解です

とりあえず今回のアプローチとしては、TinyMCEを強制的にアップデートさせる方法を採用しました。実際、構成が変わっているのでアップデートする必要があります。バージョン表記を変更することでアップデート対象として検出させることができます。アップデート対象でない場合は何をしてるのだろう?って感じで、何もしなくてよいはずですが。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: ローカル環境で1.0.1Jから1.0.2Jにアップグレードするとログインできなくなる

投稿記事 by sama55 »

kazuike さんが書きました:以下のような感じで、なんとかログインできて設定まで行った場合
http://forum.modx.jp/viewtopic.php?f=60&p=1151#p1115

今回配布された中の「tinymce.tpl」の「@internal @properties」の右側の文字列を行末まで全部取り出し、
TinyMCEのプラグイン設定に(上書きで)貼り付ければ良いですよね?
それとも、もう一度アップデートしたほうが良い?
安全を期して、もう一度アップデートすることをお勧めします。
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 '[*]', &tinyFormats=Block Formats;text;p,h2,h3,h4,h5,h6,div,blockquote,code,pre &' at line 1[/color]
アップデート中に上記のエラーが表示されてアップデートシーケンスがアボートすると、tinyMCEより後方の処理が行われずに、インストール/アップデート中フラグが立ちっぱなしになります。その結果、ログイン画面が”アップデート中・・・ちょっと待ってね”になります。この状態を回復するためには、1.0.2Jに、リリースされたパッチファイルを上書きして、アップデートを再度実行するのが一番確実な方法だと思います。

また、アップデートでは、旧プラグインをバックアップしますので、この問題の如何に関わらず、アップデートが正しく終了したら、エレメント>>プラグインを開いて、不要なプラグインが多数残ってないか確認してください(アップデートを繰り返し実行するとバックアップが嵩む懸念があります)。
返信する