Настройка suexec в Apache2 на Ubuntu 14.04


Механизм suexec позволяет выполнять CGI скрипты от имени разных пользователей системы. В этой статье я рассмотрю пример настройки suexec на базе Linux Ubuntu 14.04.

Использовать suexec очень удобно если у вас есть несколько сайтов на сервере, доступ к которым организован через sftp . В таком случае вы не столкнетесь с проблемой разных владельцев файлов.

Для начала установим нужные пакеты:

apt-get install php5-cgi libapache2-mod-fcgid apache2-suexec apache2-suexec-custom -y

Включим модули

a2enmod fcgid
a2enmod suexec

Теперь нужно указать, что все php файлы - это cgi скрипты и должны обрабатываться модулем fcgid

Есть два варианта

  1. отредактировать глобальный fcgid.conf
  2. отредактировать отдельной конфиг каждого сайта.

Я выбираю второй:

nano /etc/apache2/sites-enabled/sitename.conf

Следующая конструкция объявляет php файлы cgi скриптами:

  <IfModule mod_mime.c>
    AddHandler     fcgid-script .php
    FCGIWrapper /usr/bin/php5-cgi .php
  </IfModule>

В том же самом файле указываем от имени какого именно системного пользователя apache будет получать доступ к папкам и файлам сайта. В даном примере я указываю отдельный php.ini для каждого сайта:

  <IfModule mod_suexec.c>
        FcgidInitialEnv PP_CUSTOM_PHP_INI /etc/php_conf.d/websitename_php.ini
        SuexecUserGroup "systemuser" "systemgroup"
  </IfModule>

В остальном конфигурационный файл остается стандартным. Полный пример можно посмотреть по адресу:
Настройка сайтов в Apache2

Перезапускаем демон apache:

service apache2 restart

Разрешаем листинг каталога сайта:

chmod +x /var/www/sitename.conf

Делаем все php файлы исполняемыми:

find /var/www/sitename.conf -type f -name "*.php" -exec chmod +x {} \;

Share Button
(Visited 863 times, 5 visits today)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *