Для нормальной работы сайта необходимо разрешить JavaScript, включая скрипты с доменов googlesyndication.com и doubleclick.net для отображения системы поиска по сайту и прочих сервисов Google.

Apache FastCGI и PHP_FCGI_CHILDREN

apache-logo Какое должно быть значение PHP_FCGI_CHILDREN при использовании PHP ака FastCGI. "PHP child process management" при использовании PHP ака FastCGI должно быть включено или отключено.

ЛикБез по FastCGI и PHP_FCGI_CHILDREN

Мир всем Вам братья и сестры мои! Смотришь вокруг и просто ё.у диву даёшься как шиза день за днём под корень косит "наши ряды".

  • Европа - это сброд гомосеков/лесбиянок и наркоманов;
  • Украину заполонили фашисты-гомосеки из гейевропы;
  • При использовании РНР ака FastCGI установка PHP_FCGI_CHILDREN выше ноля "решает" проблемы производительности и управляет максимальным числом процессов, а не чилдов.

Что творится, что творится, - ай-яй-яй, ай-яй-я-яй (https://www.youtube.com/watch?v=4-wtJuqyKko), люби друзи, как же нам жить дальше?! :)

http://curl.sim-networks.net/interesting/fastcgi-%D0%B8-php_fcgi_children

Так вот стокнулся с проблемой когда некоторые сайты у клиентов переставали работать. Анализ логов показывал что при первом обращении к виртуалхосту происходит инициализация php-cgi процесса, и вот в этом моменте он крешился и не запускался. В логах ругалось что процесс повторно перезапущен и так по кругу.


Ответ как оказалось был прост. В скрипте инициалцизации fastcgi процесса параметр PHP_FCGI_CHILDREN у меня стоял где 1, а где 2. А как оказалось значение должно быть равно количеству виртуалхостов клиента.

К примеру у клиента 5 сайтов, соответсвенно 5 виртуалхостов и 5 вызовов скрипта. Количество процессо будет 5 и параметр PHP_FCGI_CHILDREN надо задавать не меньше 5.

Вот такие дела. Поправил всё, уже работает неделю, и пока всё отлично, без сбоев.

Хотел было поправить "афтора" сего бреда комментарием, да запретил он "анонам" комментарии вставлять и предлагает всем регатца, чего нам как раз и не хватало, - будем значит отдельным постом бить по безграмотности.

Бить значит будем не пустым звуком, а голыми фактами, которые мы тупо спи.дим скопипастим с оф. сайта "Apache HTTP Server", - итак:

mod_fcgid - Apache HTTP Server Version 2.5 http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html

PHP child process management (PHP_FCGI_CHILDREN) should always be disabled with mod_fcgid, which will only route one request at a time to application processes it has spawned; thus, any child processes created by PHP will not be used effectively. (Additionally, the PHP child processes may not be terminated properly.) By default, and with the environment variable setting PHP_FCGI_CHILDREN=0, PHP child process management is disabled.

Кто настолько туп, глуп и развратен, что знаком с "вражеским" языком "извращённой", погрязшей в коррупции и тотолитаризме, Европы, тот сразу поймёт о чём выше идёт речь, а для особо одарённых ниже представлен перевод на "великий и могучий":

PHP не должен управлять дочерними (детями/чилдами) процессами при использовании с mod_fcgid, имхо порождённый (т.е. родитель) процесс обрабатывает только один запрос в единицу времени; поэтому, все дочерние процессы (чилды), которые создаст PHP не будут эффективно использоваться. (Более того, дочерние процессы PHP не смогут быть прекращены/убиты надлежащим образом, т.е. зависнут навсегда пожирая РАМу). По умолчанию переменная окружения PHP_FCGI_CHILDREN окружающей среды = 0, управление дочерними процессами средствами PHP отключено.

Практика подтвердила описаное выше поведение. Т.е. если при использовании FastCGI переменная окружения PHP_FCGI_CHILDREN выше ноля, например 2, то вместе с порождённым родительским процессом рождаются 2 чилда (наследника/спиногрыза) отгрызшие каждый по 2-4% РАМы, которые никакой практической пользы не несут, часто не убиваются, хотя родитель умирает строго по графику через отведённое ему в FcgidProcessLifeTime время, и зависают навсегда.

Итого

"...стокнулся с проблемой когда некоторые сайты у клиентов переставали работать..." - мнда, что "стокнулся" то "стокнулся", бедные клиенты :) "Ответ как оказалось был прост.", - да ответ просто очевиден, как в анекдоте: "И вы еще спрашиваете: Почему нет мяса? Да потому что свиньи вышли в люди, коровы вышли замуж, козлы женились, бараны защитили диссертацию и правят страной, а куры сдохли со смеху!".

"5 виртуалхостов и 5 вызовов скрипта" - это аж никак не PHP_FCGI_CHILDREN, а FcgidMaxProcessesPerClass (ака виртуалхост) и FcgidMaxProcesses (глобально/суммарно для всех, FcgidMaxProcessesPerClass * число виртуалхостов)!

Нет, я не собираюсь здесь гнобить аффтора того бредового поста имхо "не ошибается только тот, кто ничего не делает", но тчк над "И" следовало бы конечно расставить, и главное признавать свои ошибки.

Братья и сестры мои, Всевышним всех заклинаю! Перестаньте гнать пургу и разсырать разсылать её по всему Интернету, - хоть иногда копипаст сверяйте с манами.

Кто не согласен с выше изложенными фактами, добро пожаловать на дуэль в комментарии (велкам без регистрации :), - похоливарим.

Рекомендуемый контент



Комментарии   

Иван Шаман
0 #1 Иван Шаман 21.02.2015 09:42
Ага, неграмотных у нас хоть отбавляй, - вспоминаю афторов "жкоментс", у которых мозга не хватило дописать с десяток строк кода дабы решить проблему с "правами", говорят нужно переписывать всё с нуля :wall:

PHP_FCGI_CHILDR EN с FastCGI всегда должен быть "0", в mod_fastcgi (http://www.fastcgi.com/drupal/node/5?q=node/10), в отличии от mod_cgid, чуть иной подход к управлению потомками, но одинаково не рекомендуется передавать управление РНР.
Цитировать

Добавить комментарий


Защитный код
Обновить

Рейтинг@Mail.ru 8 megabytes