Почему глючит php apc?

Привет.

Перестали загружаться изображения в phpMyAdmin. Firebug показал 502 ошибку для всей статики. В логах апача вот такие ошибки:
[Fri May 02 20:54:29 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri May 02 20:54:29 2014] [notice] Digest: generating secret for digest authentication ...
[Fri May 02 20:54:29 2014] [notice] Digest: done
[Fri May 02 20:54:29 2014] [notice] Apache/2.2.27 (Unix) DAV/2 PHP/5.4.27 configured -- resuming normal operations
[Fri May 02 20:55:34 2014] [error] child died with signal 11
[Fri May 02 20:57:45 2014] [notice] caught SIGTERM, shutting down

В интернете вычитал, что может глючить php-apc. Отключил и, вуаля, все работает.
Конфиг APC:
; Enable apc extension module
; extension = apc.so

; Options for the APC module version >= 3.1.3
; See http://www.php.net/manual/en/apc.configuration.php

; This can be set to 0 to disable APC. 
apc.enabled=1
; The number of shared memory segments to allocate for the compiler cache. 
apc.shm_segments=1
; The size of each shared memory segment with M/G suffix.
apc.shm_size=64M
; A "hint" about the number of distinct source files that will be included or 
; requested on your web server. Set to zero or omit if you're not sure;
apc.num_files_hint=1024
; Just like num_files_hint, a "hint" about the number of distinct user cache
; variables to store.  Set to zero or omit if you're not sure;
apc.user_entries_hint=4096
; The number of seconds a cache entry is allowed to idle in a slot in case this
; cache entry slot is needed by another entry.
apc.ttl=7200
; use the SAPI request start time for TTL
apc.use_request_time=1
; The number of seconds a user cache entry is allowed to idle in a slot in case
; this cache entry slot is needed by another entry.
apc.user_ttl=7200
; The number of seconds that a cache entry may remain on the garbage-collection list. 
apc.gc_ttl=3600
; On by default, but can be set to off and used in conjunction with positive
; apc.filters so that files are only cached if matched by a positive filter.
apc.cache_by_default=1
; A comma-separated list of POSIX extended regular expressions.
apc.filters
; The mktemp-style file_mask to pass to the mmap module 
apc.mmap_file_mask=/tmp/apc.XXXXXX
; This file_update_protection setting puts a delay on caching brand new files.
apc.file_update_protection=2
; Setting this enables APC for the CLI version of PHP (Mostly for testing and debugging).
apc.enable_cli=0
; Prevents large files from being cached
apc.max_file_size=1M
; Whether to stat the main script file and the fullpath includes.
apc.stat=1
; Vertification with ctime will avoid problems caused by programs such as svn or rsync by making 
; sure inodes havn't changed since the last stat. APC will normally only check mtime.
apc.stat_ctime=0
; Whether to canonicalize paths in stat=0 mode or fall back to stat behaviour
apc.canonicalize=0
; With write_lock enabled, only one process at a time will try to compile an 
; uncached script while the other processes will run uncached
apc.write_lock=1
; Logs any scripts that were automatically excluded from being cached due to early/late binding issues.
apc.report_autofilter=0
; RFC1867 File Upload Progress hook handler
apc.rfc1867=0
apc.rfc1867_prefix =upload_
apc.rfc1867_name=APC_UPLOAD_PROGRESS
apc.rfc1867_freq=0
apc.rfc1867_ttl=3600
; Optimize include_once and require_once calls and avoid the expensive system calls used.
apc.include_once_override=0
apc.lazy_classes=00
apc.lazy_functions=0
; Enables APC handling of signals, such as SIGSEGV, that write core files when signaled. 
; APC will attempt to unmap the shared memory segment in order to exclude it from the core file
apc.coredump_unmap=0
; Records a md5 hash of files.
apc.file_md5=0
; not documented
apc.preload_path

VDS от DigitalOcean, тариф за 10 баксов (1 Гб, 1 ядро).
Фронтенд + статика — nginx, бекэнд — apache.

P.S. Кстати говоря, такие проблемы только с PMA (все сайты работают нормально, в логах тоже все ок).
  • Вопрос задан
  • 3266 просмотров
Решения вопроса 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
PHPMyAdmin не нужен. SSH, mysqldump и консольный клиент для mysql - больше ничего не нужно.

Apache туда же. nginx+php-fpm покрывает 99% случаев.

Если серьезно - то это проблема не APC, а скорее связки nginx+apache+mod_php. У вас неправильно настроен nginx под PMA, он проксирует статику на apache, с чем и связаны эти проблемы.
Ответ написан
@m-haritonov
Насколько я знаю, разработка APC прекращена и версии APC под PHP 5.4 являются beta. В качестве решение, думаю, лучше использовать альтернативный акселератор. Например, opcache, который поставляется вместе с PHP начиная с версии 5.5.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы