【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

質問全般・改善要望
返信する
baudog
メンバー
メンバー
記事: 31
登録日時: 2013年8月12日(月) 13:34

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by baudog »

先日、サーバ移設をご相談させていただいたものです。
その時のサイトとは別の modxサイトのご相談です。

modx 1.0.20J で運用中のサイトを、別のサーバに移設する必要があったため、移設と同時に 1.0.23J へアップデートしました。
・サーバ:CPI (新・旧どちらも)
・modx 1.0.20J → 1.0.23J
・PHP 5.5.27 → 7.3

サーバ移設&アップデートは問題なく終わり、一見問題なく表示されている感じなのですが、Wayfinder で自動生成させているメインメニューのパスが、ウェブリンク直後のページで正しく生成されていないことがわかりました。

このサイトは、以下のように日本語・英語のコンテンツ(リソース)があります。
  • ・ホーム(ウェブリンク ID:5へ飛ばす)
    ・日本語(ID:5、エイリアス:japanese) 日本語テンプレートで表示
    • - 概要
      - 展示内容
      - その他
    ・英語(ID:6、エイリアス:english) 英語テンプレートで表示
    • - Overview
      - Exhibits
      - Other
ただ、トップページ(index.html)に当たるリソース「ホーム」は、実はウェブリンクで、アクセスがあったときは無条件に日本語コンテンツをデフォルト表示させるためにあります。
日・英それぞれのトップページには、以下のような Wayfinder でメインメニューを自動生成させています。

Wayfinder の設定

コード: 全て選択

[[Wayfinder?
 &startId=`5` // 英語の場合は &startId=`6` 
 &level=`2`
 &excludeDocs=`16`
 &outerClass=`nav navbar-nav`
 &rowTpl=`メインメニュー_rowTpl`
 &parentRowTpl=`メインメニュー_parentRowTpl`
 &innerTpl=`メインメニュー_innerTpl`
 &hereClass=`active`
 &firstClass=``
 &lastClass =``]]
問題は、日本語トップを表示したときは、それぞれのページへのリンクパスから /japanese が抜けてしまうため、ぺーじなし404となってしまいますが、おかしなことに英語ページはちゃんと /english が正しく付きます。
(正)mydomain.jp/japanese/overview.html → (誤)mydomain.jp/overview.html

ちなみに、リソース「ホーム」のウェブリンクを英語のID:6に付け替えると、つまり、デフォルトを英語に切り替えると、今度は /english がリンクパスから抜けてしまいますが、日本語ページには /japanese がちゃんと付くようになります。

サーバ移設前のサイトでは全く問題ありませんでした。

実際にテスト中の画面をお見せします。今は日本語がデフォルトです。
http://hav10074z6wn.smartrelease.jp/
画面右上に日本語・英語の切り替えボタンがありますので、日・英それぞれの画面から、上部のメインメニューをクリックしてみてください。英語ページから日本語ページへ移るときはちゃんと出ます。つまり、ウェブリンク直後の Wayfinder のパス生成だけがおかしい気がします。

なにかご存じの方、お教えいただければ幸いです。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by yama »

https://github.com/modxcms-jp/evolution ... .0.24J.zip
報告ありがとうございます。上記の開発版を試していただいてよいでしょうか?
現在判明している不具合はほぼ修正できていると思います。直ってなければすぐ修正します。
baudog
メンバー
メンバー
記事: 31
登録日時: 2013年8月12日(月) 13:34

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by baudog »

yamaさん、お返事ありがとうございます。
早速試しましたが、状況は変わりませんでした。

このアップデート版は、数日前に以下トピックでご提供いただいたものと同一ですね?
http://forum.modx.jp/viewtopic.php?f=32&t=1935
同時に2つのサイトをサーバ移設しており、どれもサーバの仕様は同じですので、この頂いたアップデート版が最新版と認識して、どちらにも適用しております。

また、このアップデート版では、以下の不具合もあります。
・新規にサブリソースを追加しようとするとエラー
・既存のリソースは開けるが、TinyMCE が起動せず、ツールバーも非表示で、HTMLコードがそのまま編集枠に表示される。

エラーの画面を添付しておりますのでご参照ください。
添付ファイル
TinyMCEが起動されない
TinyMCEが起動されない
サブリソース追加するとエラー
サブリソース追加するとエラー
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by yama »

222238.png
222249.png
222411.png
222806.png
手元の環境で、これかな?というのを調べてみました。TinyMCEはたぶんインストーラの不具合、
リソース新規作成ができないのはMySQLのバージョンが関係しているかなと思います。
TinyMCEのプラグイン設定とMySQLのバージョンを教えていただけますか?
想定どおりでしたら、その部分を修正します。
baudog
メンバー
メンバー
記事: 31
登録日時: 2013年8月12日(月) 13:34

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by baudog »

yama さん、いつもお世話になっております。

TinyMCE は、
TinyMCE Rich Text Editor(6) 3.5.11
TinyMCE Rich Text Editor(6) 3.5.12
と、3.5.11に取り消し線なので、3.5.12がたぶん有効。

