{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Аникин: заметки с тегом httpd",
    "_rss_description": "Блог об администрировании Linux, BSD и не только",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/anikin.pw\/tags\/httpd\/",
    "feed_url": "https:\/\/anikin.pw\/tags\/httpd\/json\/",
    "icon": "https:\/\/anikin.pw\/pictures\/userpic\/userpic@2x.jpg?1478690884",
    "authors": [
        {
            "name": "Петр Аникин",
            "url": "https:\/\/anikin.pw\/",
            "avatar": "https:\/\/anikin.pw\/pictures\/userpic\/userpic@2x.jpg?1478690884"
        }
    ],
    "items": [
        {
            "id": "29",
            "url": "https:\/\/anikin.pw\/all\/server-status-na-apache2-httpd\/",
            "title": "Включение server-status на apache2\/httpd в ubuntu и centos",
            "content_html": "<p>server-status это модуль веб-сервера, который может помочь установить какой из сайтов на сервере создает нагрузку или даже покажет на какой именно скрипт на сайте идет больше всего обращений. В общем это модуль который помогает в мониторинге состояния веб-сервера. Разберёмся как его установить.<\/p>\n<p>В centos он обычно уже установлен. В ubuntu смотрим:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># ls \/etc\/apache2\/mods-enabled<\/code><\/pre><p><\/br><br \/>\nЕсли в выводе есть status.load и status.conf, то значит он тоже установлен. Если же нет, то выполняем:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># \/usr\/sbin\/a2enmod status<\/code><\/pre><p><\/br><\/p>\n<p>Затем открываем конфигурационный файл веб-сервера, в centos — \/etc\/httpd\/conf\/httpd.conf, в ubuntu — \/etc\/apache2\/apache2.conf. Добавляем туда:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">ExtendedStatus On\n&lt;Location \/server-status&gt;\n    SetHandler server-status\n    Order deny,allow\n    Deny from all\n    Allow from 127.0.0.1\n&lt;\/Location&gt;<\/code><\/pre><p>Затем перезапускаем апач.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># service apache2 restart<\/code><\/pre><ul>\n<li>в ubuntu<\/li>\n<\/ul>\n<pre class=\"e2-text-code\"><code class=\"\"># service httpd restart<\/code><\/pre><ul>\n<li>в centos<\/li>\n<\/ul>\n<p>Устанавливаем:<br \/>\nВ centos:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># yum install links elinks<\/code><\/pre><p><\/br><br \/>\nВ ubuntu:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt-get install links elinks<\/code><\/pre><p><\/br><\/p>\n<p>Теперь мы можем посмотреть server-status. Для этого выполняем:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># elinks http:\/\/localhost\/server-status<\/code><\/pre><p><\/br><br \/>\nЕсли апач у нас висит не на 80 порту, например когда фронтэндом установлен nginx, то в эту команду нужно добавить порт апача. Например так, для порта 81:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># elinks http:\/\/localhost:81\/server-status<\/code><\/pre>",
            "date_published": "2014-08-04T13:08:03+03:00",
            "date_modified": "2014-08-29T11:40:50+03:00",
            "tags": [
                "apache2",
                "centos",
                "httpd",
                "mod_status",
                "server-status",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Mon, 04 Aug 2014 13:08:03 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "29",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "17",
            "url": "https:\/\/anikin.pw\/all\/ustanovka-mpm-itk-na-apache2-rabota-virtualnyh-hostov-pod-raznym\/",
            "title": "Установка mpm-itk на apache2. Работа виртуальных хостов под разными пользователями.",
            "content_html": "По умолчанию apache работает под пользователем www-data. При использовании isp-manager под пользователем apache, если я не ошибаюсь. И получается, что все сайты работают под одним пользователем. Иногда требуется чтобы каждый сайт работал под своим пользователем. Сделать это можно с помощью модуля mpm-itk. Модуль доступен во всех основных дистрибутивах линукс. Мы рассмотрим как установить и настроить его под ubuntu и centos, а так же рассмотрим настройку для серверов с isp-панелью.<p>\r\n\r\n<strong>Установка и настройка в ubuntu<\/strong><p>\r\n\r\nДля начала установим сам модуль<p>\r\n\r\n<code># apt-get install apache2-mpm-itk<\/code><p>\r\n\r\nДопустим, что сайты у нас уже есть и находятся в пользовательских каталогах. Сообтветственно нам не нужно создавать пользователей. Если это не так то можно создать пользователей для каждого сайта с помощью useradd с аргументом -d, в котором укажем каталог сайта в качестве домашнего каталога.<p>\r\n\r\nЗатем правим конфигурационный файл apache.<p>\r\n\r\n<code># nano \/etc\/apache2\/apache2.conf<\/code><p>\r\n\r\nВнутрь каждого виртуального хоста добавляем такие строки:<p>\r\n\r\n<code>&lt;IfModule mpm_itk_module&gt;<p>\r\nAssignUserId user1 user1<p>\r\n&lt;\/IfModule&gt;<\/code><p>\r\n\r\nГде user1 user1 - пользователь и группа соответственно.<p>\r\n\r\nПерезапускаем apache2<p>\r\n\r\n<code># service apache2 restart<\/code><p>\r\n\r\n<strong>Установка в CentOS<\/strong><p>\r\n\r\nУстановим модуль<p>\r\n\r\n<code># yum install httpd-itk<\/code><p>\r\n\r\nПравим конфигурационные файлы<p>\r\n\r\n<code># nano \/etc\/sysconfig\/httpd<\/code><p>\r\n\r\nРаскомментируем и изменяем строку на такую:<p>\r\n\r\n<code>HTTPD=\/usr\/sbin\/httpd.itk<\/code><p>\r\n\r\n<code># nano \/etc\/httpd\/conf.d\/php.conf<\/code><p>\r\n\r\nДобавляем:<p>\r\n\r\n<code>&lt;IfModule itk.c&gt;<p>\r\nLoadModule php5_module modules\/libphp5.so<p>\r\n&lt;\/IfModule&gt;<p><\/code>\r\n\r\nМеняем диррективу SuexecUserGroup на AssignUserID для существующих доменов.<p>\r\n\r\n<code># sed -i -e 's\/SuexecUserGroup\/AssignUserID\/g' \/etc\/httpd\/conf\/httpd.conf<\/code><p>\r\n\r\nДля вновь созданных доменов в виртуальном хосте нужно указывать<p>\r\n\r\n<code>AssignUserID user1 user1<\/code><p>\r\n\r\nГде user1 user1 - пользователь и группа соответственно.<p>\r\n\r\n<code># nano \/etc\/httpd\/conf\/httpd.conf<\/code><p>\r\n\r\nВставляем настройки модуля перед виртуальными хостами<p>\r\n\r\n<code>&lt;IfModule itk.c&gt;<p>\r\nStartServers 1<p>\r\nMinSpareServers 1<p>\r\nMaxSpareServers 25<p>\r\nServerLimit 25<p>\r\nMaxClients 25<p>\r\nMaxRequestsPerChild 4000<p>\r\n&lt;\/IfModule&gt;<p><\/code>\r\n\r\nПерезапускаем apache<p>\r\n\r\n<code># service httpd restart<\/code><p>\r\n\r\n<strong>Настройка для сервера с панелью isp.<\/strong><p>\r\n\r\nОткроем конфигурационный файл isp<p>\r\n\r\n<code># nano \/usr\/local\/ispmgr\/etc\/ispmgr.conf<\/code><p>\r\n\r\nИ в самом начале добавим строку:<p>\r\n\r\n<code>Option ApacheMPM<\/code><p>\r\n\r\nИ рестартим панель<p>\r\n\r\n<code># killall -9 ispmgr<\/code><p>\r\n\r\n<strong>Как проверить что все работает правильно?<\/strong><p>\r\n\r\nВ папке виртуального хоста создаем файл с расширением .php и примерно таким содержанием:<p>\r\n\r\n<code>&lt;?php<p>\r\n$userinfo = posix_getpwuid(posix_getuid());<p>\r\necho $userinfo['name'];<p>\r\n?&gt;<p><\/code>\r\n\r\nИли таким:<p>\r\n\r\n<code>&lt;?php echo exec('whoami'); ?&gt;<\/code><p>\r\n\r\nОткрываем этот файл в браузере и выводом этого файла должно быть имя пользователя под которым работает этот скрипт. Так же не забываем что если сервер функционирует давно то в подкаталогах куча фалов принадлежащих пользователю www-data. Неплохо бы сделать chown -R username на каталоги сайтов.",
            "date_published": "2013-11-08T18:05:50+03:00",
            "date_modified": "2014-04-04T13:47:25+03:00",
            "tags": [
                "apache2",
                "centos",
                "httpd",
                "httpd-itk",
                "isp-manager",
                "Linux",
                "mpm-itk",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Fri, 08 Nov 2013 18:05:50 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "17",
            "_e2_data": {
                "is_favourite": false,
                "links_required": null,
                "og_images": []
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}