PHPのインストールと使い方を詳しく解説 APC_PHPチュートリアル
1. PHPAPC のインストール
インストール パッケージをダウンロードして解凍します:
wget-c http://pecl.php.net/get/ APC-3.1.13 .tgz
tar-zvxf APC-3.1.13.tgz
cdAPC-3.1.13
コンパイルしてインストールします:
wget-c http://pecl.php.net/get/APC-3.1.13.tgz
/usr/local/php/bin/phpize
./configure--enable-apc --enable-mmap -- Enable-apc-spinlocks--disable-apc -pthreadmutex--with-php-config=/usr/local/php/bin/php-config
make
sudomake install
php.ini を変更して以下を追加します:
extension= "apc.so" ;
;APCsetting
apc.enabled= 1
apc.shm_segments= 1
apc.shm_size= 64M
apc.optimization = 1
apc.num_files_hint= 0
apc.ttl= 0
apc.gc_ttl= 3600
apc.cache_by_default= オン
重启apache或者/usr/local/php/sbin/php-fpmrestart
2. PHPAPC 設定オプション
[APC]
;代替 PHP キャッシュは、PHP 中間コードのキャッシュと最適化に使用されます
apc.cache_by_default=On
;デフォルトですべてのファイルのバッファリングを有効にするかどうか。
;オフに設定し、プラス記号で始まる apc.filters ディレクティブと一緒に使用すると、ファイルはフィルターに一致する場合にのみキャッシュされます。
apc.enable_cli= Off
; CLI バージョンで APC 機能を有効にするかどうかは、テストとデバッグの目的でのみこのコマンドをオンにします。
apc.enabled= On
; APC が静的に PHP にコンパイルされており、それを無効にしたい場合は、これが唯一の方法です。
apc.file_update_protection= 2
;実行中のサーバー上のファイルを変更するときは、アトミック操作を実行する必要があります。
;つまり、最初に一時ファイルに書き込み、次にそのファイルの名前を最終的な名前に変更 (mv) します。
;テキスト エディターや cp や tar などのプログラムはこのように動作しないため、不完全なファイルがバッファリングされる可能性があります。
;デフォルト値 2 は、ファイルにアクセスするときに、変更時間がアクセス時間から 2 秒未満であることが判明した場合、バッファリングは実行されないことを意味します。
;運が悪い訪問者は破損したコンテンツを受け取る可能性がありますが、その悪影響はキャッシュによって拡大されません。
;すべての更新操作がアトミック操作であることを確認できる場合は、0 を指定してこの機能をオフにすることができます。
;IO 操作が多いためにシステムの更新が遅い場合は、この値を増やす必要があります。
apc.filters=
;POSIX 拡張正規表現のカンマ区切りリスト。
;ソース ファイル名がいずれかのパターンに一致する場合、ファイルはキャッシュされません。
; マッチングに使用されるファイル名は、絶対パスではなく、include/require に渡されるファイル名であることに注意してください。
;正規表現の最初の文字が「+」の場合、その式に一致するファイルがキャッシュされることを意味します。
;最初の文字が「-」の場合、一致するファイルはキャッシュされません。 「-」はデフォルト値であり省略可能です。
apc.ttl= 0
;キャッシュ エントリがバッファ内に存在できる秒数。 0 はタイムアウトしないことを意味します。推奨値は7200~36000です。
;0 に設定すると、バッファーが古いキャッシュ エントリでいっぱいになる可能性が高く、新しいエントリがキャッシュされなくなる可能性があります。
apc.user_ttl= 0
; apc.ttl と似ていますが、各ユーザーの推奨値は 7200 ~ 36000 です。
;0 に設定すると、バッファーが古いキャッシュ エントリでいっぱいになる可能性が高く、新しいエントリがキャッシュされなくなる可能性があります。
apc.gc_ttl= 3600
;キャッシュ エントリがガベージ コレクション テーブルに存在できる秒数。
;この値は、キャッシュされたソース ファイルの実行中にサーバー プロセスがクラッシュした場合でも、安全策を提供します。
;ソース ファイルが変更されている場合、古いバージョンに割り当てられたメモリは、この TTL 値に達するまで再利用されません。 。
;この機能を無効にするには、ゼロに設定します。
apc.include_once_override= Off
; Off のままにしてください。そうしないと、予期しない結果が生じる可能性があります。
apc.max_file_size= 1M
;このサイズを超えるファイルのキャッシュを許可しないでください。
apc.mmap_file_mask=
;MMAP サポートが –enable-mmap (デフォルトで有効) を使用して APC 用にコンパイルされた場合、
;ここでの値は、mmap モジュールに渡される mktemp スタイルのファイル マスクです (推奨値は " /tmp /apc.XXXXXX")。
;このマスクは、メモリ マップ領域をファイル バックアップするか共有メモリ バックアップするかを決定するために使用されます。
; ファイルに基づく直接メモリ マッピングの場合は、「/tmp/apc.XXXXXX」 (正確に 6 つの X) に設定します。
;POSIX スタイルの shm_open/mmap を使用するには、「/apc.shm.XXXXXX」に設定する必要があります。
;「/dev/zero」に設定して、匿名でマップされたメモリにカーネルの「/dev/zero」インターフェイスを使用することもできます。
;このディレクティブを定義しないことは、匿名マッピングの使用を強制することを意味します。
apc.num_files_hint= 1000
; Web サーバーに含めたりリクエストしたりできるさまざまなソース ファイルのおおよその数 (推奨値は 1024 ~ 4096)。
; よくわからない場合は、0 に設定してください。この設定は主に数千のソース ファイルを含むサイトに使用されます。
apc.optimization= 0
; 最適化レベル (推奨値は 0)。
; 正の整数値はオプティマイザーが有効であることを示し、値が大きいほどより積極的な最適化が使用されます。
;値を大きくすると速度の改善が非常に限定される可能性がありますが、現在は実験段階です。
apc.report_autofilter= Off
;早期/遅延バインディングの理由により自動的にキャッシュされないすべてのスクリプトを記録するかどうか。
apc.shm_segments= 1
;コンパイラバッファに割り当てられた共有メモリブロックの数 (推奨値は 1)。
;APC が共有メモリを使い果たし、apc.shm_size ディレクティブをシステムで許容される最大値に設定している場合、
;この値を増やしてみることができます。
apc.shm_size= 30
; 各共有メモリ ブロックのサイズ (MB 単位、推奨値は 128 ~ 256)。
;一部のシステム (ほとんどの BSD バリアントを含む) のデフォルトの共有メモリ ブロック サイズは非常に小さいです。
apc.slam_defense= 0
;(このコマンドの使用は禁止されており、apc.write_lock コマンドを使用することをお勧めします)
;サービスを開始しているかファイルを変更しているかにかかわらず、非常に負荷の高いサーバーでは、
;複数のプロセスで同時にファイルをキャッシュしようとすると、競合状態が発生する可能性があります。
;このディレクティブは、キャッシュされていないファイルを処理するときにキャッシュステップをスキップするプロセスの割合を設定するために使用されます。
;たとえば、これを 75 に設定すると、キャッシュされていないファイルが見つかったときに 75% の確率でキャッシュされないことになり、衝突の可能性が低くなります。
;この機能を無効にするには、0 に設定することをお勧めします。
apc.stat= On
;スクリプトの更新チェックを有効にするかどうか。
;このコマンドの値を変更する場合は十分に注意してください。
;デフォルト値 On は、APC がリクエストされるたびにスクリプトが更新されたかどうかをチェックすることを意味します。
;更新された場合は、コンパイルされたコンテンツを自動的に再コンパイルしてキャッシュします。ただし、これを行うとパフォーマンスに悪影響が生じます。
;オフに設定すると、チェックが実行されないため、パフォーマンスが大幅に向上します。
;ただし、更新されたコンテンツを有効にするには、Web サーバーを再起動する必要があります。
;このコマンドは、include/require ファイルにも有効です。ただし、相対パスを使用する場合、APC は include/require するたびにファイルの場所を確認する必要があることに注意してください。
;絶対パスを使用するとチェックがスキップされる可能性があるため、include/require 操作には絶対パスを使用することをお勧めします。
apc.user_entries_hint= 100
;num_files_hint ディレクティブに似ていますが、ユーザーごとに異なります。 ;よくわからない場合は、0 に設定してください。
apc.write_lock= On
; 書き込みロックを有効にするかどうか。 ;非常に負荷の高いサーバーでは、サービスの開始時でもファイルの変更時でも、
;複数のプロセスが同時にファイルをキャッシュしようとするため、競合状態が発生する可能性があります。
;このディレクティブを有効にすると、競合状態を回避できます。
apc.rfc1867= Off
; このコマンドをオンにした後、直前に を含む各ファイルフィールドに対して
3. PHP_APC 関数
apc_add—変数をデータ ストレージにキャッシュします
apc_bin_dump— 指定されたファイルとユーザー変数のバイナリ ダンプを取得します
apc_bin_dumpfile— キャッシュされたファイルとユーザー変数のバイナリ ダンプを出力しますa file
apc_bin_load— ファイルからバイナリ ダンプを APC ファイル/ユーザー キャッシュにロードします
apc_bin_loadfile— ファイルからバイナリ ダンプを APC ファイル/ユーザー キャッシュにロードします
apc_cache_info— APC からキャッシュされた情報を取得しますデータストア
apc_cas — 古い値を新しい値で更新します
apc_clear_cache — APC キャッシュをクリアします
apc_compile_file — すべてのフィルターをバイパスして、バイトコード キャッシュにファイルを保存します。
apc_dec — 保存されている数値を減らす
apc_define_constants — 取得および一括定義用の一連の定数を定義します
apc_delete_file — オペコード キャッシュからファイルを削除します
apc_delete — ユーザー キャッシュから特定の変数を削除します
apc_exists — 特定の変数か特定の変数かを確認します変数が APC に存在します
apc_fetch - キャッシュから保存された変数をフェッチします
apc_inc - 保存されている数値をインクリメントします
apc_load_constants - キャッシュから一連の定数をロードします
apc_sma_info - APC の共有メモリを取得します割り当て情報
apc_store — データ ストアに変数をキャッシュします
4. PHPAPCの使用法
APCキャッシュの使用例(test_apc_cache.php):
error_reporting(E_ALL);
classapcInit {
/**
*Apc キャッシュセットキャッシュ
*キャッシュキー、値、キャッシュ時間を設定します
*@param string $key KEY value
*@param string $value value
*@param string $time キャッシュ時間
*/
publicstatic function set_cache($key, $value, $time = 0) {
if($time == 0) $time = null; //null情况下永久缓存
returnapc_store($key, $value, $time);;
}
/**
*Apcキャッシュ-キャッシュ取得
*KEYでキャッシュデータを取得
*@param string $key KEY value
*/
publicstatic function get_cache($key) {
returnapc_fetch($key);
}
/**
*Apc キャッシュ - キャッシュをクリアします
*memcache からキャッシュを削除します
*@param string $key KEY value
*/
publicstatic関数clear($key) {
returnapc_delete($key);
}
/**
*Apc キャッシュ - すべてのキャッシュをクリア
*この機能は推奨されません
*@return
*/
publicstatic関数clear_all() {
returnapc_clear_cache(); //明確缓存
}
/**
*APCキャッシュが存在するか確認
*@param string $key KEY value
*/
publicstatic function assigns($key) {
returnapc_exists($key);
}
/**
*フィールド自動インクリメント - カウントに使用
*@param string $key KEY value
*@param int $step 新しく追加されたステップ値
*/
publicstatic function inc($key, $step) {
returnapc_inc($key, (int) $step);
}
/**
*フィールドデクリメント - カウントに使用
*@param string $key KEY value
*@param int $step 新しいステップ値
*/
publicstatic function dec($key, $step) {
returnapc_dec($key, (int) $ step);
}
/**
*キャッシュファイル
*/
publicstatic関数cache_file($file) {
returnapc_compile_file($file);
}
/**
*APC キャッシュ情報を返す
*/
publicstatic関数info() {
returnapc_cache_info ();
}
}
apc_clear_cache();
apcInit::cache_file("HessianUtils.php");
apcInit::cache_file("Hessian1Parser.php");
apcInit::cache_file("Hessian1Writer.php") ;
apcInit::cache_file("HessianStream.php");
apcInit::cache_file("HessianParsing.php");
apcInit::cache_file("HessianExceptions.php");
include_once"./HessianUtils.php";
include_once"./Hessian1Parser.php";
include_once"./Hessian1Writer.php";
include_once"./HessianStream.php";
include_once"./HessianParsing.php";
include_once"./HessianExceptions.php";
header("Content-type:text/html;charset=utf-8");
header("Cache-Control:private,max-age=0,no-cache");
$HessianWriter= new Hessian1Writer() ;
$array= array(1, 2, 3, array('sff','张三'));
//parser
$resolver= new HessianRuleResolver('./hessian1rules.php');
//解析array
$parser_array= new Hessian1Parser($resolver, newHessianStream($HessianWriter->writeValue($array)));
print_r($parser_array->parse());
?>
五、 PHPAPC 管理 APC は、管理 APC を保存するための apc.php を提供します。 .php第41、42行:
复制代码
www.bkjia.com