3.5.12 の Custom Parameters は

コード: 全て選択

body_id:\"editor\"
となっていたので、おや?と思い、3.5.11 の方を確認すると

コード: 全て選択

body_id:"editor"
だったのでピンときて、3.5.11の設定にしたらTinyMCEが起動しました。ありがとうございました。
バージョンアップ時に " がエスケープされてしまうということでしょうか?

MySQL は 5.7.28 です。

引き続きよろしくお願いします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by yama »

なるほど、そしたらアップデータの不具合ですね。たぶんTinyMCE以外にも関係すると思います。
MySQLの件も含めて、後ほど修正します。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by yama »

Wayfinderの件は、状況がよく理解できませんでした。すみません・・
http://mng.demo.modx.jp/
こちらのほうで、問題が起きるデータ構造をシンプルな形で再現できますでしょうか?
baudog
メンバー
メンバー
記事: 31
登録日時: 2013年8月12日(月) 13:34

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by baudog »

yama さん

デモサイトに 1.0.23J がありませんでしたので、とりあえず 1.0.20J で、コンテンツ作りました。
http://200716122910-23006.evo.demo.modx.jp/manager/

コンテンツの作り方はそれをご覧いただけるとわかると思いますが、残念ながら 1.0.23J ではないので、再現はできません。
現行のサイトは 1.0.20J で問題なく動いています。

1.0.23J のデモサイトをご用意できるようでしたら、再度作ります。

よろしくお願いします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by yama »

ありがとうございます、再現を確認できました。後ほど修正しますのでよろしくお願いします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by yama »

https://github.com/modxcms-jp/evolution ... .0.24J.zip
修正しました。こちらで確認をお願いしてよいでしょうか?
baudog
メンバー
メンバー
記事: 31
登録日時: 2013年8月12日(月) 13:34

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by baudog »

yama さん、ありがとうございます。

確認いたしましたところ、以下の2点
・TinyMCEが起動されない件
・ウェブリンク後の Wayfinder のパスがおかしい件
は修正されておりました。

しかし、まだ「新規サブリソースを追加するとエラーになる」件は、残念ながら改善されていないようです。既存サブリソースの修正はできます。

今回 1.0.23J にアップデートしたサイトは2つありますが、新規サブリソース追加時のエラーは別々のエラーを出します。
以下に、そのエラーの画面テキストを掲載します。
いずれも、管理画面のダッシュボードから「リソースを投稿」したときに出るエラーです。

<サイトA>1.0.20J から 1.0.23J へアップデート
ーーーーーーーーーーーーーーーー
« MODX Parse Error »
MODX encountered the following error while attempting to parse the requested resource:
« Execution of a query to the database failed - Expression #1 of ORDER BY clause is not in SELECT list, references column 'hav10074z6wn_nagai.tvtpl.rank' which is not in SELECT list; this is incompatible with DISTINCT »
SELECT DISTINCT tv.*,tv.default_text as 'value' FROM `hav10074z6wn_nagai`.`modx_site_tmplvars` AS tv INNER JOIN `hav10074z6wn_nagai`.`modx_site_tmplvar_templates` AS tvtpl ON tvtpl.tmplvarid=tv.id LEFT JOIN `hav10074z6wn_nagai`.`modx_site_tmplvar_access` AS tva ON tva.tmplvarid=tv.id WHERE tvtpl.templateid='1' AND (1='1' OR ISNULL(tva.documentgroup) ) ORDER BY tvtpl.rank,tv.rank, tv.id
LastQuery : SELECT DISTINCT tv.*,tv.default_text as 'value' FROM `hav10074z6wn_nagai`.`modx_site_tmplvars` AS tv INNER JOIN `hav10074z6wn_nagai`.`modx_site_tmplvar_templates` AS tvtpl ON tvtpl.tmplvarid=tv.id LEFT JOIN `hav10074z6wn_nagai`.`modx_site_tmplvar_access` AS tva ON tva.tmplvarid=tv.id WHERE tvtpl.templateid='1' AND (1='1' OR ISNULL(tva.documentgroup) ) ORDER BY tvtpl.rank,tv.rank, tv.id
Basic info
REQUEST_URI : /manager/index.php?a=4
Manager action : 4 - Creating a resource
Referer : https://nagaitakashi.nagasakipeace.jp/m ... ex.php?a=2
User Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
IP : 125.207.75.10
Benchmarks
MySQL : 0.0155 s (9 Requests)
PHP : 0.0379 s
Total : 0.0534 s
Memory : 2.98 MB

Backtrace

1 include_once()
manager/index.php on line 248
2 getTmplvars()
manager/actions/document/mutate_content.dynamic.php on line 48
3 DBAPI->select()
manager/actions/document/mutate_content/functions.php on line 44
4 DBAPI->query()
manager/includes/extenders/dbapi/mysqli.inc.php on line 347
5 $modx->__call()
manager/includes/extenders/dbapi/mysqli.inc.php on line 243


