Apache обычно выполняет PHP-скрипты от владельца www это не всегда является хорошей идей, например когда на хостинге много виртуальных хостов и все PHP-скрипты выполняются от одного пользователя. suPHP позволяет выполнять скрипт от имени владельца а не от www.
Перейдем к установке и настройке.
# whereis suphp /usr/ports/www/suphp # cd /usr/ports/www/suphp # make install clean
После установки создается файл c настройками /usr/local/etc/suphp.conf
[global]
;место хранения лог файла
logfile=/var/log/suphp.log
;уровень ведения логов
loglevel=info
;имя пользователя от которого запускается Apache
webserver_user=www
;путь ко всем PHP-скриптам
docroot=/usr/home/*:${HOME}
;Путь для chroot
;chroot=/mychroot
;Опции безопасности
allow_file_group_writeable=true
allow_file_others_writeable=true
allow_directory_group_writeable=true
allow_directory_others_writeable=true
;Проверять скрипты в vhost
check_vhost_docroot=false
; Отображать ошибки в браузере
errors_to_browser=true
;PATH переменные окружения
env_path="/bin:/usr/bin"
;Umask
umask=0022
;Минимальный UID
min_uid=80
;Минимальный GID
min_gid=80
[handlers]
;Заголовок для php-scripts
application/x-httpd-php="php:/usr/local/bin/php-cgi"
;заголовок для CGI-scripts
x-suphp-cgi="execute:!self"
Так же после установки в файле httpd.conf нужно добавить
suPHP_Engine on suPHP_AddHandler application/x-httpd-php
Что бы отключить функцию suPHP для какого то virtual-host’a то в описание этого хоста нужно добавить suPHP_Engine off
К сожалению не могу вспомнить статью где делался анализ производительности веб-сервера, но там говорилось что время выполнения PHP-скриптов с suPHP увеличивается в несколько раз.