dポイントプレゼントキャンペーン実施中!

xamppのAPCでエラーが発生するようになりました。

WindowsXP環境にて、xampp1.7.1を使用しています。
cakePHPのソースを動かしているのですが、エラーが発生しています。
ソースは、cakePHPのデフォルトの機能を使用した(bake)データベース的なものです。

プログラムを実行すると、以下のエラーが発生します。


< ブラウザに表示されるエラー >
Fatal error: Call to undefined function apc_fetch() in [ドライブ]:\xampp\htdocs\cakephp\cake\libs\cache\apc.php on line 74


< apc.php >
function read($key) {
$time = time();
$cachetime = intval(apc_fetch($key.'_expires'));
if ($cachetime !== 0 && ($cachetime < $time || ($time + $this->settings['duration']) < $cachetime)) {
return false;
}
return apc_fetch($key);
}

この「$cachetime = intval(apc_fetch($key.'_expires'));」の部分でエラーが発生しているようです。

そこで、調べたところ、xamppのphp.iniの「;extension=php_apc.dll」のコメントを外すことによって、エラーを解除することができました。

ということで、先日までできていたのですが、突然apacheを開始すると、Windowsの強制終了のエラーが発生するようになってしまいました。
「extension=php_apc.dll」のコメントを外している時にだけ発生するエラーなので、これが問題と考えているのですが。


< Windows強制終了の内容 >
該当プログラム:Apache HTTP Server
エラー報告に含まれるデータの参照:
・エラー署名 szAppName:httpd.exe
szAppVer:2.2.11.0
szModName:ZendOptimixer.dll
szModVer:0.0.0.0
offset:0000e497


xamppは基本デフォルトの設定で、80番ポートはhttpdで使用できていることを確認しました。
(xamppのデフォルトページや、phpMyAdmin等も問題なく表示できています)


< phpinfo() >
apc
APC Support:enabled
Version:3.1.0-dev
MMAP Support:Disabled
Locking type:File Locks
Revision:$Revision: 3.151 $
Build Date:Nov 8 2007 23:20:54

Directive / Local / Value / Master / Value
apc.cache_by_default / On / On
apc.enable_cli / Off / Off
apc.enabled / On / On
apc.file_update_protection / 2 / 2
apc.filters / no / value / no / value
apc.gc_ttl / 3600 / 3600 /
apc.include_once_override / Off / Off
apc.localcache / Off / Off
apc.localcache.size / 512 / 512
apc.max_file_size / 1M / 1M
apc.num_files_hint / 1000 / 1000
apc.report_autofilter / Off / Off
apc.rfc1867 / Off / Off
apc.rfc1867_freq / 0 / 0
apc.rfc1867_name / APC_UPLOAD_PROGRESS / APC_UPLOAD_PROGRESS
apc.rfc1867_prefix / upload_ / upload_
apc.shm_segments / 1 / 1
apc.shm_size / 30 / 30
apc.slam_defense / 0 / 0
apc.stat / On / On
apc.stat_ctime / Off / Off
apc.ttl / 0 / 0
apc.user_entries_hint / 4096 / 4096
apc.user_ttl / 0 / 0
apc.write_lock / On / On


apcを利用した状態で、画面を表示させるには(エラーをなくすには)、どうしたらよいのでしょうか。
以前は動作していたものが、突然動かなくなったのはなぜでしょう。

必要な情報は追記しますので、よろしくお願いいたします。

尚、Yahoo知恵袋でも回答を求めておりますが、閲覧数が低かったため、失礼だとは思いますが、こちらのgooでも掲載させていただきました。
どうぞお力添えのほど、よろしくお願いいたします。

A 回答 (2件)

追記



情報投下

http://php.net/manual/ja/apc.installation.php

Windows 版の APC では、temp パスが存在し、 Web サーバから書き込み可能になっていることが必要です。 APC は環境変数 TMP、TEMP、USERPROFILE の内容をこの順に調べ、 どれも設定されていない場合は WINDOWS ディレクトリを使用します。
    • good
    • 0

1点質問します。

時系列にて記載します。

1.突然、apc_fetch でエラーが発生
2.extension=php_apc.dll のコメントを外し、読む込むように設定
3.Apacheを再起動
4.問題なく動作

現状
1.Apacheを再起動
2.Windowsエラーが発生

以上で、よろしいでしょうか?

cakePHPのバージョンにもよりますが、キャッシュエンジンが誤認識されてAPCが有効になっているか、APCが有効な設定にされているかどうかでしょうかね。

APCを有効にせず(extension=php_apc.dllを読み込まない)に正常にcakePHPを動作させる場合、キャッシュエンジンを強制的にFileにすればいいかと思います。

当方Windows環境ではないので、Windowsエラーの発生原因はわかりません。設定かな。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!