Добрый день!
Требуется помощь вселенского разума - бьюсь второй день никак не могу осознать до конца работу отдельных компонентов, чтоб заставить их вместе работать.
И так, исходные данные задачи:
- FreeBSD 8.2
- Apache 2.2 MPM prefork
- php 5.3.26
- apc 3.1.9
- nginx 1.0.4
Построена следующая конфигурация: nginx - раздаёт статику, apache - динамику. В apache добавлен модуль fastcgi. Теперь появилась необходимость запустить APC кэширование. Включил в php.ini в соответсвующей секции настройку. Увидел что кэш работает, но через 3-5 минут перезагружается. Погуглил и понял, что для каждого php-процесса APC создаёт свой отдельный кэш. Использовал параметр в php.ini - apc.mmap_file_mask для того php работал с одним файлом кэша (может не правильно понял назначение параметра). Всё равно перегружается, но на этот раз работает дольше (1-2 часа) и жрёт память.
Вычитал, что нужен менеджер php-процессов - php-fpm. Стал настраивать - не работает. Сокет открывается, но данные не идут. Позже, обнаружил, что сам mod_fastcgi может управлять процессами. На этом этапе окончательно запутался - каша в голове.
Помогите осознать схему работы этих компонентов и выбрать правильное решение.
Настройка кэширования php - APC opcode cache
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Настройка кэширования php - APC opcode cache
оцените, что хотите получить на выходе
нарисуйте на бумаге или в гимпе
снесите всё
на чистой системе реализуйте нарисованную схему
всё будет ок, против лома нет приёма
нарисуйте на бумаге или в гимпе
снесите всё
на чистой системе реализуйте нарисованную схему
всё будет ок, против лома нет приёма
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
- Strycker
- рядовой
- Сообщения: 20
- Зарегистрирован: 2010-04-27 9:36:37
Re: Настройка кэширования php - APC opcode cache
Спасибо за совет, но проблема в том, что у меня нет точного понимания структуры решения. Своё представление я постарался изобразить в схеме:vadim64 писал(а):оцените, что хотите получить на выходе
нарисуйте на бумаге или в гимпе

Основная проблема для меня здесь - это "вклинить" php-fpm в цепочку.
Если не сложно, посмотрите пожалуйста конфиг? Привожу рабочий вариант конфига Апача. Так у меня настроен модуль fastcgi
"httpd.conf"
Код: Выделить всё
<IfModule mod_fastcgi.c>
FastCgiConfig -singleThreshold 30 -minProcesses 2 -restart \
-idle-timeout 400 -killInterval 200 -autoUpdate \
-pass-header HTTP_AUTHORIZATION
FastCgiIpcDir /var/run/fastcgi
FastCgiWrapper /usr/local/sbin/suexec
Action application/x-httpd-fastphp /php-fcgi/php.sh
Action application/x-httpd-php /php-fcgi/php.sh
AddType application/x-httpd-fastphp .php
<Location /php-fcgi/>
Options ExecCGI FollowSymLinks
SetHandler fastcgi-script
</Location>
</IfModule>
<VirtualHost *:8888>
DocumentRoot "/usr/local/www/test/"
ServerAdmin webmaster@test.ru
ServerName www.test.ru
ServerAlias test.ru
Alias /php-fcgi/ "/usr/local/www/cgi-bin/"
ErrorLog "/var/log/sites/test.er-httpd.log"
CustomLog "/var/log/sites/test.ac-httpd.log" combined
<Directory "/usr/local/www/test/">
Options None
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
</VirtualHost>
Код: Выделить всё
#!/bin/sh
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
#PHP_FCGI_MAX_REQUESTS=5000
#export PHP_FCGI_MAX_REQUESTS
exec /usr/local/bin/php-cgi
Код: Выделить всё
listen = /tmp/php-fpm.sock
Код: Выделить всё
FastCGIExternalServer /usr/local/www/test/cgi-bin/php5.fcgi -socket /tmp/php-fpm.sock
- Strycker
- рядовой
- Сообщения: 20
- Зарегистрирован: 2010-04-27 9:36:37
Re: Настройка кэширования php - APC opcode cache
Разобрался. В файле httpd.conf
в каждом виртуал хосте
И всё заработало.
Код: Выделить всё
<IfModule mod_fastcgi.c>
FastCgiExternalServer /usr/local/www/cgi-bin/php5-fcgi -socket /tmp/php-fpm.sock -pass-header Authorization
</IfModule>
Код: Выделить всё
AddHandler php5fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/local/www/cgi-bin/php5-fcgi