PDA

Bekijk de volledige versie : Ускорение работы PHP с помошью APC



elected
13-11-2009, 23:50
Многоуважаемый ALL Всем привет !
Недавно меня посетила идея развернуть сайт на движке CMS Joomla на моем wl500gpV1 для чего с помощью Danya0w было впаяно в него 128 MB RAM.
Из тестов выяснено что
CMS Joomla 1.5 нормально работает в связке php-fcgi+lighttpd+mysql.
После того как сайт был развернут (как опишу в другой теме)
выяснилось что медленный (разогнанный до 300Mhz) процессор роутера стал камнем преткновения и страницы грузились по 10 секунд, что конечно неплохой результат, но хотелось большего.
Было решено установить ускоритель APC. в репозитории его нет, берем отсюда http://www.iqlab.ru/downloads/apc.so.gz
инструкция
1. берем файл, распаковываем, кладем в /opt/lib/php/extensions
2. в php.ini добавляем


[APC]
extension=apc.so
apc.enabled=1
apc.shm_segments=1
apc.shm_size=128
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.max_file_size = 200M
apc.post_max_size = 200M
apc.upload_max_filesize = 200M
apc.enable_cli=1
apc.rfc1867=1

перегружаем, все готово

Странички стали грузиться за 3-4 секунды
сайт висит на www.iqlab.ru (http://www.iqlab.ru)

RuslanG
20-01-2010, 15:05
Натолкнулся на следующую проблему:

Для начала выключил арс в php.ini (apc.enabled=0):
[APC]
extension=apc.so
apc.enabled=0
apc.shm_segments=1
apc.shm_size=128
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/opt/var/run/apc.XXXXXX
apc.max_file_size = 200M
apc.post_max_size = 200M
apc.upload_max_filesize = 200M
apc.enable_cli=1
apc.rfc1867=1


все работает и phpinfo() показывает следующее (в аттаче)

Когда включаю apc (apc.enabled=1) получаю 500 - Internal Server Error.
При этом в логе lighttpd пишет
2010-01-20 15:55:19: (mod_fastcgi.c.1742) connect failed: Connection refused on unix:/opt/var/run/php-fcgi.sock-0.
2010-01-20 15:55:19: (mod_fastcgi.c.2943) backend died; we'll disable it for 5 seconds and send the request to another backend instead: reconnects: 0 load: 1.
2010-01-20 15:55:20: (mod_fastcgi.c.2481) unexpected end-of-file (perhaps the fastcgi process died): pid: 1302 socket: unix:/opt/var/run/php-fcgi.sock-0.
2010-01-20 15:55:20: (mod_fastcgi.c.3252) child exited, pid: 1302 status: 2.
2010-01-20 15:55:20: (mod_fastcgi.c.3299) response not received, request sent: 999 on socket: unix:/opt/var/run/php-fcgi.sock-0 for /php_info.php , closing connection.

:(

checat
20-01-2010, 18:15
(телепат mode on) стопудово память не перепаивали, а настройки APC под большую память, и PHP-fcgi просто не стартует

dimez
20-01-2010, 18:38
Жручая проц и память Джумла - не самый лучший выход для маломощной железки. Ставь нормальную CMS с нормальным кэшированием - это раз.
Два - apc.shm_size=128 устанавливает количество используемой памяти в 128 мегабайт. У тебя ВСЕГО 128 мегабайт оперативки. А ещё надо оставить системе, веб-серверу и самому, собственно, php.

elected
21-01-2010, 09:11
Жручая проц и память Джумла - не самый лучший выход для маломощной железки. Ставь нормальную CMS с нормальным кэшированием - это раз

Зачем этот флуд? Давайте не засорять тему.
Отвечу 1 раз для всех
1. Joomla довольно сносно работает на 128 мегабайтах на WL500GP.
2. Многим нужна именно CMS Joomla по разным причинам и именно Joomla.
3. То, что есть другие CMS легкие все знают, но дело в том, что легких CMS с огромным количеством шаблонов и компонентов нет.

RuslanG
21-01-2010, 16:19
Разобрался.
Проблема заключалась в правах к директории указанной в параметре apc.mmap_file_mask.
Для тех кто хочет наступить на мои грабли: при запуске lighttpd не из под рута (параметр в конфиге "server.username") проверяйте права на запись в эту директорию.
Для телепатов (mode on засчитан наполовину :) ) : таки да не перепаяно. Но это не мешает нормально запуститься (под нормальной нагрузкой не проверял, может и свалится) и с apc.shm_size=128 и с apc.shm_size=200 :)

macek
23-01-2010, 11:15
Спасибо, реально помогло!

Choice
30-03-2010, 14:54
Ни в какую не хочет работать, PHP без него работает нормально, но как только редактирую php.ini все встает.
Прошивка последняя от энтузиастов Asus WL-500Gp v2.
За ранее благодарен

valerakvb
30-03-2010, 17:16
Ни в какую не хочет работать, PHP без него работает нормально, но как только редактирую php.ini все встает.
Прошивка последняя от энтузиастов Asus WL-500Gp v2.
За ранее благодарен


ipkg install eaccelerator
sleep 2
mkdir -p /tmp/harddisk/eaccelerator
chmod 777 /tmp/harddisk/eaccelerator
wget http://www.studionr.ru/wl500/eaccelerator.ini -O /opt/etc/php.d/eaccelerator.ini

Choice
30-03-2010, 18:12
ipkg install eaccelerator
sleep 2
mkdir -p /tmp/harddisk/eaccelerator
chmod 777 /tmp/harddisk/eaccelerator
wget http://www.studionr.ru/wl500/eaccelerator.ini -O /opt/etc/php.d/eaccelerator.ini
Спасибо, но дело в том что он установлен уже, и речь идет о настройке, и вот не получается настроить.
Когда вписываю расширения в php.ini все перестает работать.
Сам он прописался в /opt/tmp/eaccelerator, и установил opt/etc/php.d/eaccelerator.ini
В итоге после запуска
/opt/sbin/lighttpd -f /opt/etc/lighttpd/lighttpd.
258 ? Z 0:01 \_ [php-fcgi] <defunct>

elected
11-10-2010, 00:33
Рад стараться на благо народа
Запустил эту конфигурацию на RT-N16
стало еще быстрее раза в 2