FastNetMon

Показаны сообщения с ярлыком APC. Показать все сообщения
Показаны сообщения с ярлыком APC. Показать все сообщения

среда, 24 ноября 2010 г.

Как подружить APC и phpmyadmin (Debian 5 Lenny)?

При работе данных программ вместе наблюдается полная неработоспособность phpmyadmin, сопровождающаяся следующими ошибками в логе ошибок Апача:
[Wed Nov 24 10:34:59 2010] [notice] child pid 13706 exit signal Segmentation fault (11)
[Wed Nov 24 10:35:34 2010] [notice] child pid 13648 exit signal Segmentation fault (11)
[Wed Nov 24 10:35:42 2010] [notice] child pid 23979 exit signal Segmentation fault (11)
[Wed Nov 24 10:36:43 2010] [notice] child pid 15875 exit signal Segmentation fault (11)
[Wed Nov 24 10:37:13 2010] [notice] child pid 16171 exit signal Segmentation fault (11)
[Wed Nov 24 10:37:14 2010] [notice] child pid 17420 exit signal Segmentation fault (11)
[Wed Nov 24 10:37:16 2010] [notice] child pid 4038 exit signal Segmentation fault (11)
[Wed Nov 24 10:37:17 2010] [notice] child pid 17928 exit signal Segmentation fault (11)
[Wed Nov 24 10:37:41 2010] [notice] child pid 17977 exit signal Segmentation fault (11)
[Wed Nov 24 10:37:56 2010] [notice] child pid 17978 exit signal Segmentation fault (11)
[Wed Nov 24 10:40:06 2010] [notice] child pid 17957 exit signal Segmentation fault (11)
[Wed Nov 24 10:40:11 2010] [notice] child pid 19791 exit signal Segmentation fault (11)

Чтобы избавится от проблемы, нужно отключить APC для PhpMyAdmin, для этого открываем конфиг:
vi /etc/apache2/conf.d/phpmyadmin.conf

И внутри блока Directory добавляем:
php_admin_flag apc.enabled Off

После этого перезапускаем Апача:
/etc/init.d/apache2 restart

И наслаждаемся работоспособностью PhpMyAdmin`а :)

Источник: http://pecl.php.net/bugs/bug.php?id=16945&edit=1

суббота, 29 мая 2010 г.

Установка APC (Alternative PHP Cache) на Debian 5 Lenny

Офсайт проекта: http://pecl.php.net/package/APC

Установка APC из стабильного репозитория

APC в отличие от eAccelerator есть в в пакетном менеджере (версия 3.0.19-2 как раз стабильная из pecl):
apt-get install -y php-apc


После установки будет создан полу-пустой конфиг:
vi /etc/php5/conf.d/apc.ini


И мы получим стандартные настройки APC:

php -i | grep apc
/etc/php5/cli/conf.d/apc.ini,
apc
apc.cache_by_default => On => On
apc.coredump_unmap => Off => Off
apc.enable_cli => Off => Off
apc.enabled => On => On
apc.file_update_protection => 2 => 2
apc.filters => no value => no value
apc.gc_ttl => 3600 => 3600
apc.include_once_override => Off => Off
apc.max_file_size => 1M => 1M
apc.mmap_file_mask => no value => no value
apc.num_files_hint => 1000 => 1000
apc.report_autofilter => Off => Off
apc.rfc1867 => Off => Off
apc.rfc1867_freq => 0 => 0
apc.rfc1867_name => APC_UPLOAD_PROGRESS => APC_UPLOAD_PROGRESS
apc.rfc1867_prefix => upload_ => upload_
apc.shm_segments => 1 => 1
apc.shm_size => 30 => 30
apc.slam_defense => 0 => 0
apc.stat => On => On
apc.stat_ctime => Off => Off
apc.ttl => 0 => 0
apc.user_entries_hint => 4096 => 4096
apc.user_ttl => 0 => 0
apc.write_lock => On => On


И настройки компиляции:
APC Support enabled
Version 3.0.19
MMAP Support Enabled
MMAP File Mask no value
Locking type pthread mutex Locks
Revision $Revision: 3.154.2.5 $
Build Date Dec 17 2008 18:21:28


Тут стоит обратить внимание на apc.stat, он обязательно должен быть включен, иначе кэш не будет обновляться при обновлении файлов, а также на apc.shm_size, это размер shm сегмента в памяти.


Баги
При установке на Debian 5 + PHP FastCGI + IonCube + Zend Optimizer + APC получаем кучу мусора в dmesg:
[1218697.911671] php[28066]: segfault at e9 ip 00007fac6f561569 sp 00007ffff4066360 error 4 in ZendOptimizer.so[7fac6f4fe000+184000]


А в error.log апача:
[Sun May 30 21:32:36 2010] [notice] mod_fcgid: process /var/www/xxx/data/www/xxxx.ru/index.php(28238) exit(communication error), get unexpected signal 11


При этом сами сайты через раз выбрасывали 500ую и ругались на Cannot found function null (или что-то в этом роде).

Так что, нужно что-то с этим делать.

Установка из исходников

Будем ставить самую новую версию.

cd /usr/src
pecl download apc-3.1.3p1
tar -xf APC-3.1.3p1.tgz
cd APC-3.1.3p1
phpize
./configure # все стандартно
make
make install


Создаем конфиг:
echo "extension=apc.so" > /etc/php5/conf.d/apc.ini


Результат: тот же самый баг. Мораль - PHP FastCGI + APC + ZendOptimizer 3.3.9 несовместимы. Вот еще багрепорт.

Некоторые фичи на тему APC + PHP FastCGI + SHM память + расшаривание одного кэша между всеми процессами. APC это не умеет, вот фич риквест: http://pecl.php.net/bugs/bug.php?id=11988

Источник: http://www.debian-administration.org/articles/574

вторник, 4 мая 2010 г.

Суперскоростное хранилище для PHP

Недавно узнал, что у акселератора APC (кэшера опкода) есть возможность хранения данных на время жизни процесса. Крайне удобно, я считаю :)