' Установка Apache и PHP как suPHP на CentOS 6 | Шнайдер блог

Установка Apache и PHP как suPHP на CentOS 6

Благодаря suPHP PHP-скрипты в Apache выполняются с правами владельца, а не с правами веб-сервера, что очень удобно, когда речь идет о нескольких пользователях. Проще говоря, suPHP позволяет избежать конфликта владельцев.

Уточним, что suPHP запускает PHP как CGI модуль. Разница заключается в том, что PHP-скрипты, вызываемые из сети, работают из-под пользователя, который является владельцем скрипта.

Главное преимущество suPHP 一 безопасность. Речь идет о том, что тот или иной PHP скрипт, не принадлежащий конкретному пользователю, исполнятся не будет. Та же участь ожидает файлы, имеющие права отличные от 644. Таким образом, если один сайт на вашем VPS подвергнется взлому, остальные веб-порталы не пострадают.

Что касается недостатков, то здесь suPHP приписывают слишком активное использование загрузки процессора. Помимо этого модуль “не совместим” с Opcode кэш (к примеру, XCache или APC). К слову, при проблемах с высокой загрузкой ЦП рекомендуется переход к FastCGI.

Для того, чтобы установить Apache + PHP как suPHP подключитесь к серверу по SSH и добавьте нового пользователя при помощи команды useradd:

useradd user1

Теперь подключите репозиторий RPM:

rpm -ivh http://rpm.centoshelp.org/el6/mod_suphp/mod_suphp-0.7.1-1.el6.cosh.x86_64.rpm

Откройте файл /etc/suphp.conf в редакторе nano:

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 ###

   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>

</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:


Категории


Хостинг сайтов

Популярное в категории