4

APC にキャッシュする大きなデータ部分があります (通常のファイル キャッシュは遅すぎます)。apc_store関数は常にfalseこの量のデータを返します。

私はこのようなことをしようとしました:

ini_set('apc.max_file_size', '128M');
die(ini_get('apc.max_file_size'));

そして出力は1M!エラーは発生しませんが、単に機能しません。私が持っている他のすべての ini_sets (例memory_limit) は正常に機能しているため、権限の問題ではありません。

私のAPC情報は次のとおりです。

Version 3.1.3p1
MMAP Support Enabled
MMAP File Mask no value
Locking type pthread mutex Locks
Revision $Revision: 286798 $
Build Date Apr 18 2010 06:56:17

設定は次のとおりです。

apc.cache_by_default On
apc.canonicalize On
apc.coredump_unmap Off
apc.enable_cli Off
apc.enabled On
apc.file_md5 Off
apc.file_update_protection 2
apc.filters no value
apc.gc_ttl 3600
apc.include_once_override Off
apc.lazy_classes Off
apc.lazy_functions Off
apc.max_file_size 1M
apc.mmap_file_mask no value
apc.num_files_hint 1000
apc.preload_path no value
apc.report_autofilter Off
apc.rfc1867 Off
apc.rfc1867_freq 0
apc.rfc1867_name APC_UPLOAD_PROGRESS
apc.rfc1867_prefix upload_
apc.rfc1867_ttl 3600
apc.shm_segments 1
apc.shm_size 128
apc.stat On
apc.stat_ctime Off
apc.ttl 0
apc.use_request_time On
apc.user_entries_hint 4096
apc.user_ttl 0
apc.write_lock On

このようなビッグデータポーションをキャッシュできるようにするには、何を設定すればよいですか?

4

1 に答える 1

3

@Ugo Meda のコメントに従って、この問題の解決策を共有したいと思います。apc.max_file_size彼が正しく指摘したように、ini_set. false他の設定(つまりmemory_limit)がうまく機能している間は、単に戻ります!

そのため、apc.ini で直接設定するしかありませんでした。Ubuntu でのこのファイルの場所は次のとおりです。

/etc/php5/conf.d/apc.ini

APC 設定が [APC] セクションの php.ini にある場合があります。Ubuntu でのこのファイルの場所は次のとおりです。

/etc/php5/apache2/php.ini

見つからない場合は、次のコマンドを実行してください。

find / -name apc.ini

そのようなファイル (apc.ini) がない場合は、php.ini と [APC] セクションを探してみてください。

find / -name php.ini

正しい構成ファイルが見つかったら、そのオプションを編集する準備が整います。そこに次の 2 行を追加しただけです。

apc.shm_size=512

apc.max_file_size=128M

編集後、保存して Apache (Ubuntu - /etc/init.d/apache2 restart) を再起動するだけです。何らかの理由でこのコマンドを実行できない場合、または上記の *.ini ファイルへのアクセス許可がない場合は、上記の各コマンドの先頭に sudo コマンドを追加してください。

apc.shm_size に関するもう 1 つの注意事項:

APC のバージョンが 3.1.4 より前の場合、この構成オプションの値は、私が書いたのと同じ形式で記述する必要があります (M最後に ' ' はありません)。バージョンが 3.1.4 以降の場合は、次のように指定する必要があります512M

ソース: http://e-mats.org/2010/10/apc_mmap-mmap-failed-cannot-allocate-memory/

@Ugo Meda's - これを指摘してくれてありがとう!

于 2012-07-13T04:38:19.663 に答える