Thank you for reading this post, don't forget to subscribe!
Благодаря suPHP PHP-скрипты в Apache выполняются с правами владельца, а не с правами веб-сервера, что очень удобно, когда речь идет о нескольких пользователях. Проще говоря, suPHP позволяет избежать конфликта владельцев.
Уточним, что suPHP запускает PHP как CGI модуль. Разница заключается в том, что PHP-скрипты, вызываемые из сети, работают из-под пользователя, который является владельцем скрипта.
Главное преимущество suPHP 一 безопасность. Речь идет о том, что тот или иной PHP скрипт, не принадлежащий конкретному пользователю, исполнятся не будет. Та же участь ожидает файлы, имеющие права отличные от 644. Таким образом, если один сайт на вашем VPS подвергнется взлому, остальные веб-порталы не пострадают.
Что касается недостатков, то здесь suPHP приписывают слишком активное использование загрузки процессора. Помимо этого модуль “не совместим” с Opcode кэш (к примеру, XCache или APC). К слову, при проблемах с высокой загрузкой ЦП рекомендуется переход к FastCGI.
добавим пользователя:
adduser warren
Теперь подключите репозиторий RPM:
для 64 битной:
rpm -ivh http://rpm.centoshelp.org/el6/mod_suphp/mod_suphp-0.7.1-1.el6.cosh.x86_64.rpm |
для 32 битной:
rpm -ivh http://rpm.centoshelp.org/el6/mod_suphp/mod_suphp-0.7.1-1.el6.cosh.src.rpm
nano /etc/suphp.conf
Исправьте значения в файле /etc/suphp.conf в соответствии с приведенным ниже:
[global] logfile=/var/log/httpd/suphp_log loglevel=info webserver_user=apache docroot=/ env_path=/bin:/usr/bin umask=0077 min_uid=500 min_gid=500
; Security options allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false
;Check wheter script is within DOCUMENT_ROOT check_vhost_docroot=true
;Send minor error messages to browser errors_to_browser=true
[handlers] ;Handler for php-scripts x-httpd-php="php:/usr/bin/php-cgi"
;Handler for CGI-scripts x-suphp-cgi="execute:!self" |
создадим виртхост /etc/httpd/conf.d/suphp.conf
nano /etc/httpd/conf.d/suphp.conf |
Добавьте виртуальный хост:
- В поле DocumentRoot пропишите свой корневой каталог.
- В поле ServerName добавьте доменное имя без www.
- В поле suPHP_UserGroup замените пользователя на созданного ранее.
- В поле Directory поставьте свой корневой каталог:
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName mariavps.shn-host.ru
AccessFileName .htaccess
### suPHP ###
<IfModule mod_suphp.c>
suPHP_Engine on
suPHP_UserGroup user1 user1
suPHP_AddHandler x-httpd-php
AddHandler x-httpd-php .php .php3 .php4 .php5
<Directory /var/www/html/>
Options +Indexes FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</IfModule>
</VirtualHost>
Смените права пользователя:
chown -Rf user1:user1 /var/www/html |
Выполните команду:
mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf.disable |
Перезагрузите httpd:
service httpd restart |
Если вы используете SSL (https), откройте файл /etc/httpd/conf.d/ssl.conf:
nano /etc/httpd/conf.d/ssl.conf |
Добавьте в него следующие строки:
##suPHP## suPHP_Engine on suPHP_UserGroup user1 user1 suPHP_AddHandler x-httpd-php AddHandler x-httpd-php .php .php3 .php4 .php5 ##suPHP end## |
Обратите внимание на то, что в поле suPHP_UserGroup нужно вписать название своего пользователя. Чтобы проверить, установлен ли suPHP, создайте в корневом каталоге файл info.php:
nano info.php |
Добавьте в него скрипт:
<? phpinfo(); ?> |
Перезагрузите сервер:
service httpd restart |
Введите в адресной строке браузера ваш-домен/info.php