<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Аникин: заметки с тегом mpm-itk</title>
<link>https://anikin.pw/tags/mpm-itk/</link>
<description>Блог об администрировании Linux, BSD и не только</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Блог об администрировании Linux, BSD и не только</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Установка mpm-itk на apache2. Работа виртуальных хостов под разными пользователями.</title>
<guid isPermaLink="false">17</guid>
<link>https://anikin.pw/all/ustanovka-mpm-itk-na-apache2-rabota-virtualnyh-hostov-pod-raznym/</link>
<pubDate>Fri, 08 Nov 2013 18:05:50 +0300</pubDate>
<author></author>
<comments>https://anikin.pw/all/ustanovka-mpm-itk-na-apache2-rabota-virtualnyh-hostov-pod-raznym/</comments>
<description>
По умолчанию apache работает под пользователем www-data. При использовании isp-manager под пользователем apache, если я не ошибаюсь. И получается, что все сайты работают под одним пользователем. Иногда требуется чтобы каждый сайт работал под своим пользователем. Сделать это можно с помощью модуля mpm-itk. Модуль доступен во всех основных дистрибутивах линукс. Мы рассмотрим как установить и настроить его под ubuntu и centos, а так же рассмотрим настройку для серверов с isp-панелью.&lt;p&gt;

&lt;strong&gt;Установка и настройка в ubuntu&lt;/strong&gt;&lt;p&gt;

Для начала установим сам модуль&lt;p&gt;

&lt;code&gt;# apt-get install apache2-mpm-itk&lt;/code&gt;&lt;p&gt;

Допустим, что сайты у нас уже есть и находятся в пользовательских каталогах. Сообтветственно нам не нужно создавать пользователей. Если это не так то можно создать пользователей для каждого сайта с помощью useradd с аргументом -d, в котором укажем каталог сайта в качестве домашнего каталога.&lt;p&gt;

Затем правим конфигурационный файл apache.&lt;p&gt;

&lt;code&gt;# nano /etc/apache2/apache2.conf&lt;/code&gt;&lt;p&gt;

Внутрь каждого виртуального хоста добавляем такие строки:&lt;p&gt;

&lt;code&gt;&amp;lt;IfModule mpm_itk_module&amp;gt;&lt;p&gt;
AssignUserId user1 user1&lt;p&gt;
&amp;lt;/IfModule&amp;gt;&lt;/code&gt;&lt;p&gt;

Где user1 user1 - пользователь и группа соответственно.&lt;p&gt;

Перезапускаем apache2&lt;p&gt;

&lt;code&gt;# service apache2 restart&lt;/code&gt;&lt;p&gt;

&lt;strong&gt;Установка в CentOS&lt;/strong&gt;&lt;p&gt;

Установим модуль&lt;p&gt;

&lt;code&gt;# yum install httpd-itk&lt;/code&gt;&lt;p&gt;

Правим конфигурационные файлы&lt;p&gt;

&lt;code&gt;# nano /etc/sysconfig/httpd&lt;/code&gt;&lt;p&gt;

Раскомментируем и изменяем строку на такую:&lt;p&gt;

&lt;code&gt;HTTPD=/usr/sbin/httpd.itk&lt;/code&gt;&lt;p&gt;

&lt;code&gt;# nano /etc/httpd/conf.d/php.conf&lt;/code&gt;&lt;p&gt;

Добавляем:&lt;p&gt;

&lt;code&gt;&amp;lt;IfModule itk.c&amp;gt;&lt;p&gt;
LoadModule php5_module modules/libphp5.so&lt;p&gt;
&amp;lt;/IfModule&amp;gt;&lt;p&gt;&lt;/code&gt;

Меняем диррективу SuexecUserGroup на AssignUserID для существующих доменов.&lt;p&gt;

&lt;code&gt;# sed -i -e 's/SuexecUserGroup/AssignUserID/g' /etc/httpd/conf/httpd.conf&lt;/code&gt;&lt;p&gt;

Для вновь созданных доменов в виртуальном хосте нужно указывать&lt;p&gt;

&lt;code&gt;AssignUserID user1 user1&lt;/code&gt;&lt;p&gt;

Где user1 user1 - пользователь и группа соответственно.&lt;p&gt;

&lt;code&gt;# nano /etc/httpd/conf/httpd.conf&lt;/code&gt;&lt;p&gt;

Вставляем настройки модуля перед виртуальными хостами&lt;p&gt;

&lt;code&gt;&amp;lt;IfModule itk.c&amp;gt;&lt;p&gt;
StartServers 1&lt;p&gt;
MinSpareServers 1&lt;p&gt;
MaxSpareServers 25&lt;p&gt;
ServerLimit 25&lt;p&gt;
MaxClients 25&lt;p&gt;
MaxRequestsPerChild 4000&lt;p&gt;
&amp;lt;/IfModule&amp;gt;&lt;p&gt;&lt;/code&gt;

Перезапускаем apache&lt;p&gt;

&lt;code&gt;# service httpd restart&lt;/code&gt;&lt;p&gt;

&lt;strong&gt;Настройка для сервера с панелью isp.&lt;/strong&gt;&lt;p&gt;

Откроем конфигурационный файл isp&lt;p&gt;

&lt;code&gt;# nano /usr/local/ispmgr/etc/ispmgr.conf&lt;/code&gt;&lt;p&gt;

И в самом начале добавим строку:&lt;p&gt;

&lt;code&gt;Option ApacheMPM&lt;/code&gt;&lt;p&gt;

И рестартим панель&lt;p&gt;

&lt;code&gt;# killall -9 ispmgr&lt;/code&gt;&lt;p&gt;

&lt;strong&gt;Как проверить что все работает правильно?&lt;/strong&gt;&lt;p&gt;

В папке виртуального хоста создаем файл с расширением .php и примерно таким содержанием:&lt;p&gt;

&lt;code&gt;&amp;lt;?php&lt;p&gt;
$userinfo = posix_getpwuid(posix_getuid());&lt;p&gt;
echo $userinfo['name'];&lt;p&gt;
?&amp;gt;&lt;p&gt;&lt;/code&gt;

Или таким:&lt;p&gt;

&lt;code&gt;&amp;lt;?php echo exec('whoami'); ?&amp;gt;&lt;/code&gt;&lt;p&gt;

Открываем этот файл в браузере и выводом этого файла должно быть имя пользователя под которым работает этот скрипт. Так же не забываем что если сервер функционирует давно то в подкаталогах куча фалов принадлежащих пользователю www-data. Неплохо бы сделать chown -R username на каталоги сайтов.</description>
</item>


</channel>
</rss>