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 увеличивается в несколько раз.