ПредишенСледващото

В Debian Уизи PHP-FPM присъства в основната хранилището. Това означава, че вече не трябва да се използва от трети страни хранилища, като DotDeb, за създаване и използване на тази прекрасна единица.

Както във всеки друг случай, първата стъпка е да инсталирате необходимите пакети. Що се отнася до допълнителните модули, избор до голяма степен зависи на техническите изисквания на сайта. В този пример, ние ще си е поставил PHP-FPM модул или модули за използване с MySQL, изображения (GD библиотека), се навива, което се изисква за много CMS.

Конфигурационни файлове се намират в директорията / и т.н. / PHP5 / FPM /.

Php-FPM първоначално доставен с един басейн WWW примерен работа. Можете да редактирате конфигурационния файл на басейна за себе си, или да се създаде нов басейн, въз основа на съществуващата конфигурация.

Да отворим /etc/php5/fpm/pool.d/www.conf конфигурационния файл. Ние разглеждаме някои от променливите и ще изберете стойност за тях.

Първият в променлива - името обхват. Името е заграден в квадратни скоби.

Ако е необходимо да се създаде нова басейн, можете да създадете папка в файл /etc/php5/fpm/pool.d/, poolname.conf, и го въведете в името на басейн в квадратни скоби: [poolname]. Името на файла не може да съответства на името на басейн. Това се прави само за удобство. 🙂

Следва да се има предвид, че името на басейн не може да съвпада с името на потребителя - собственик на сайта или всеки друг потребител, който съществува в системата.

На следващо място, от следните променливи:

потребител = WWW-данни
група = WWW-данни

Стойността на тези променливи и потребителят определя група, от чието име ще работи басейн. Тук, задаване на потребителско име и групата, която е собственик на файла на вашия сайт. Това означава, че потребителят в чийто дом директория се съхраняват в сайта си.

Това ще реши проблема с достъпа до файловете на сайта. Не е нужно да се притеснявате, стои всеки път правото да пише на всеки сайт папка на уеб сървъра, и така нататък.

Ние си запазваме UNIX-гнездо. $ Променлива ще бъде заменен от името на басейн басейн.

listen.owner = WWW-данни
listen.group = WWW-данни

Също така не изисква модификация. Указания потребител и група, които са собственици на UNIX-гнездо FPM при стартиране. Необходимо е, че уеб сървърът има право да чете от контакта. Ако промените стойностите на тези променливи върху нещо друго, потребителят на WWW данни, ще трябва да добавите към групата и собственика на контакт, за да изложи правото да прочетете група гнездо.

От друга страна, правото на контакт зададете променлива listen.mode. Не се препоръчва да се сложи на правата на 0666 от съображения за сигурност.

ч = статична. При стартиране на FPM създаде определено количество процес басейн, който предлага всички входящи заявки. Има и други варианти за контрол на процеси-: динамичен и onedemand.

pm.max_children - брой на установените процеси. Необходимо е да се изчисли колко памет на един процес, а след това се разделят на количеството памет, което искате да се разпределят на php5-FPM, в размер на процесора, се броят на pm.max_children (narimer 1000MB / 50MB = 20)

Защо този избор? 🙂 Това е най-икономичен вариант. басейн, всеки процес ще заема в размер на RAM, разпределена за променлив memory_limit плюс няколко мегабайта, свързани модули и т.н. Ако статичното вариант, всички заявки ще бъдат обработвани само за да се създаде процес и нови такива, генерирани от (и заемат ценно памет) няма. В резултат на това, ние получаваме определено потребление на паметта.

Вариант onedemand. за субективни причини, тя не е подходяща, защото всеки път, създаване на дете процеси при получаване на искания ще отнеме известно време. Това се отрази на работните площадки.

pm.min_spare_servers = Този параметър започват с броя на ядра се умножава по 2 (Пример 1 сърцевина = 2 * 2)
pm.max_spare_servers = Този параметър е броят на ядра * 1 (Пример 1 * 4 = 4)
pm.start_servers = Този параметър се изчислява по формулата (pm.min_spare_servers + pm.max_spare_servers) / 2 (пример (2 + 4) / 2 = 4)
Обща продукция получаваме около 1 конфигурация за процесор 1GB памет (разпределени само при PHP5-FPM, може да се наложи да се общо 2GB)
pm.max_children = 20
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 4

pm.max_requests - броят на обработени заявки, след което процесите на PHP-FPM ще бъдат презаредени. Избягването на памет течове при използване на библиотеки на трети страни. 1000-3000 заявки в зависимост от обема на работата и количеството памет на сървъра.

При проектиране уеб сайтове могат да бъдат полезни много бавно дневник заявка за оптимизиране на скриптове. Редактиране на променлива slowlog. посочва пълния път до дневника.

Определете кои заявки разглежда като бавна, променлива помощ request_slowlog_timeout. Тук е необходимо да се уточни времето, след което бавно информация заявка ще бъде записано в лог файл. Например:

Последната стъпка в създаването на PHP-FPM е да инсталирате някои допълнителни настройки на php.ini, които са регистрирани директно в басейна на конфигурационен файл.

Директория за временните файлове:

Директория за съхранение на файлове сесия:

От съображения за сигурност, достъп до тези директории трябва да има само правата на потребителите, която тече PHP-FPM басейн. Също така, не се използва една и съща директория за съхранение на сесията файлове и временни файлове.

Ограничаване на памет, за да стартирате скриптове трябва да се избира въз основа на изискванията на сайта. За да започнете:

Задължителен параметър, който се справя уязвимостта:

Променливи sendmail_path и open_basedir които не са посочени изрично. Те ще бъдат посочени като бързо CGI параметри в Nginx конфигурационния файл. По този начин, можете да определите вашите настройки за всеки обект. 🙂

След всички необходими параметри са регистрирани, трябва да рестартирате PHP-FPM конфигурация команда:

PHP скрипт за обработка от Nginx

Остава да изберете Nginx да работи с PHP-FPM. Config не представлява някаква много сложна структура.

Нека да разгледаме някои опции в детайли.

try_files $ URI = 404; показване 404 до браузъра на потребителя, вместо на съобщението не е посочено входен файл. когато грешката се случи.

fastcgi_pass - път към гнездо PHP-FPM. Не забравяйте, че това, което името му дадохме в довереник? /run/php-$pool.sock. Едва сега Nginx не разбира FPM променливи, следователно, укажете пътя, тъй като е: /run/php-www.sock. 🙂

Изброяват директории за open_basedir: указател на обекта, директория за запаметяване на временни файлове, директория за сесийни файлове.

Ако трябва да подадете няколко параметри, за да направите това трябва да е така:

Както може да се види, параметрите са разделени с помощта на транспортни линии: п.

Запазване на всички промени направени и рестартирайте Nginx.

Просто да персонализирате PHP-FPM, за да се рестартира автоматично, ако има проблеми. В този пример, да се рестартира, ще бъде направено, ако десет деца умират процеси в рамките на 1 минута, а ние очакваме 10 секунди, преди да рестартирате.

Това е глобална конфигурация и принадлежи /etc/php5/fpm/php-fpm.conf:

  • Създаване xCache
  • [Urlspan] Състави за Nginx PHP-FPM [/ urlspan]

Свързани статии

Подкрепете проекта - споделете линка, благодаря!