<?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>Аникин: заметки с тегом httpd</title>
<link>https://anikin.pw/tags/httpd/</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>Включение server-status на apache2/httpd в ubuntu и centos</title>
<guid isPermaLink="false">29</guid>
<link>https://anikin.pw/all/server-status-na-apache2-httpd/</link>
<pubDate>Mon, 04 Aug 2014 13:08:03 +0300</pubDate>
<author></author>
<comments>https://anikin.pw/all/server-status-na-apache2-httpd/</comments>
<description>
&lt;p&gt;server-status это модуль веб-сервера, который может помочь установить какой из сайтов на сервере создает нагрузку или даже покажет на какой именно скрипт на сайте идет больше всего обращений. В общем это модуль который помогает в мониторинге состояния веб-сервера. Разберёмся как его установить.&lt;/p&gt;
&lt;p&gt;В centos он обычно уже установлен. В ubuntu смотрим:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# ls /etc/apache2/mods-enabled&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/br&gt;&lt;br /&gt;
Если в выводе есть status.load и status.conf, то значит он тоже установлен. Если же нет, то выполняем:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# /usr/sbin/a2enmod status&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/br&gt;&lt;/p&gt;
&lt;p&gt;Затем открываем конфигурационный файл веб-сервера, в centos — /etc/httpd/conf/httpd.conf, в ubuntu — /etc/apache2/apache2.conf. Добавляем туда:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ExtendedStatus On
&amp;lt;Location /server-status&amp;gt;
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
&amp;lt;/Location&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Затем перезапускаем апач.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# service apache2 restart&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;в ubuntu&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# service httpd restart&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;в centos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Устанавливаем:&lt;br /&gt;
В centos:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# yum install links elinks&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/br&gt;&lt;br /&gt;
В ubuntu:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# apt-get install links elinks&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/br&gt;&lt;/p&gt;
&lt;p&gt;Теперь мы можем посмотреть server-status. Для этого выполняем:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# elinks http://localhost/server-status&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/br&gt;&lt;br /&gt;
Если апач у нас висит не на 80 порту, например когда фронтэндом установлен nginx, то в эту команду нужно добавить порт апача. Например так, для порта 81:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# elinks http://localhost:81/server-status&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<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>