<サイトB>1.0.14J から 1.0.23J へアップデート
ーーーーーーーーーーーーーーーー
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/haw10054o3q1/html/manager/actions/header.inc.php:53) in /usr/home/haw10054o3q1/html/manager/includes/extenders/ex_subparser.php on line 496
« MODX Parse Error »
MODX encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
PHP error debug
Error : Cannot modify header information - headers already sent by (output started at /usr/home/haw10054o3q1/html/manager/actions/header.inc.php:53)
ErrorType[num] : WARNING[2]
File : /usr/home/haw10054o3q1/html/manager/includes/extenders/ex_subparser.php
Line : 496
Source : header('HTTP/1.1 500 Internal Server Error');
LastQuery : SELECT DISTINCT tv.*,tv.default_text as 'value' FROM `haw10054o3q1_modx`.`site_tmplvars` AS tv INNER JOIN `haw10054o3q1_modx`.`site_tmplvar_templates` AS tvtpl ON tvtpl.tmplvarid=tv.id LEFT JOIN `haw10054o3q1_modx`.`site_tmplvar_access` AS tva ON tva.tmplvarid=tv.id WHERE tvtpl.templateid='17' AND (1='1' OR ISNULL(tva.documentgroup) ) ORDER BY tvtpl.rank,tv.rank, tv.id
Basic info
REQUEST_URI : /manager/index.php?a=4
Manager action : 4 - Creating a resource
Referer : https://nagasakipeace.jp/manager/index.php?a=2
User Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
IP : 125.207.75.10
Benchmarks
MySQL : 0.0173 s (10 Requests)
PHP : 0.0686 s
Total : 0.0859 s
Memory : 3.96 MB

Backtrace

1 include_once()
manager/index.php on line 248
2 getTmplvars()
manager/actions/document/mutate_content.dynamic.php on line 48
3 DBAPI->select()
manager/actions/document/mutate_content/functions.php on line 44
4 DBAPI->query()
manager/includes/extenders/dbapi/mysqli.inc.php on line 347
5 $modx->__call()
manager/includes/extenders/dbapi/mysqli.inc.php on line 243


これらの現象は、アップデートではなく、1.0.23J を新規インストールしたら見られない現象なのでしょうか?
そうであれば、新規インストール+DB差し替え等、別に試せる方法があるのでしたら試したい気もあります。

どうぞよろしくお願いします。
添付ファイル
サイトA_サブリソース追加時のエラー.png
サイトB_新規サブリソース追加でエラー.png
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by yama »

https://github.com/modxcms-jp/evolution ... .0.24J.zip
修正しました。managerフォルダのみ上書きでokです。
baudog
メンバー
メンバー
記事: 31
登録日時: 2013年8月12日(月) 13:34

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by baudog »

yama さん、ありがとうございます。

サブリソース追加時のエラーはなくなりました。
しかし、また別のエラーを見つけてしまいました。

テンプレートには親テンプレートと子テンプレートがあるのですが、親テンプレートを更新しようとするとエラーになります。
子テンプレートは問題なく更新できます。

エラー画面は、CPIサーバ(KDDI)側の「SiteGuard Server Edition」という WAF が、何らかのエラーを検知してエラー表示しているものと思われますが、再度テンプレートの内容を見たときに変更部分が元の値に戻っているので、更新処理後の画面遷移で検知に引っかかったのではなく、更新処理の何かが「攻撃に値するもの」と検知され、更新が行われなかったのでは?と思われます。

子テンプレートは問題なく更新できるため、親テンプレートの処理の何かが関係しているのではないでしょうか?

なお、イベントログには何も記録されていませんでした。
また、SiteGuard Server Edition の設定に関しても調べています。
https://siteguard.jp-secure.com/product ... r-edition/

大変お忙しいことと存じますが、ご対処いただけましたら幸いです。
添付ファイル
親テンプレートの更新でエラー
親テンプレートの更新でエラー
エラー画面
エラー画面
baudog
メンバー
メンバー
記事: 31
登録日時: 2013年8月12日(月) 13:34

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by baudog »

追伸

「SiteGuard Server Edition」をサーバのコントロールパネルからOFFにすることで、エラーは出ないことを確認しました。
ですので、WAF の関係でこういうこともあるということだけ記録していただければ結構です。

今のところ問題ありません。
ありがとうございました。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by yama »

連絡ありがとうございます。WAFの問題はCMS側での対応は基本的にできないので、
こういう場合は無効にするしかないと思います。
確実に危険な投稿だけをキャッチするような設定ができるといいのですが・・
baudog
メンバー
メンバー
記事: 31
登録日時: 2013年8月12日(月) 13:34

【1.0.23J】ウェブリンク後の Wayfinder のパスがおかしい

投稿記事 by baudog »

yama さん

お返事ありがとうございます。

了解いたしました。
今回の件、ご対処いただきまして大変助かりました。
今後とも宜しくお願いします。
返信する