PHPНастройка

FPM използва синтаксиса php.ini за своя конфигурационен файл php-fpm.conf и конфигурационните файлове на пула.

Списък с глобални директиви php-fpm.conf

Път до PID файла. По подразбиране: няма.

Път до регистрационния файл за грешки. По подразбиране: #INSTALL_PREFIX#/log/php-fpm.log. Ако е зададено на "syslog", регистрирането ще се извършва в syslogd, а не в локален файл.

Ниво на регистриране на грешки. Възможни стойности: предупреждение, грешка, предупреждение, забележка, отстраняване на грешки. По подразбиране: бележка.

Ограничете регистрирането за регистрирани редове, позволявайки съобщения, по-дълги от 1024 знака, да бъдат регистрирани без обвиване. Стойност по подразбиране: 1024. Предлага се от PHP 7.3.0.

Експериментално регистриране без допълнително буфериране. Стойност по подразбиране: да. Предлага се от PHP 7.3.0.

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

Предхожда всяко съобщение. Ако имате няколко работещи екземпляра на FPM, можете да промените настройката по подразбиране на каквото ви е необходимо. По подразбиране: php-fpm.

Предвид броя на работните процеси, прекратени със SIGSEGV или SIGBUS в интервала от време, зададен от аварийен_рестарт_интервал, FPM ще бъде рестартиран. Стойност 0 означава „Изключено“. По подразбиране: 0 (Изкл.).

Интервалът от време, използван от Emergency_restart_interval за определяне кога FPM ще бъде плавно рестартиран. Това е полезно за избягване на случайна повреда на споделената памет на ускорителя. Налични единици: s (секунди), m (минути), h (часове) или d (дни). Единица по подразбиране: секунди. Стойност по подразбиране: 0 (Изкл.).

Времето, през което дъщерните процеси чакат отговор на сигнали към главния процес. Налични бройкиизмервания: s(секунди), m(минути), h(часове) или d(дни). Единица по подразбиране: секунди. Стойност по подразбиране: 0.

Максималният брой процеси, които FPM може да създаде. Това е за контролиране на глобалния брой процеси, когато се използва голям динамичен PM пул. Използвайте с повишено внимание. По подразбиране: 0.

Указва приоритета (Unix nice(2)) на главния процес (само ако е зададен). Приема стойности от -19 (максимален приоритет) до 20 (минимум.) По подразбиране: не е зададено.

Стартирайте FPM във фонов режим. Задайте „не“, за да стартирате FPM в диспечера за отстраняване на грешки. По подразбиране: да.

Задава rlimit на отворени файлови дескриптори за главния процес. По подразбиране: Задава rlimit за отворения файлов дескриптор на главния процес(?).

Задава rlimit за максималния размер на ядрото за главния процес. По подразбиране е 0.

Указва кой механизъм за събития ще използва FPM. Възможни са следните опции: select, pool, epoll, kqueue (*BSD), port (Solaris). По подразбиране: не е зададено (автоматично откриване).

Ако FPM е изграден с интеграция на systemd, указва интервала в секунди между уведомяването на systemd за състоянието му. За да деактивирате, задайте 0. По подразбиране: 10.

Списък с директиви за басейни.

С FPM можете да изпълнявате множество групи процеси с различни настройки. Тези параметри могат да бъдат предадени на пула.

Адресът, който ще приема FastCGI заявки. Синтаксис: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Тази опция е задължителна за всеки басейн.

Задава назад слушане(2). Стойността „-1“ означава неограничен. Стойност по подразбиране: -1.

Задава разрешения за unix сокета, ако има такива.В Linux, за да разрешите връзки към уеб сървъра, трябва да бъдат зададени разрешения за четене/запис. В много системи, базирани на BSD, свързаността не зависи от разрешенията. Стойност по подразбиране: Използват се потребителят и групата, под които работи сървърът, режимът е зададен на 0660.

Ако се поддържа POSIX списък за контрол на достъпа (ACL), можете да го конфигурирате с тази опция. Ако е зададено, тогава listen.owner и listen.group ще бъдат игнорирани. Стойността е посочена като списък с имена, разделени със запетаи. Предлага се от PHP 5.6.5.

Вижте listen.acl_users. Стойността е посочена като списък с имена на групи, разделени със запетая. Предлага се от PHP 5.6.5.

Unix потребител на FPM процеси. Този параметър е задължителен.

Unix група от FPM процеси. Ако не е зададено, групата по подразбиране е потребителското име.

Изборът как мениджърът на процеси ще контролира създаването на дъщерни процеси. Възможни стойности: статични, при поискване, динамични. Този параметър е задължителен.

static - фиксиран брой дъщерни процеси (pm.max_children).

