web-dev-qa-db-ja.com

APCはPHP 5.4またはPHP 5.5と互換性がありますか?

APCがphp 5.4リリースと一致するように更新されたようには見えません(元々計画されていたPHPコアにAPCが含まれていればよかったです)。

現在のAPCがphp 5.4+で動作するかどうかの決定的な答えを見つけることができないようです。 php 5.4用のUbuntuパッケージを見つけることができましたが、php-apcパッケージはインストールされません。

103
Greywire

PHP 5.5に含まれるZend OPCache

2013年3月21日に "Zend OPCache"を含むPHP 5.5ベータ1がリリースされました -PHPに含まれているAPCの代替品となるようです。コア、およびが新しいリリースごとに維持される必要があります。

APCのオペコードキャッシングをAPCに依存している場合は、今後の組み込みオペコードキャッシュでコードをテストし、発生した問題をフィードバックして安定した最終リリースを確保することを個人的にお勧めします。

これがAPCの将来にとって何を意味するのかわかりません。

APC for PHP 5.4+ ISまだベータ版としてフラグが立てられています

これは、開発者が not を完全に stable と見なすことを意味します。現在のSVNリリースでは多くの人がまったく問題を経験していませんが、特定の構成または高負荷の人からのEdgeケースの奇妙な報告がまだあります。

実稼働環境で使用するすべてのものと同様に、開発環境または実稼働前環境でリリース(ベータまたは安定版)を徹底的にテストしてください最初。これには負荷テストが含まれます!

3.1.13リリースの時点で、SVNリポジトリへのコミットは多少遅くなり、 バグリスト には最近の追加は多くありません。あなたがするものを作りましょう。

2012年12月10日21:05に、ラスマスラードルフは次のように書きました:

APCは現在、5.4の時点にあり、5.3の場合よりも多くのEdgeケースはないと考えています。どちらも完璧ではありませんが、大部分のサイトにとっては十分に近いものです。

C/gdbのスキルがあり、ある程度の空き時間がある場合は、 バグリスト に目を通し、何か修正できるかどうかを確認するか、この無料のオープンソース製品私たち全員が依存していること。

代替ソリューションが存在し、ウィキペディアは PHPアクセラレーターのリスト を提供します。

2013年2月13日、 Zeev Suraskiが発表Zend Optimizer +ソースコード が利用可能になりました。

次のメジャーバージョン(5.5以降のバージョン)では、かなり多くの Zend Optimizer +をPHPコアに統合することに関する長い議論 がありました。このような場合は、事前にZend Optimizer +に慣れておく必要があります。


APC 3.1.14を使用しないでください

APC 3.1.14はPECLから削除されました 発見されたがまだ追跡されていない深刻なメモリ問題のためにダウンロードされました。

すでに3.1.14を使用している場合は、3.1.15がリリースされるまでダウングレードすることをお勧めします。これはまだ beta であることに注意してください。まったく使用している場合は、自己責任で使用してください。

2013-01-02
APC 3.1.14 が利用可能PHP 5.5互換性を追加し、かなりの数の他のバグを解決します

まだ beta


2012-09-03
APC 3.1.1 が利用可能、 多数のセグメンテーション違反の修正


2012-08-16
APC 3.1.12タグ が作成されましたが、まだ beta としてマークされており、 APC PECLで利用可能ですpage 、および changelog

今回、多くのbin_dump関連のバグが修正されました。


2012-07-19
APC 3.1.11タグ が作成されましたが、まだ beta としてマークされており、 APC PECL page 、および changelog 。私は関連するメーリングリストをフォローしてきましたが、APCバグの修正に引き続き積極的に取り組んでいますが、それは複雑なモジュールであり、多くの人がその仕事をしているようには見えません。このリリースでは、ファイルを含める際の厄介なstat = 0バグが修正されています。


2012-04-11
APC 3.1.10タグ が今日作成され、3.1.10のベータリリースが APC PECLページ に配置されました

