カテゴリ | |
---|---|
サマリ | 編集のページの更新ができない |
バージョン | 1.4.2 |
投稿者 | たこ |
状態 | 不明 |
投稿日 | 2004-01-17 (SAT) 21:42:13 |
pukiwikiをインストールの説明どおりにやってあります。 ところが編集でページを書いた後、ページを更新のボタンをおすと異常に(更新に)時間がかかって。挙句に「サーバが見つかりません」のエラー表示になってしまいます。 プレビューの動作はまったく問題ありません。 同じサーバではすでに1個pukiwikiが問題なく動作しています。 今回その(すでに動作している)pukiwikiと環境が違う点はユーザディレクトリ(public_html)で動作させようとしているという点のみです。
方法は、 windowsXpで解凍→ftpでfreeBSDにあげる→scp(-r -p)で今回ターゲットとなるmacosx(webserver)にあげる→pukiwiki.ini.phpの設定及びパーミッション設定→動作確認
環境は、 OS:MacOSXserver1.3 Apache php4
原因はわかりませんねぇ。PukiWiki.orgのサーバーでは少なくとも4つ以上のPukiWikiが稼働していますが、そのような症状は起きてません。複数稼働については原因ではないでしょう。
編集した結果は反映されているのでしょうか?
それが反映されていないのです。chownとか必要なのですか?1つ目あげるときもつかっていないのですが。
ちなみにURLは
http://www.ubi.cs.ritsumei.ac.jp/~ykazuki/inner/pukiwiki/pukiwiki.php
認証のユーザ名、パスワードはpukiwiki、pukiwikiです。
pukiwiki.ini.phpで$scriptは設定されてますか?
init.phpの11行目の
error_reporting(E_ERROR | E_PARSE);を
error_reperting(E_ALL);に変えて、どういうエラーが出ているのか調べてみるとわかるかも。
init.phpを
error_reperting(E_ALL);に変えて見ましたが、特に変化なしです
ちなみに、pukiwiki.ini.phpは
$script ='http://www.ubi.cs.ritsumei.ac.jp/~ykazuki/inner/pukiwiki/pukiwiki.php';のように設定してあります。
PHP 4.3.2ってたしか何か問題があったはず…。なんだったかなぁ
printf/sprintf/vprintf/vsprintf関数のバグだから関係なさそう。
4.3.2のバグで「register_globalsが有効な場合に、POSTデータに配列を指定すると正しく動作しない」というのがあるけど、関係なさそうだしなあ
すみません、編集してたらreimyさんのレスが消えてしまいました。。
あ、あれは忘れてください。あれはローカルでないとテストできないので。
私の環境はphp4.3.2なのですか?
上記のサイトは4.3.2って表示されてましたよ。
ではバージョンを変えれば対処できるかもしれないということですか?
対象方法はもう考えられませんか?
同じサーバー上で一方は正常に動作してるんですよね? public_htmlディレクトリでの動作で何かサーバー側で制限されているということはないですか?
もう一方は事情があって見せられないのですが、正常動作しております。それはユーザディレクトリではなくサーバ(ルート)のディレクトリなのですが。
<Directory /home> AllowOverride AuthConfig #AuthConfigの上書き禁止 DirectoryIndex pukiwiki.php #ディレクトリインデックスのファイル名 </Directory>
といったような設定はhttpd.confで設定しています。
たしかにサーバ(ルート)のディレクトリにあったものをscp(-p -r)でもってきて設定を少し変更したのですが、正常動作しなかったので、その可能性は大いにありますね。もう一回httpd.conf見直してみます
edit.inc.phpのfunction plugin_edit_write()の中で
else { $notimestamp = !empty($post['notimestamp']); page_write($post['page'],$postdata,$notimestamp); if ($postdata != '') { header("Location: $script?".rawurlencode($post['page']));の
page_write($post['page'],$postdata,$notimestamp);を
// page_write($post['page'],$postdata,$notimestamp);のようにコメントアウトしてみてください。元のページ(ページが存在しない場合は編集画面に戻るはず)が表示されますか?
これで表示されないなら書き込み時(page_write)の問題ではないということになります。
表示されます。
ということは、file.phpのpage_writeの中のどこかですね…
順番に探るしかないですね。function page_write()の中の
$oldpostdata = is_page($page) ? join('',get_source($page)) : ''; $diffdata = do_diff($oldpostdata,$postdata); file_write(DIFF_DIR,$page,$diffdata);だけを生かして、バックアップの作成~links_update($page);までをコメントアウトして実行してみてください。それで表示されるなら、次はバックアップの作成の部分を生かし…、順番に追ってみてください。
バックアップの作成~links_update($page);までをコメントアウトしたところ、表示されないです。
PHPはあまり知らないのですが、大きな範囲のコメントアウトはCみたいに「/**/」といったのでもOKですよね?
file.phpのfunction make_backupの中で止まっているということですね。とすると、やはりパーミッション(またはオーナー)設定あたりが怪しいですね。
パーミッションに関しては、実際に正常動作しているものを「cp -r -p」で(状態保護)コピーしているので、問題ないと思います。このスレッドのレスでもかきましたが、chownをやっていないため、オーナー設定があやしいいと思うのですが、いったいどうやっていいものなのかわかりません。教えていただけないでしょうか?(実を言うと一回やりはしたのですが、うまく言ってない気がします。)
実際話、サーバの(HPディレクトリ)方では、chownをやらなくても動作しました。現在やっているのは(前もいいましたけど)ユーザディレクトリのpublic_htmlの方なのですが、このコマンドをどこで・どんなタイミングで・どのように使ったらいいのかがわかりません。