PHP + APC: Wie zum Zwischenspeichern von Daten bis zu 128M?
Habe ich big-data-Portionen cache in APC (normale Datei-caching ist zu langsam). apc_store
Funktion immer wieder false
für diese Menge an Daten:
Habe ich versucht, so etwas zu tun:
ini_set('apc.max_file_size', '128M');
die(ini_get('apc.max_file_size'));
Und der Ausgang ist 1M
! Es nicht werfen nicht alle Fehler, aber es funktioniert einfach nicht. Alle anderen ini_sets ich haben (zB. memory_limit
) gut arbeiten, es ist also kein Berechtigungen-Problem.
Meiner APC-info:
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
und Einstellungen sind:
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
Was muss ich einstellen, damit Zwischenspeichern solche big-data-Tränke?
var_dump
den Ausgang der init_set
. Wenn es falsch ist, Sie kann nicht eingestellt haben das Recht zu erlauben, Ihr Skript und ändern Sie die Einstellungen von PHP.ja, das ist richtig! Ausgabe von
var_dump(ini_set('memory_limit', '1024M'));
ist 1024M
, aber die Ausgabe von var_dump(ini_set('apc.max_file_size', '128M'));
ist bool(false)
:/
InformationsquelleAutor Karol | 2012-07-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgende @Ugo Meda Kommentar, ich möchte mit Ihnen teilen meine Lösung für dieses problem. Wie er richtig darauf hingewiesen, dass, ich konnte nicht festgelegt APC-Einstellungen (zB.
apc.max_file_size
) überini_set
. Es gibt einfachfalse
während andere Einstellungen (zB.memory_limit
) gut funktionieren!Also das einzige was ich tun konnte, war, um es direkt bei apc.ini. Den Speicherort dieser Datei zu Ubuntu:
Manchmal Ihre APC-Einstellungen in php.ini in [APC] - Abschnitt- Speicherort dieser Datei auf Ubuntu ist:
Wenn Sie es nicht finden können, führen Sie einfach diesen Befehl:
Wenn es keine solche Datei (apc.ini) versuchen Sie, sich für php.ini und [APC] Abschnitt:
Sobald Sie die richtige Konfiguration-Datei, die Sie bereit sind, Bearbeiten Sie die Optionen. Ich habe einfach noch diese zwei Zeilen gibt:
Nach dem Bearbeiten, speichern und einfach starten Sie Ihren Apache (Ubuntu -
/etc/init.d/apache2 restart
). Wenn aus irgendeinem Grund können Sie nicht ausführen diesen Befehl, oder Sie keine Berechtigung haben, erwähnt zu werden *.ini-Dateien, fügen Sie dann sudo-Befehl auf den Anfang von jedem Befehl vor.Eine Anmerkung mehr über apc.shm_size:
Wenn die version von Ihrem APC ist niedriger als 3.1.4, dann Wert in dieser config-option geschrieben werden müssen in dem gleichen format, wie ich schrieb (kein '
M
' am Ende). Wenn deine version 3.1.4 oder höher, dann müssen Sie es auf diese Weise:512M
.Quelle: http://e-mats.org/2010/10/apc_mmap-mmap-failed-cannot-allocate-memory/
@Ugo Meda - nochmals vielen Dank für den Hinweis zu mir!
InformationsquelleAutor Karol