2011-12-19 18 views
2

私は時々なぜ私はこの致命的なエラーが(Yiiフレームワークで)apcでランダムに発生しますか?

Fatal error: require() [<a href='function.require'>function.require</a>]: apc_fcntl_lock failed errno:6 in C:\web\yii\framework\web\CWebApplication.php on line 345 

コードコンテキストに実行します。このエラーの原因は何

OS:win2k3. 
PHP Version 5.3.6 
Server API CGI/FastCGI 

apc: 
Version 3.1.8-dev 
APC Debugging Disabled 
MMAP Support Disabled 
Locking type File Locks 
Serialization Support php 
Revision $Revision: 308812 $ 
Build Date Mar 1 2011 13:31:44 

 else 
      $controllerID.='/'; 
     $className=ucfirst($id).'Controller'; 
     $classFile=$basePath.DIRECTORY_SEPARATOR.$className.'.php'; 
     if(is_file($classFile)) 
     { 
      if(!class_exists($className,false)) 
       require($classFile); ////////////THIS IS LINE 345 
      if(class_exists($className,false) && is_subclass_of($className,'CController')) 
      { 
       $id[0]=strtolower($id[0]); 
       return array(
        new $className($controllerID.$id,$owner===$this?null:$owner), 
        $this->parseActionParams($route), 
       ); 
      } 
      return null; 
     } 

相対ランタイム環境?どうすれば修正できますか?

答えて

0

これはAPCの問題のように見えますが、これは私も時折遭遇するものです。何が起こっているのかを100%は伝えることはできませんが、開発中は頻繁にファイルを変更、移動、上書きします。 APCは、バイトコードキャッシングを処理するために内部的に使用されるファイルのinodeを緩和しているようです。

エラーを修正する唯一の方法は、Webサーバーを再起動することです。

これは、ソースコードを頻繁に変更しない運用システムでも発生しますか?

+0

ありがとうございました。私が遭遇したのとまったく同じ症状は、それが生産後に表示されないことを願っています。 – LotusH

+0

@LotusH:このエラーメッセージはどうですか?あなたはまだこの問題を抱えていますか? Windows Server 2008で動作しているIISサーバーでAPCを有効にした後も、同じエラーメッセージが表示されたため、私は尋ねています。IIS + Windows 7を搭載した自分のマシンで試したので、同じバージョンのPHP、同じバージョンのMySQL、同じデータ、同じバージョンのAPCで、問題なく動作します。それは本当に奇妙です:ほぼ同じ条件がありますが、Windows 7では問題ありませんが、Windows Server 2008では問題ありません。 – Sk8erPeter

+0

申し訳ありませんが、私は2時間前に言ったことを取り消さなければなりません。私はサーバーをテストし、phpMyAdminがインストールされた別のサイトで、同じ "致命的なエラー:不明:apc_fcntl_lockがエラー0:6行目が不明です"というエラーメッセージを表示しました。 APCを無効にした後、すべてが再び機能しました...しかし、それは解決策ではありません。:\ – Sk8erPeter

関連する問題