Может ли кто-нибудь сказать мне, почему использование pcntl lib на производственных серверах не рекомендуется? В руководстве PHP очень кратко говорится об этом, и мне крайне необходимо использовать эту библиотеку … Есть ли другой способ сделать то же самое в php?
pcntl не рекомендуется в производственных средах, потому что функциональность, которую он поддерживает (fork, управление процессом, обработка сигналов), довольно явно несовместимы с тем, что вы не должны использовать в приложении стиля CGI. Теперь, если вы пишете приложение демона или командной строки в PHP, это другое дело …
Из руководства по PHP :
Управление технологическим процессом не должно быть включено в среде веб-сервера, и могут произойти непредвиденные результаты, если в среде веб-сервера используются любые функции управления процессом.
нужно четко понимать различия сценария php cli и скрипта sapi / cgi. php на производственных системах может также поддерживать pcntl.
здесь важно иметь 2 файла конфигурации php. один для cli и один для настройки cgi. один из них должен отключить pctnl в настройке cgi, потому что реальная проблема безопасности заключается в том, что разворачивание скрипта при его выполнении веб-сервером может привести к тому, что процессы зомби будут затопляться системой.
в среде cli может потребоваться написать сценарии, которые fork …