WindowsにAPCをインストールする

前書き

注:APCの代わりに標準のOPcache拡張を使用することを強くお勧めします。

APC(Alternative PHP Cache)はPHPのオペコードキャッシュです。これはPHPページをRAMに保存し、ハードディスクの活動を減らします。これはMoodleのパフォーマンスに大きな違いをもたらします。そして、あなたはシステム容量の50%の増加を達成することができるはずです、そして、あなたのCPUは50%少ない忙しいでしょう。

このガイドはWindowsサーバにAPCをインストールするためのものです。この手順はWindows 2003サーバー上でテストされています。テストサーバーとしてWindows XPを使用している場合にも適用されるはずです。

Windows Serverへのインストール

警告:APCとZend Optimiserを同じサーバーにインストールすることはできません。どちらかを選択してください。

APCをインストールするには、次の手順に従います。

正しいバージョンをダウンロードする

https://downloads.php.net/pierre/からインストールしたPHPバージョン用のWindowsバイナリをダウンロードしてください。 PHPの拡張機能フォルダ(デフォルトではc:\ php \ ext)に保存します。

PHP APC 3.1.13ベータ版は、こちらガブリエルDragffyことで、Windows上でのPHP 5.4.xに対してコンパイルされていますhttps://dragffy.com/blog/posts/php-apc-windows

注意:上記の場所にPHPのバージョン用のバイナリが見つからない場合は、 http://dev.freshsite.pl/php-accelerators/apc.htmlを試してください。


注意:あなたが使用しているPHPのバージョン(ブランチ)に合った正しい拡張子を選択してください。

PHP.INIファイルでAPC拡張子を有効にします。

php.iniファイルを編集して、拡張機能セクションに次の行を追加します。

 extension = php_apc.dll

Webサーバを再起動し、Moodle管理画面またはこの行を含むテキストファイルからphpinfoの出力を見て、これがうまくいったことを確認してください。

 <?php phpinfo(); ?

利用可能なメモリを確認してください

APCが使用可能なメモリ容量を確認するには、次の手順を実行します。

  • ワードパッドを実行してapcmeminfo.phpというテキストファイルを作成します。
  • この行をコピーしてファイルに貼り付けます
 <?php print_r(apc_sma_info()); ?
 ... [avail_mem] => 31447368 ... 

キャッシュによって使用されるメモリの総量はこの公式によって与えられます:

 total_memory = apc.shm_segments * apc.shm_size

この例では、利用可能なメモリは約32MBです。通常、キャッシュに32Mb以上必要な場合は、APCが使用するセグメント数を増やす必要があります。ただし、これによりWebサーバーの障害が発生する可能性があるため、代わりにセグメントサイズを増やすことをお勧めします。

キャッシュに利用可能な総メモリを設定する際、単一のMoodleインストールで動作可能な最低(64Mb)から始めてください。追加のモジュールやブロックがインストールされている場合は、この量では十分ではない可能性があるため、サーバーが稼働していることを最初の2週間は定期的にキャッシュを監視して確認します。以下の監視セクションを見て、キャッシュチャーンがなくなるまでキャッシュメモリの総量を徐々に増やしてください。

MoodleのAPC設定をカスタマイズする

デフォルトのAPC設定は次のとおりです。

 apc.cache_by_default =オン
apc.enable_cli =オフ
apc.enabled =オン
apc.file_update_protection = 2
apc.filters = 
apc.gc_ttl = 3600
apc.include_once_override =オフ
apc.max_file_size = 1M
apc.num_files_hint = 1000
apc.optimization =オフ
apc.report_autofilter =オフ
apc.shm_segments = 1
apc.shm_size = 30
apc.slam_defense = 0
apc.stat =オン
apc.ttl = 0
apc.user_entries_hint = 100
apc.user_ttl = 0
apc.write_lock =オン

これらの設定に関する詳しい説明は、 http: //www.php.net/apcを参照してください

