1.0.6J-r5ベータです トピックは解決済みです

プログラム(機能)関連の開発の話題
アバター
yama
管理人
記事: 2957
登録日時: 2009年7月29日(水) 02:50

1.0.6J-r5ベータです

投稿記事by yama » 2012年7月23日(月) 09:48

1.0.6J-r5ベータです。今回のアップデートは変更が大きいため、念入りにテストします。現在のところ、フレンドリーエイリアス設定が無効な環境で問題があることを確認しています。

viewtopic.php?f=34&t=803
上記で説明したディレクトリ構成の変更を行なっています。

キャッシュを改善し、大規模サイトを実用的に運用できるようになりました。1万ページのサイトでも8~13MB程度のメモリで動作します。(WordPressで17MB前後)
キャッシュは今後も改善を続け、100万ページでも軽く動作するようにする予定です。

PHxプラグインの機能を内蔵しました。初期設定ではオフになっていますので、試してみたい方はグローバル設定で有効にしてください。
PHxプラグインはコアの処理を横取りして独自にパースを済ませてからコアにデータを戻す仕組みのため、他の拡張機能との相性問題がありました。これを解決することを目的としています。

SEO Strict URLsは今回のアップデートにより動作しなくなるため、こちらも同時に修正を施します。
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.6J-r5ベータです

投稿記事by min-o » 2012年7月23日(月) 18:07

-----
ご利用のサーバ: さくらインターネット
Webサーバのバージョン :
PHPのバージョン :5.2.17
データベースのバージョン :5.1.51-log
MODXのバージョン : 1.0.6J-r5-b1
ブラウザ :fierfox13
-----

1.0.6J-r4 からテスト環境でアップデートしてみました。(リソース3000~4000ほどの運用サイト)
通常アップデート後、assets/から以下のディレクトリをそれぞれ移動しました。
contents/
・images
・files
・flash
・media

temp/
・cache
・backup
・import
・export

エクスポートしたsqlの assets/各ディレクトリ を contents/各ディレクトリ に変換して、インポートしたところ
以下のエラーがでました。
-----------

Warning: mb_substr() [function.mb-substr]: Unknown encoding "" in /home/****/www/backup/manager/includes/document.parser.class.inc.php on line 2039
Undefined index: a
? MODX Parse Error ?
MODX encountered the following error while attempting to parse the requested resource:
? PHP Parse Error ?
PHP error debug
Error : file_put_contents(/home/****/www/backup/assets/cache/siteCache.idx.php) [function.file-put-contents]: failed to open stream: No such file or directory
ErrorType[num] : WARNING[2]
File : /home/****/www/backup/manager/processors/cache_sync.class.processor.php
Line : 270
Source : if(!file_put_contents($this->cachePath .'siteCache.idx.php', $content, LOCK_EX))
Basic info
REQUEST_URI : /topics/Release.html
Referer : http://backup.*****.jp/topics/catalog.html
User Agent : Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
IP : 222.151.197.6
Parser timing
MySQL : 0.1935 s (10 Requests)
PHP : 0.2055 s
Total : 0.3990 s

Backtrace
1 executeParser() index.php on line 133
2 getSettings() manager/includes/document.parser.class.inc.php on line 144
3 buildCache() manager/includes/document.parser.class.inc.php on line 736
4 file_put_contents() manager/processors/cache_sync.class.processor.php on line 270

----------------

sqlを開いて assets/cache を temp/cache にすべて変換、再インポートしましたが
エラーは変わらず、管理画面に以下のエラーがでます。

-----------
Warning: file_put_contents(/home/****/www/backup/assets/cache/siteCache.idx.php) [function.file-put-contents]: failed to open stream: No such file or directory in /home/****/www/backup/manager/processors/cache_sync.class.processor.php on line 270
Cannot write main MODX cache file! Make sure the "/home/****/www/backup/assets/cache/" directory is writable!
----------

assets/cache をもとに戻すと、どちらのエラーも出なくなります。

ざっと見た限りでは、このエラー以外では問題は見当たりません。
※手動で contents/ディレクトリ に移動したり、sqlをテキスト検索+変換してますが、これはこのやり方でいいのでしょうか?
ちょっと敷居が高いと思うので、sqlはインストール時に自動で直しておいてくれるといいなぁ~と思ったり。
アバター
yama
管理人
記事: 2957
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r5ベータです

投稿記事by yama » 2012年7月23日(月) 18:27

