問題タブ [opcache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 特定のバージョンの PHP/Apache を再起動しますか?
サーバー (Centos 6 / Plesk 12) に PHP バージョン 5.5 をインストールし、サイトの 1 つの PHP バージョンを変更しました。サイトが新しい PHP バージョンを使用していることを php 情報ファイルで確認できますが、そのバージョンの php を開始する方法がわかりません。PHP5 ini ファイルにいくつかの変更を加えましたが、Apache を再起動すると、php5.5 ではなく古いバージョン (php 5.4) が再起動します。サーバーに複数のバージョンがインストールされている場合 ありがとう!
追加情報 - php5.5 ini ファイルに加えた変更により、zend_extension opcache.so が読み込まれます。これが、最初に php 5.5 をインストールした理由です。
ボーナス質問: php 5.5 を fastcgi として実行すると、zend opcache は有効になりますか? オブジェクト キャッシュ モジュールは fastcgi と互換性がないと聞いたことがあります。これは、ユーザーが自分のユーザーとしてアプリケーションを実行できるため、キャッシュがユーザーごとに x 個のキャッシュを作成できないためです..それが理にかなっている場合..笑
ありがとう
php - PHP でコンパイル時間を長くする方法
より長いコンパイル時間を必要とする PHP スクリプトをどのように作成すればよいのでしょうか?
OPCache拡張機能でテストするためにこれを行いたいです。
後で編集: PHP スクリプトが読み込まれると、コードはバイトコードにコンパイルされ、このバイトコードは CPU によって解釈されます。通常、コンパイル プロセスには数ミリ秒かかりますが、PHP 5.5 の OPCache 拡張機能をテストするには、この時間を非常に長くする必要があります。この拡張機能は、スクリプトを再度コンパイルする必要がないように、スクリプトのバイトコードをキャッシュする必要があります。
php - Opcache により PHP の致命的なエラーが発生する: クラス '\xa0L\xdaor\x7f' が見つかりません
サイトの画像サイズ変更スクリプトは、次のエラーで失敗することがあります。
PHP 致命的なエラー: クラス '\xa0L\xdaor\x7f' が見つかりません ... 4 行目
問題のスクリプトの実際の 4 行目は次のとおりです。
\xa0L\xdaor\x7f
エラー ログの 16 進コードがどこから来たのかわかりません。スクリプトは正常に実行され、1 日か 2 日比較的頻繁に実行されますが、そのエラーで毎回失敗し始めます。
を実行するopcache_reset()
と、エラーが停止します。
誰でもこの問題の原因を知っていますか?
更新:応答がありませんでしたopcache.blacklist_filename
。
php - Typo3 + opcache を使用した IIS での PHP クラッシュ
IIS 7.5 の実行時に、ときどき不規則な 500 エラーが発生する
- opcache を有効にした PHP 5.6.1
- Typo3 6.2 LTS
opache ブラックリストには、typ3temp キャッシュ ディレクトリが含まれています。
エラー:
HTTP-Fehler 500.0 - 内部サーバー エラー C:\php-responsive-5-6\php-cgi.exe - FastCGI プロセスが予期せず中止されました**
問題は、php が何が起こっているかについてのログを残さないことです。ただし、error_log が有効になっており、php は効果的にファイルにログを記録しますが、この場合のみ、ログはありません。
"display_errors", "display_startup_errors" are set to "On".
opcache を無効にすると、エラーが消えます。
IIS で PHP を実行することが一般的なテクノロジ スタックではないことはわかっていますが、私たちのプロジェクトではそれを避けることはできません。ただし、Windows で PHP を構成する専門家ではありません。
誰にもアイデアはありますか?
php - Opcache の有効化が機能しない
Opcache を有効にしようとしていますが、何らかの理由で、php.ini ファイルを編集して apache を再起動しても (サーバーを再起動しても)、まだ有効になりません。テストを実行すると、php ファイルの場所が次のようになることがわかります。
そのファイル内に追加しました:
zend 拡張機能の場所は、locate opcache.so によって定義されました。これはうまくいきませんでした。次に、php が追加のファイル /etc/php5/apache2/conf.d/05-opcache.ini をロードしていることに気付きました。そのファイルでは、次のようになります。
ただし、Apache を再起動しても有効になりません。以下は私の phpinfo() 出力にあります:
有効にするにはどうすればよいですか?
nginx - OPcache と PHP-FPM/Nginx でヒット率 0%
Vagrant の Ubuntu 14.04 で実行されている Nginx/PHP-FPM セットアップで PHP 5.5 の OPcache を動作させようとしています。
ディレクトリを/etc/php5/mods-available/opcache.ini
次のように構成しました。
を実行するphp -v
とphpinfo()
、OPcache が有効になっていることが示され、opcache-statusとopcache-guiをロードすると同じことが示されます。
OPcache GUI では、ファイルがキャッシュされていることがわかります。OPcache を詳細モードでログに記録するように設定して、これを確認しました。問題は…彼らは決して攻撃を受けないということです!
私は ApacheBench を実行してアプリケーションを攻撃しましたが、ヒットが 1 つも登録されていません。0 ヒットと 103 ミスです。hello_world.php
単に実行するファイルをテストしたこともあり、echo 'Hello, world!';
それも毎回「ミス」として登録されます。
誰が何が間違っているのか考えていますか?
更新:
登録されているヒットの再現可能なケースを取得することができました。を実行した直後にservice php5-fpm restart
、100 の同時接続で ApacheBench を実行すると、キャッシュが 75% を超えてヒットします。それ以降、各「通常の」更新もヒットとして登録されます。
ただし、php-fpm を再起動して最初のリクエストが「通常」(つまり、Web ブラウザからのもの) である場合、ApacheBench を 100 の同時接続で実行すると、すべて失敗します…</p>
それ以降ヒットを持続させるためには、最初のリクエストがサーバーを叩く必要があるようなものです... 本当に奇妙です! php-fpm がプロセスを生成する方法に関係している可能性があると想定していますが、私はその分野では本当に初心者なので、これが誰かに手がかりを与える場合は、助けてください!
php - APC から OPcache への移行パスは?
PHP と APC キャッシング メカニズムを新しい/より優れた OPcache にアップグレードする適切な方法は何ですか? 特定のツールまたは再構成スクリプトはありますか?
php - PHP 5.6でZend OpCacheをファイルとして保存しますか?
Zend OpCache を使用してコードを難読化し、高速化しようとしていますが、OpCache には、他の古いキャッシュ システムのようにファイルにバイトコードを保存する通常の機能がないようです。OpCache はオペコードのメモリにファイルをキャッシュするネイティブな方法であるため、引き続き使用したいと考えていますが、システム違反が発生した場合にコードを隠蔽できるようにする必要があります。(もう 1 つのセキュリティ対策)
PHP ファイルをオペコードまたはバイトコードのコンパイル済みコードとして保存するには、どのようなオプションを利用できますか?
編集:人々は私が探していたものをほとんど誤解していると思います。投稿に対する私のコメントを読んでください。私は 12 年以上のプロの Web 開発者なので、これは初めてではありません。私は自分の戦術を少し変えて、他の人が私が思いもよらなかったこれをやってのける方法を知っているかどうかを確認したかった.