ondemand - брой процеси, създадени при поискване (когато има заявки, за разлика от динамичната опция, когато определен брой процеси, равни на pm.start_servers, се стартират заедно със стартирането на услугата.

динамичен - динамично променящ се брой дъщерни процеси, зададен въз основа на следните директиви: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.

Броят дъщерни процеси, които ще бъдат създадени, когато pm е настроен на статичен, или максималният брой процеси, които ще бъдат създадени, когато pm е настроен на динамичен. Този параметър е задължителен.

Тази опция задава ограничение за броя едновременниискания за обслужване. Еквивалентът на директивата ApacheMaxClients с mpm_prefork и променливата на средата PHP_FCGI_CHILDREN в оригиналния PHP FastCGI.

Броят дъщерни процеси, създадени при стартиране. Използва се само когато pm е настроен на динамичен. Стойност по подразбиране: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.

Желаният минимален брой неактивни сървърни процеси. Използва се само когато pm е настроен на динамичен. Освен това в този случай това е задължителен параметър.

Желаният максимален брой неактивни сървърни процеси. Използва се само когато pm е настроен на динамичен. Освен това в този случай това е задължителен параметър.

Броят секунди, след които неактивният процес ще бъде прекратен. Използва се само ако pm е зададено на ondemand. Валидни мерни единици: s(секунди) (по подразбиране), m(минути), h(наши) или d(ays). По подразбиране: 10s.

Броят заявки за дъщерен процес, след които процесът ще бъде рестартиран. Това е полезно за избягване на изтичане на памет при използване на библиотеки на трети страни. Посочете '0' за безкрайна обработка на заявки. Еквивалентно на PHP_FCGI_MAX_REQUESTS. Стойност по подразбиране: 0.

Връзка за преглед на страницата за състояние на FPM. Ако стойността не е зададена, страницата със състоянието няма да се покаже. Стойност по подразбиране: няма.

Връзка към страницата за пинг за наблюдение на FPM. Ако стойността не е зададена, страницата за ping няма да се покаже. Може да се използва за външно тестване, за да се уверите, че FPM е жив и отзивчив. Имайте предвид, че стойността трябва да започва с наклонена черта (/).

Тази директива може да се използва за персонализиране на отговора на ping заявка. Отговорът се формира като текст/обикновен с код на отговора 200. Значениепо подразбиране: понг.

Задава приоритета nice(2) за изпълнявания процес (само ако е зададен). Стойност от -19 (най-висок приоритет) до 20 (най-нисък). Стойност по подразбиране: не е зададена.

Задайте флага на процеса за дъмпинг (PR_SET_DUMPABLE prctl), дори ако потребителят или групата на процеса е различен от потребителя на главния процес. Това ви позволява да създадете дъмп на ядрото на процеса и да проследите процеса за потребителя на пула. Стойност по подразбиране: не. Предлага се от PHP 7.0.29, 7.1.17 и 7.2.5.

Указва префикс за оценка на пътя

Време за изчакване за обслужване на една заявка, след което работният процес ще приключи. Тази опция трябва да се използва, когато опцията 'max_execution_time' в php.ini не спира изпълнението на скрипта по някаква причина. Стойността „0“ означава „изключено“. Налични мерни единици: s (секунди), m (минути), h (наши) или d (дни). Стойност по подразбиране: 0.

Изчакване за обслужване на една заявка, след което PHP backtrace ще бъде записан във файла 'slowlog'. Стойността „0“ означава „изключено“. Налични мерни единици: s (секунди), m (минути), h (наши) или d (дни). Стойност по подразбиране: 0.

Лог файл за бавни заявки. Стойност по подразбиране: #INSTALL_PREFIX#/log/php-fpm.log.slow.

Задава ограничението rlimit за дескриптор на отворен файл за дъщерни процеси в този пул. Стойност по подразбиране: определя се от системната стойност.

Задава максималния брой ядра за използване на rlimit за дъщерни процеси в този пул. Възможни стойности: „неограничено“ или цяло число, по-голямо или равно на 0. Стойност по подразбиране: определена от системната стойност.

Директорията на chroot среда при стартиране. Тази стойност трябва да бъде посочена като абсолютен път. Ако стойността не е зададена, chroot не се използва.

Chdir променя текущата директория при стартиране. Тази стойност трябва да бъде посочена като абсолютен път. Стойност по подразбиране: текуща директория или / при използване на chroot.

Пренасочване на работния поток STDOUT и STDERR към главния регистър на грешките. Ако не е зададено, STDOUT и STDERR ще бъдат пренасочени към /dev/null според спецификацията на FastCGI. Стойност по подразбиране: не.

Активиране на декорация на изхода за изход на работник, когато опцията catch_workers_output е активирана. Стойност по подразбиране: да. Предлага се от PHP 7.3.0.

Изчиства средата в работниците на FPM. Предотвратява навлизането на произволни променливи на средата във FPM работници, като изчиства работната среда, преди да бъдат добавени променливите на средата, посочени в тази конфигурация на пула. Предлага се от PHP 5.4.27, 5.5.11 и 5.6.0. По подразбиране: Да.

Ограничава разширенията, които FPM ще анализира. Това може да предотврати грешки в конфигурацията от страна на уеб сървъра. Трябва да ограничите FPM само до .php разширения, за да попречите на нападателите да изпълняват PHP код с други разширения. По подразбиране: .php .phar

Регистрационен файл за достъп. Стойност по подразбиране: не е зададена

Формат на регистрационния файл на Access. Стойност по подразбиране: "%R - %u %t \"%m %r\" %s"

Възможно е да подадете допълнителни променливи на средата и да актуализирате PHP настройките за конкретен пул. За да направите това, трябва да добавите следните параметри към конфигурационния файл на пула.

Пример #1 Предаване на променливи на средата и PHP настройки към пул

Настройките, дефинирани чрез php_admin_value и php_admin_flag, не могат да бъдат презаписани чрез ini_set().

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