なるほどですね。実はアップデートの際は置換せずにそのまま運用する想定で組んであります。グローバル設定の「ファイルブラウザディレクトリの相対パス」[(rb_base_url)]の設定を見ますので、assets/images/で運用している場合はそのまま変わりません。temp以下は変わりますが、これは設定とは関係しないので、これも何も置換せずにそのまま使えます。
cacheディレクトリはいろいろ影響が多そうなので、今のところ対応を見送ってます

あえてassetsからcontentに変更したい場合は、今回のようにSQLを置換するのがよいと思います。その際「assets/」で置換するとプラグインやスニペットなども影響を受けますので、
assets/images → content/images
assets/flash → content/flash
assets/media → content/media
assets/files → content/files
この4つで置換する必要があります。(置換されるのはほとんどコンテンツデータになりますね)
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.6J-r5ベータです

投稿記事by min-o » 2012年7月23日(月) 19:07

ダッシュボートの設定で
-----------
警告 イメージディレクトリに書き込みできません

この警告の詳細
イメージディレクトリが書き込み可能でないか、ディレクトリ自体が存在していません。エディターの画像管理機能が動作しません
----------
がでてました。
ちなみにエディターの画像管理機能はほとんど使ってないです。
画像ファイルが多すぎて表示に時間かかるので…。

グローバル設定/ファイル管理機能の管理対象ディレクトリ[(filemanager_path)]で
/home/****www/backup/content/
にしても変わりません。
もっともこうしてしまうと、テンプレート用のファイルが管理画面からアップできず不便なので、すぐ戻しましたが。

assets/images ディレクトリがあれば警告は出ません。

>cacheディレクトリはいろいろ影響が多そうなので、今のところ対応を見送ってます
なるほど。了解です。
アバター
yama
管理人
記事: 2957
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r5ベータです

投稿記事by yama » 2012年7月23日(月) 20:00

通常アップデートをした直後の状態でダッシュボードにこの警告が出ますでしょうか?
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: 1.0.6J-r5ベータです

投稿記事by soushi » 2012年7月24日(火) 03:29

デモサイトにもMODX 1.0.6J-r5-b1のパッケージを用意しました。

http://mng.demo.modx.jp/

動作確認等、ご自由にお試しください!

またパッケージを用意した際、以下の警告が表示されました。

pic.png
CAP
pic.png (7.65 KiB) 閲覧数: 7186 回


新規インストールした場合に./contents/imagesフォルダが作られていない事と、どうも ./assets/images をチェックしているようです。
取り急ぎ共有までー。

※追記
min-oさんも同じこと書いてました(汗

※追記2
画像をTinyMCEからアップロードしたら ./assets/images に保存されました。
アバター
yama
管理人
記事: 2957
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r5ベータです

投稿記事by yama » 2012年7月24日(火) 05:29

なるほど。そのへんのチェックをもう少し精密に作る必要がありますね。
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.6J-r5ベータです

投稿記事by min-o » 2012年7月24日(火) 10:28

soushi さんも書かれてますが、通常アップデートした状態では警告はでません。
assets/images → /contents/images に移動するとでます。

アップデート直後では
contentの中はindex.htmlのみで空です。
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: 1.0.6J-r5ベータです

投稿記事by soushi » 2012年7月24日(火) 10:49

すいません、僕が報告したimagesディレクトリの件、デモサイトの展開ロジックにて物理パス調整が一部旧パスのまま調整しているところがありました。
今は修正しているので警告が出なくなってます。
取り急ぎデモサイトの状況報告まで。
アバター
yama
管理人
記事: 2957
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r5ベータです

投稿記事by yama » 2012年7月24日(火) 11:03

min-o さんが書きました:assets/images → /contents/images に移動するとでます。

この場合、ステップが3つ必要です(今回のr5に限らず、以前からですが)

・ファイル一式をディレクトリごとassets/images→/content/imagesに移動
・SQLダンプをテキストエディタで開き、文字列「assets/images」を「content/images」に一括置換し、SQLインポート(管理画面内のリストア機能も可)
・管理画面グローバル設定の「ファイルブラウザディレクトリの相対パス」を assets/からcontent/ に変更

・・・で大丈夫なはずですが、どうでしょう?
(今回のようにアップデートの場合はassets/のままでも特に問題なく運用できます)
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.6J-r5ベータです

投稿記事by min-o » 2012年7月24日(火) 11:23

上二つは済んでいたので

>管理画面グローバル設定の「ファイルブラウザディレクトリの相対パス」を assets/からcontent/ に変更
をやってみましたが、警告は出たままです。

「ファイルブラウザディレクトリの物理パス」も 既定値 /home/****/www/backup/content/ にしたところ
エラーになりました…。
-------------
Warning: include_once(/home/****/www/backup/content/plugins/phx/phx.parser.class.inc.php) [function.include-once]: failed to open stream: No such file or directory in /home/****/www/backup/manager/includes/document.parser.class.inc.php(1325) : eval()'d code on line 15