changelog 状態:

  • PHP 5.4サポートを追加(Dmitry、Anatoliy、Pierre)
  • バグ#22679を修正:定数のapc_bin_dumpを修正。 IS_CONSTANT_TYPE_MASKを使用して、(〜IS_CONSTANT_INDEXチェックの代わりに)未修飾の定数を含むすべての定数を処理します
  • バグ#23822、Apacheの再起動時にPHPがクラッシュする問題を修正
163
Leigh

PHP 5.4.7およびAPC 3.1.13(および2012-09-19現在のAPC SVNトランク)の時点では、「互換性」はありますが、特に以下の場合、負荷の高いサーバーでは安定していませんPHP-FPMと$ GLOBALSを使用しています。 APCに関する開発者の議論のいくつかは、 未解決のフリンジケース について語っています。

問題がまだ一般的であるため、質問されてから6か月後にこの質問に答えていますが、私のような答えのないこのスレッドに遭遇すると、APCとPHP 5.4に飛躍しました焦げるうまくいけば、これが人々が痛みを避けるのに役立つでしょう。

10
Eric Caron

バグの「おそらく」は、トランクの最新リビジョンで修正されているようです。 PHP 5.4.0で動作するようになりました。

svn co http://svn.php.net/repository/pecl/apc/trunk/ apc-trunk

cd apc-trunk

phpize

。/構成、設定

make

インストールする

6
Simon

さて、私はここ数日間試していますが、オペコードキャッシュをPHP 5.4で動作させる方法はありません。 Xcacheはコンパイルされず、キャッシュされるとapcは特定のクラスを認識しません。これはサイモンが話しているエラーだと思います。

トランクにいくつかの修正があったと聞きましたが、最新のトランクソースも試しましたが、同じエラーが繰り返し発生します。オペコードキャッシャーのないphp(現在利用できるものはありません)は、実稼働に値しないと思います。 apcの人々がこれをできるだけ早く修正することを願っています。

更新!!!

Xcache 2.0.0-rc1は、PHP 5.4と互換性があります。楽しい!

5
Michiel Thalen

いいえ、APC 1.3.9(そして現時点ではsvnトランクでさえ)はphp 5.4.0と互換性がありません。それを動作させるために何時間も費やしたからです(さまざまなsvn/phpをテストしました。 ini設定/コンパイラフラグ/名前を付けます)。

これはとんでもないことです。APCは最も人気のあるPHP拡張機能の1つであり、8 PHP 5.4 RCを数週間経った後、APCを取得する時間があるはずです。それに沿って動作します。

哀れ。

5
JohnSmith

PHPバージョン5.5.19でAMPPSを使用しています。しばらく前からPHP 5.5のリリースから-APCはPHP 5.5以降に含まれているZend OPCacheに置き換えられました。 「APC」(現在は「OPcache」)を有効にするために必要なことは、php.iniを編集することだけです。 [XDebug]セクションの前に、流れるような行を追加します。

php.ini

...

[OPcache]

zend_extension=php_opcache.dll

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=24
opcache.max_accelerated_files=4000
opcache.revalidate_freq=3
opcache.fast_shutdown=1

...

以下の2つのインスタンスが必要であることに注意してください。

zend_extension =

[OPcache]に1つ、[XDebug]セクションに1つ。 Xdebugは、xampp/ampps/easyPHPサーバーのインストール時にデフォルトとして提供されないことがよくあります。 Xdebug拡張機能をダウンロードする必要がある場合があります。これを行うには、PHPに適切なXdebugを定義するオンラインアプリケーションを使用します。 http://xdebug.org/wizard.php にアクセスし、簡単な指示に従ってください。ご使用のPHPバージョンに適切なバージョンのXdebugをダウンロードしたら、[XDebug]セクションでzend_extensionのリンクを編集します。

...

[XDebug]
zend_extension = "C:\Program Files (x86)\Ampps\php\ext\php_xdebug-2.2.6-5.5-vc11.dll"
......

ご注意ください! php.iniファイルでXDebugの前にOPcacheセクションを追加する必要があること!!!私を正しくフォローしている場合、php.iniファイルにzend_extensionの2つのインスタンス(OPcacheに1つ、Xdebugセクションに1つ)が必要です。