tomakephpapplicationsfaster、followthesesteps:1)useopcodecachinglikeopcacheTostoredscriptbytecode.2)最小化abasequeriesecachingingindexing.3)leveragephp7機能forbettercodeefficiency.4)

依存性注入(DI)は、明示的に推移的な依存関係によりPHPコードのテスト可能性を大幅に改善します。 1)DI分離クラスと特定の実装により、テストとメンテナンスが柔軟になります。 2)3つのタイプのうち、コンストラクターは、状態を一貫性に保つために明示的な式依存性を注入します。 3)DIコンテナを使用して複雑な依存関係を管理し、コードの品質と開発効率を向上させます。

DatabaseQueryoptimizationInpholvesseveralstrategESTOEnhancePerformance.1)selectonlynlynlyndorycolumnStoredatedataTransfer.2)useindexingtospeedupdataretrieval.3)revenmecrycachingtostoreres sultsoffrequent queries.4)

phpisusededemingemailsduetoitsbuilt-inmail()functionandsupportiveLibrarieslikephpmailerandswiftmailer.1)usethemail()functionforbasicemails、butithaslimitations.2)emploadforadvancedfeatureSlikelikelivableabableabuses.3)雇用

PHPパフォーマンスボトルネックは、次の手順で解決できます。1)パフォーマンス分析にXdebugまたはBlackfireを使用して問題を見つける。 2)データベースクエリを最適化し、APCUなどのキャッシュを使用します。 3)array_filterなどの効率的な関数を使用して、配列操作を最適化します。 4)bytecodeキャッシュ用のopcacheを構成します。 5)HTTP要求の削減や写真の最適化など、フロントエンドを最適化します。 6)パフォーマンスを継続的に監視および最適化します。これらの方法により、PHPアプリケーションのパフォーマンスを大幅に改善できます。

依存関係(di)inphpisadesignpatternativats anducesclassodulencies、拡張測定性、テスト可能性、および維持可能性。

cachingemprovesppperformancebystring of computationsorquickretrieval、還元装置の削減は、reducingerloadendenhancersponseTimes.efcectivestrategiesInclude:1)opcodecaching、compiledphpscriptsinmemorytoskipcompilation;


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
