質問箱/4477

カテゴリ
サマリis_freeze(): flock() faildと表示される
バージョン1.4.7
投稿者一ヶ月いじり?
状態完了
投稿日2009-07-20 (月) 13:50:10

質問

pukiwikiをローカルで構築しているのですが、ブラウザからローカルホストにあるindex.phpにアクセスすると、is_freeze(): flock() faildとだけ表示されます。

php4.3.1、OS Win98です。 検索して調べてみましたが、同じような症状の質問が打ち切られている上に、エラーが何処に有るのかすら分かりません。 ご助言お願いします。

回答

  • flock 関数 の注意に次のような警告があります。

    flock()はFATのような 旧式のファイルシステムではサポートされていないため、 そのような環境の場合は常にFALSEを返すことになります。 (これは特にWindows98ユーザーにとって常に真です)

    lib/func.php のis_freeze 関数にあるflock 関数のある2つの行をコメントにしたらどうですか。 -- 2009-07-20 (月) 18:40:27
  • ご意見ありがとうございます!早速、助言の通りに調べて見ましたらis_freeze関数にエラーが有りました。エラーがあった二行ですif(! $function_freeze || ! is_page($page){ $is_freeze[$page]=FALSE;となっています。 -- 一ヶ月いじり? 2009-07-20 (月) 20:05:48
  • 申し訳ありません、flock関数に関係する二行でしたね……上のは気にしないでください正しくはflock($fp. LOCK_SH) or die('is_freeze(): flock() faild')rewind($fp)flock($fp, LOCK_UN) or die('is freeze(): flock() faild'):です -- 一ヶ月いじり? 2009-07-20 (月) 20:17:44
  • アドバイスの表現をミスったかな・・・。flock 関数を実行しないように、その行をコメントにして無効化してみてください。 -- 2009-07-21 (火) 18:33:57
    	} else {
    		$fp = fopen(get_filename($page), 'rb') or
    			die('is_freeze(): fopen() failed: ' . htmlspecialchars($page));
    //		flock($fp, LOCK_SH) or die('is_freeze(): flock() failed');
    		rewind($fp);
    		$buffer = fgets($fp, 9);
    //		flock($fp, LOCK_UN) or die('is_freeze(): flock() failed');
    		fclose($fp) or die('is_freeze(): fclose() failed: ' . htmlspecialchars($page));
    
    		$is_freeze[$page] = ($buffer != FALSE && rtrim($buffer, "\r\n") == '#freeze');
    		return $is_freeze[$page];
    	}
  • コメント化を知らなかったので、とんちんかんな事をしてしまい申し訳ないです。問題は解決しました!ありがとうございます -- 一ヶ月いじり? 2009-07-28 (火) 00:54:32
  • 同じ現象に遭遇して情報を探しましたが、flockをコメントアウトするかor dieを消すかくらいしか対処法が見当たりませんでした。しかしファイルの排他制御ができていないのは危ない気がして、ロックしつつエラーにしない方法がないかと考えていますが思いつきません。 -- Kats? 2011-12-20 (火) 17:35:51
  • dev:BugTrack/164 や、質問箱/3260 とかにヒントあったかな? -- 2011-12-21 (水) 00:36:16


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-12-21 (水) 00:36:16
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.245 sec.

OSDN