これはSymfony2フレームワークに対して完全に機能し、PHPおよびXdebugのAPCをインストールして有効にするための推奨メッセージを排除します。

Symfony 2を実行し、「web/config.php」から警告メッセージを削除したが、コマンドライン「php app/check.php」から実行することで問題が発生する人へのメッセージ。これが発生した場合、コンソールが別のphp.iniファイルを使用していることを意味します。システムのPATH変数を変更します-正しいphpディレクトリ(php.exeファイルがあり、ローカルサーバーで使用される)を指すようにします。

より詳細な説明が必要な場合は、以下のコメントでお知らせください。よろしく。

4
DevWL

私はapcuを見つけました http://windows.php.net/downloads/pecl/releases/apcu/

多分これはWindows上のx64用のapcです。それ(バージョン4.0.1)は私のアプリケーションで動作しました。

4
StXh

各ページリクエストでオペコードキャッシュをクリアする必要があることがわかりました。そうしないと、インターフェースを実装するクラスがロードに失敗します。これは、最新のsvnトランク、Apache 2.4.1、PHP 5.4.0からコンパイルされました。

3
Simon

まだ解決されていない問題があるようです。 bugs を確認すると、特定の問題の解決策を理解できる場合があります。

私は数時間前にそのようなエラーに対処しましたが、SVNトランクからAPCを使用することが道であることがわかりました。お役に立てれば!

3
Roberto

APC-非推奨
個人的にPHP 5.4またはPHP 5.5ではAPCを使用しませんでしたが、最新の安定したAPCはPHP 5.4と互換性がありません。最新のベータAPCは5.4で使用できますしかし、APCに関してまだ否定的な問題があると書かれています。

PHP 5.5がある場合
ちょうど使用 Zend Opcache 。すぐに使えるので、問題は最小限です。

PHPがある場合5.4
XCache をお勧めします。 PHP 5.4および5.5と完全に互換性があります。積極的に開発されました。最後の安定バージョンは3.5か月前(2013年10月10日)にリリースされました。 fastcgiを使用してもパフォーマンスが向上します。

2
trante

Zend OPCacheはPHP 5.5にphp_opcache.dllという名前でphp/extディレクトリに含まれています。これをアクティブにするには:

  • php_opcahe.dllファイルをzend拡張としてphp.ini設定ファイルに追加します。
  • 形式zend_extension = path/to/php/ext/php_opcache.dllを使用します。
  • php.ini configxDebug zend_extensionの前にzend_extensionを配置します。
  • php.ini設定ファイルとrestartサーバーを保存します。
1
ROOT

PHP 5.4.26およびAPC 3.1.9を使用して、メモリ解放エラー(Apache segfault)を実験しています。 PHP 5.4.XにはAPCの未解決のバグがあります: https://bugs.php.net/bug.php?id=61934

PHP> 5.3ではこのプラグインを使用しないことをお勧めします。

0
dAm2K

XAMPPバージョン5.6.3(PHP 5.6.3)では、ini.phpで行う必要があるのはこれだけです:

[OPcache]

zend_extension = php_opcache.dll
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=24
opcache.max_accelerated_files=4000
opcache.revalidate_freq=3
opcache.fast_shutdown=1

[XDebug]

zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.max_nesting_level = 200
xdebug.profiler_append = 1
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
;xdebug.profiler_output_dir = "C:\xampp\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
;xdebug.remote_enable = 0
;xdebug.remote_handler = "dbgp"
;xdebug.remote_Host = "127.0.0.1"
;xdebug.trace_output_dir = "C:\xampp\tmp"

Symfony2フレームワークの設定。

0
DevWL

APCには1月2日以降の新しいバージョン3.1.14があり、いくつかのバグが解決されています。 http://pecl.php.net/package/APC

ただし、これまでのところ、dotdebリポジトリからAPC 3.1.13を使用してPHP 5.4.xを問題なく実行しているため、安定していると言えます。 dotdebはまた、PHPの次のリリース(5.4.11になります)に更新されたAPCを含めることを通知しました。

0