一般的なMoodleのインストールにはいくつかの変更が必要です。これらは:

  • apc.shm_size(キャッシュのサイズ)。初期値は64 MBです。
  • 1に設定されるべきapc.shm_segmentsこれは64Mbの合計初期キャッシュサイズを与えます。
  • apc.stat(ファイルの状態)は1に設定されるべきで、そうでなければあなたは空白のページを得るかもしれません。
  • apc.max_file_size設定は10Mbに増やす必要があります。

APCを無効にするには、PHP.INIでapc.enabled = 0を一時的に設定し、Webサーバーを再起動します。

PHP.INIの作業中のAPCセクションを以下に示します。そのため、PHP.INIファイルの最後に次のコードをコピーして貼り付けます。

 [APC]
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64
apc.max_file_size = 10M
apc.stat = 1

残りの設定はデフォルトのままにしておくことができます。

一時ディレクトリを設定します。

APCはファイルを保存するために一時ディレクトリを必要とします。ファイルをWindowsの一時ディレクトリに保存しようとしますので、C:\ WINDOWS \ TEMPディレクトリをWebサーバーユーザーが書き込み可能に設定します(IISの場合はIUSR_machine-name、Apacheの場合はアクセス許可を変更する必要はありません)。例えば、少なくともRead&Executeパーミッション。

キャッシュの監視と調整

APCソースには、キャッシュのパフォーマンスを監視および調整するのに役立つphpスクリプトが含まれています。

  • APC監視ファイルをhttps://pecl.php.net/package/apcからダウンロードして内容を抽出します。
  • これはAPCモニタリング情報を表示するファイルであるため、ファイルapc.phpを探します。
  • ファイルapc.phpをサーバーの/ moodle / adminフォルダに保存します。

注:APCを正常にインストールしたら、セキュリティのためにこのファイルをパスワードで保護された領域に移動してください。

  • https://mymoodle.com/moodle/admin/apc.php (またはサーバー上のapc.phpファイルの場所が何であれ)にアクセスして、スクリプトが機能していることを確認します。左側にいくつかの統計データとともにあなたのキャッシュのグラフィック表示を見るべきです。

キャッシュを調整するには、 一般的なキャッシュ情報詳細なメモリ使用量と断片化のセクションを見てください。 「 キャッシュフルカウント」および「 フラグメンテーション%」の指標を確認してください。

  • Cache Full Count> 0の場合は、十分なメモリが割り当てられていないため、キャッシュがいっぱいになり、チャーンしていることを示します。この問題を解決するには、メモリー課題を増やします(apc.shm_size)。
  • フラグメンテーション%インジケーターは0%であるべきですが、特にキャッシュが大きくなっている場合は時々増加する可能性があります。

APC.phpセキュリティ

あなたはMoodleセキュリティを使用するようにAPCモニタリングスクリプトを設定することができます。次のコードを含む新しいディレクトリapc.conf.phpをadminディレクトリに作成します。これはapc.phpによって自動的にロードされます。

 <?php
// Moodleユーザ認証
require_once  "../config.php"  ;
require_once  $ CFG - > libdir  '/adminlib.php'  ;
require_login   ;
require_capability  'moodle / site:config'  get_context_instance  CONTEXT_SYSTEM  SITEID   ;

// APC認証を無効にする
デフォルト 'USE_AUTHENTICATION'  0  ;

 

パフォーマンスを確認する

パフォーマンスが向上したことを確認するために、以下を試してください。

  • PHP.INIでキャッシュを無効にしてWebサーバーを再起動します。
  • 次のようにコマンドプロンプトでab.exe(apache binフォルダに含まれています)を実行します。
 c:\ apache2 \ bin> ab.exe -n 50 -c 1 -d https://mymoodle.com/moodle/index.php
  • 転送速度と要求あたりの時間の値に注意してください。
  • PHP.INIでキャッシュを有効にしてWebサーバーを再起動します。
  • https://mymoodle.com/moodle/index.phpをブラウザにロードしてキャッシュに保存します。
  • もう一度ab.exeを実行して、要求ごとの転送速度と時間の値を比較します。これら両方の値が約50%増加するはずです。

APCのアンインストール

APCをアンインストールするには、次のようにPHP.INIの拡張子にセミコロンを追加します。

 ;拡張子= php_apc.dll

忘れずにWebサーバーを再起動してください。

関連情報