В шаблонах VDS для FreeBSD-6 имелось 3 режима работы PHP:
- PHP как модуль Apache;
- PHP как CGI;
- PHP как FastCGI.
Во FreeBSD-8 и 9 их только два:
- PHP как модуль Apache;
- PHP как CGI.
Поэтому часто приходится слышать вопрос: куда делся режим "PHP как FastCGI"?
Дело в том, что режим "PHP как модуль Apache" на новых VDS претерпел изменения. Теперь Apache там собран с поддержкой MPM-ITK, который позволяет
запуск каждого виртуального хоста под отдельными uid и gid. Иными словами, php-скрипты в этом режиме будут обрабатываться от имени владельца домена,
что повышает безопасность и снимает некоторые ограничения (например, safe mode - отключен).
Таким образом, в большинстве случаев оптимальным режимом работы PHP на VDS с FreeBSD-8 теперь является "PHP как модуль Apache".
Что делать, если для сайта крайне необходим режим "PHP как FastCGI"?
К сожалению, просто так вернуть его не получится - в частности нужно пересобрать Apache без поддержки MPM-ITK. Это означает, что он перестанет
обновляться автоматически вместе с шаблоном, и забота об актуальности Apache в дальнейшем целиком ложится на плечи владельца VDS.
Если вы понимаете последствия данного шага, вернуть "PHP как FastCGI" можно следующим образом:
1) открываем файл /etc/make.conf и удаляем строчку "WITH_MPM=itk" из блока:
.if ${.CURDIR:N*/usr/ports/www/apache22} == ""
WITH_MPM=itk
WITH_SUEXEC=yes
SUEXEC_DOCROOT=/
WITH_PROXY_MODULES=yes
.endif
2) удаляем apache-itk:
# pkg_delete -f apache-itk-2.2.21
3) устанавливаем apache (без itk):
# cd /usr/ports/www/apache22 && make install clean
4) устанавливаем mod_fcgid:
# cd /usr/ports/www/mod_fcgid && make install clean
5) открываем файл /usr/local/etc/apache22/httpd.conf и добавляем строчку:
LoadModule fcgid_module libexec/apache22/mod_fcgid.so
6) в том же файле во всех виртуальных хостах (если они уже есть) меняем:
AssignUserID имя_юзера имя_юзера
на
SuexecUserGroup имя_юзера имя_юзера
7) открываем файл /usr/local/ispmgr/etc/ispmgr.conf и удаляем оттуда строчку:
Option ApacheMPM
8) убиваем все процессы ISPmanager:
# killall ispmgr
9) если после этого режим "PHP как FastCGI" не появился, добавляем строчку:
Option ForcePhpFastCgi
в файл /usr/local/ispmgr/etc/ispmgr.conf и повторяем пункт 8.
Все эти действия вместо вас могут выполнить платно сотрудники нашей техподдержки (1 час работы специалиста).
[Отредактировано 11.6.2013 кто timru]