logue / pukiwiki_adv

PukiWiki Adv is the derivation version of PukiWiki. This distribution specializes in modern technology, such as ajax, HTML5+CSS3, and RIA.
http://pukiwiki.logue.be/
GNU General Public License v2.0
39 stars 19 forks source link

Pukiwiki Advance v2.0.0で、ページ更新後一回目に「予期せぬエラーが発生しました」と表示される #21

Closed mekkoo closed 9 years ago

mekkoo commented 9 years ago

当方環境: クライアントサイド: OS X Yosemite / Firefox 37 サーバーサイド: php 5.5.20 / PHP Built-in Server ( -t webroot/ )

PHP 5.5.20 is running as cli-server mode. / Powerd by .
Using Zend Framework ver.2.3.4.
Cache system using Filesystem.
Mecab is disabled. If you installed, please check mecab path.
JavaScript framework:Modernizr: 2.8.3 / jQuery: 2.1.1 / jQuery UI: 1.11.1.

はじめまして。mekkooと申します。 素晴らしいプログラムの作成に感謝いたします。 Pukiwiki Advanced v2.0.0 の Git最新版 e8252798ce7d3aaab044deff5b4013b39561c0ac にて、 新規/既存ページの「ページの更新」ボタン押下一回目に「予期せぬエラーが発生しました」というダイアログが表示されます。その後ダイアログを閉じ、もう一度ボタンを押下すると正常に完了します。 http://www.screencast.com/users/mekkoo/folders/Jing/media/88854182-06fc-4499-9133-604994ce9473 上記の動画の通りです。 少し調べてみましたところ、skin.original.jsの1764行目のfailに突入しているようです。

この問題についてネットで調べてみましたところ、Firebird Wiki http://firebirdwiki.jp/index.php?cmd=read&page=TOP でも同様の不具合が発生しており、未解決となっているもようです。

コメントのほういただければ幸いです。

logue commented 9 years ago

この問題は、touch命令やchown命令が正常に動作していないため起こっているところまでは判明しています。 どうやら、1度目はファイルの生成を行うときにエラーが発生して、2度目の更新の時に書き込まれていると考えられます。 https://github.com/logue/pukiwiki_adv/blob/master/wiki-common/lib/PukiWiki/File/AbstractFile.php#L371 https://github.com/logue/pukiwiki_adv/blob/master/wiki-common/lib/PukiWiki/File/AbstractFile.php#L401

オリジナルのベタ移植ですが、中途半端に動作しているのでなんともしがたい状態です。

mekkoo commented 9 years ago

ご返事ありがとうございます。 となると、OS X以外の環境では問題なく動作している、ということでしょうか? 参考までに、問題なく動作するOSを教えていただけますでしょうか。

mekkoo commented 9 years ago

XDebugを使ってchownとtouchの該当部分にbreakpointを張って編集操作をしてみたのですが、編集時には呼ばれていないようでした。

logue commented 9 years ago

OSの問題というよりパーミッションや実行権限の問題です。 PHPを実行しているユーザがchmodやchown命令を実行できない環境の場合はこの問題は起こりえます。

ちなみに、「タイムスタンプを更新しない」のチェックが外れている場合で、ページを更新した場合は、この関数は呼ばれません。

mekkoo commented 9 years ago

nginx 1.6.2 + php-fpm 5.5.21の環境で、php-fpmの動作するuser/groupをファイル/ディレクトリの所有者属性と同一にし、かつPukiwiki Advのディレクトリ全体をchmod -R 777で上書きしても、この問題は解決しませんでした。 動作ユーザに直接ログインしてchmodやchownを実行できることは確認済みです。

logue commented 9 years ago

すみません、92bd9d8の修正で直しました。 Ping送信時に$errが未定義だったため起こったようです。

mekkoo commented 9 years ago

ありがとうございます!