Warning: include_once() [function.include]: Failed opening '/home/****/www/backup/content/plugins/phx/phx.parser.class.inc.php' for inclusion (include_path='.:/usr/local/php/5.2.17/lib/php:/home/****/www/backup/manager/includes') in /home/****/www/backup/manager/includes/document.parser.class.inc.php(1325) : eval()'d code on line 15

Fatal error: Class 'PHxParser' not found in /home/****/www/backup/manager/includes/document.parser.class.inc.php(1325) : eval()'d code on line 19
アバター
yama
管理人
記事: 2957
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r5ベータです

投稿記事by yama » 2012年7月24日(火) 11:52

これはPHxのバグですね。PHxコード本体に$modx->config['rb_base_url']という文字列があると思うので、これを$modx->config['base_path'] . 'assets/'に書き換えてみてください。
「ファイルブラウザディレクトリの物理パス」の変更でエラーになるのは別件なのであとで調べてみます。
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.6J-r5ベータです

投稿記事by min-o » 2012年7月24日(火) 15:25

>これはPHxのバグですね。PHxコード本体に$modx->config['rb_base_url']という文字列があると思うので、これを$modx->config['base_path'] . 'assets/'に書き換えてみてください。

変更してみました。
→ダッシュボードの設定の警告 ママ

グローバル設定の「ファイルブラウザディレクトリの物理パス」を 既定値 /home/****/www/backup/content/ に変更
→ダッシュボードの設定の警告 消えました
→エラー 消えました

TinyMCEからから画像アップ
content/images/ に保存されました。
アバター
yama
管理人
記事: 2957
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r5ベータです

投稿記事by yama » 2012年7月24日(火) 16:30

了解です。リリース時はPHxの情報についてもアナウンスしたほうがよさそうですね。
アバター
yama
管理人
記事: 2957
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r5ベータです

投稿記事by yama » 2012年7月24日(火) 19:16

ベータ2です。内蔵PHxの処理を見直しました。if文を使えないなどの問題点がまだ残ってますが、それは秋頃に予定しているパーサ全体の改善で対応します。
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: 1.0.6J-r5ベータです

投稿記事by soushi » 2012年7月25日(水) 00:58

ベータ2もデモサイトにパッケージとして用意しました :)
どうぞお試しください。

http://mng.demo.modx.jp/pack_list/Evolu ... r5-b2.html
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.6J-r5ベータです

投稿記事by min-o » 2012年7月25日(水) 11:25

すいません。初歩的な質問なんですが、
ベータ2はベータ1にアップデートしてOKなんでしょうか?
1.0.6J-r4 をベータ2にアップデートするほうがいいのでしょうか?
アバター
yama
管理人
記事: 2957
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r5ベータです

投稿記事by yama » 2012年7月25日(水) 11:29

どちらでも全く同じ結果になるはずなので、大丈夫だと思います。ベータ2ではTinyMCEが新しくなってますが、どちらからアップデートしてもアップデートできます。
使用感としてはどうでしょう?(3000ページ以上あると、体感で違いが感じられるのではと思います)
アバター
min-o
メンバー
メンバー
記事: 291
登録日時: 2009年10月07日(水) 18:32

Re: 1.0.6J-r5ベータです

投稿記事by min-o » 2012年7月25日(水) 13:04

ベータ1からベータ2へアップデートしてみましたが、
インストーラー画面で「アップデートするオプションはありません」と出て、そのまま進みましたが
ログインしても 右上の表示は1.0.6J-r5-b1 のままです。

アップデート後にでるグローバル設定の保存も出なかったです。

TinyMCE は 3.5.5 になってます(ベータ1のときもこのバージョンだったような…)。
アバター
yama
管理人
記事: 2957
登録日時: 2009年7月29日(水) 02:50

Re: 1.0.6J-r5ベータです

投稿記事by yama » 2012年7月25日(水) 13:38

確認してみたところ、バージョン変えてませんでした。なのでそれで合ってます。TinyMCEもb1の時点ですでに3.5.5でしたね、、