AddThis Smart Layers

понедельник, 19 сентября 2011 г.

Оптимизация PHP для работы с Magento

На наших серверах мы всегда настраиваем PHP как FastCGI. При этом используется стандартный для Apache 2.2 модуль mod_fcgid.

Для маленьких сайтов в принципе можно ничего не оптимизировать, все и так будет работать на ура.
А вот для сайтов чуть посерьезнее имеет смысл поиграться с настройками.

Оптимизировать будем в двух местах - в файле php.ini и параметры модуля mod_fcgid в файле конфигурации Apache.



В cPanel нет необходимости править файлы конфигурации Apache. Вместо этого все делается через панель управления WHM
Service Configuration >> Apache Configuration >> Include Editor

Выбираем раздел Pre Main Include и в списке I wish to edit the Pre Main configuration include file for: All Versions

Там прописываем следующие директивы:
FcgidMaxRequestLen 20971520
FcgidIOTimeout 300
FcgidMaxRequestsPerProcess 5000
FcgidMaxProcesses 20
FcgidMinProcessesPerClass 0
FcgidIdleTimeout 20
FcgidIdleScanInterval 10
FcgidBusyTimeout 20
FcgidBusyScanInterval 10
FcgidErrorScanInterval 5
FcgidZombieScanInterval 5
FcgidProcessLifeTime 10

FcgidMaxRequestLen нужно прописать обязательно, иначе нелься будет через броузер загружать файлы, например картинки товаров, весом более 128кб.
FcgidIOTimeout тоже нужна в большинстве случаев при работе с Magento, так как по умолчанию таймаут установлен на 40 секундах. А такие операции как реиндексирование, очистка кешей и создание бекапа базы данных обычно занимают намного больше времени.

Все остальные директивы опциональны и ими нужно играться методом проб и сравнения. Так или иначе, стоит посмотреть на значение этих директив по умолчанию, чтобы понять, насколько они отличаются.

В файле php.ini тоже есть смысл немного поковыряться.
Например:
default_charset = UTF-8
memory_limit = 128M
post_max_size = 20M
upload_max_filesize = 20M
max_execution_time = 300
disable_functions = exec, passthru, system, proc_open, proc_get_status, proc_nice, proc_terminate, proc_close, curl_multi_exec, show_source, dl, shell, system_exec, virtual

Стоит обратить внимание на корреляцию между upload_max_filesize и FcgidMaxRequestLen, а также max_execution_time и FcgidIOTimeout.

Для начала этого достаточно. Далее можно будет посмотреть на настройки Apache и что там можно поправить.

Комментариев нет :

Отправить комментарий