Меню Рубрики

Установка apache itk centos

Установка Apache MPM-ITK на CentOS и ISPmanager

Apache MPM-ITK, это патч к стандартному apache версии 2.2, который позволяет запускать скрипты, выполняемые вебсервером от имени пользователя — владельца сайта.
У меня интерес к apache2-mpm-itk возник не из-за вопросов безопасности. А ввиду того, что пользователи сервера теряют владельца на компоненты своих CMS при установке внутренними CMS-инструментами. О такой неприятной ситуации с WordPress я подробно описал в статье WordPress просит FTP доступ или работаем с WordPress без FTP.

Один из вариантов решения — это использование модуля Apache Mod_ruid2. А второй, который я опишу в данной статье — это использовать патч Apache MPM-ITK.

Проверка наличия mpm-itk

Проверим, есть ли бинарный файл mpm-itk на сервере, который обычно расположен в /usr/sbin/httpd.itk:

Если имеется, то приступаем к настройкам, в противном случае начинаем установку.

Установка MPM-ITK

Apache MPM-ITK отсутствует в стандартном репозитории. Все популярные руководства по его устанвке ссылаются на репозиторий CentAlt, который в последнее время недоступен. Однако существуют и другие альтернативные решения. Для CentOS версии 6.Х Apache MPM-ITK присутствует в репозитории Epel.

Подключение репозитория для установки Apache MPM-ITK

Подключение репозитория EPEL для CentOS 6.5 x64:

Подключение репозитория EPEL для CentOS 6.5 x32:

Установка Apache MPM-ITK на CentOS

Для установки из репозитория EPEL выполните следующее:

Настройка файлов конфигурации

Отредактируйте файл /etc/sysconfig/httpd — раскомментируйте либо добавьте строчку:

Отредактируйте конфигурацию Apache, для этого добавьте в файл /etc/httpd/conf.d/php.conf следующие строки:

Если на сервере уже присутствуют домены и настроены какие-либо VirtualHost, то отредактируйте файл /etc/httpd/conf/httpd.conf, для этого поменяйте в нем SuexecUserGroup на AssignUserID (если такие записи имеются). Процесс можно автоматизировать одной из команд:

Отредактируйте файл /etc/httpd/conf/httpd.conf, добавьте в него по аналогии с следующее:

Внимание! У вас могут быть совсем другие значения! Конкретные данные берите по аналогии со своим блоком .
Перезапустите вебсервер Apache:

Убедитесь, что Apache MPM-ITK работает:

в выводе в конце строк обязательно должно быть itk.

Настройка конфигурации панели ISPmanager

Отредактируйте файл /usr/local/ispmgr/etc/ispmgr.conf, добавьте в его начало следующее:

Это необходимо для корректной работы панели ISPManager с MPM-ITK, и чтобы при добавлении новых доменов в была указана строка AssignUserID.
Перезапустите панель:

На этом установка и настройка закончены.

Конфигурация сервера CentOS и ISPmanager

Инструкция протестирована на CentOS 6.5 x86_64 с панелью ISPmanager-Lite 4.4.10.23. PHP работает на сервере как модуль Apache.
Инструкция подходит не только для PHP, но и для Perl скриптов.

источник

linux-notes.org

mpm-itk — это MPM (multi-processing модуль) для веб сервера Apache что позволяет запускать каждый VirtualHost с собственным идентификатором пользователя и ID группы.

Я в своей статье «Установка Apache mpm-itk на Unix/Linux» расскажу как можно установить Apache mpm-itk на Unix/Linux, а конкретно для Debian и CentOS и так же можно скомпилировать под любой другой Unix/Linux ОС.

Подготовка к установке.

Если пользователь и группа не существует, мы можете создать их следующим образом:

Установите ID пользователя и идентификатор группы для виртуального хоста (внутри директивы ). Как правило, это пользователь Apache с группой Apache.

Не забудьте установить правильные права! Для полной и безопасной установки, вам нужно 2 пользователя и 1 группа для каждого виртуального хоста.

Выставляем права на папки:

Если вы хотите установить права рекурсивно, используйте следующие команды:

Первая команда будет установить все файлы пользователя с пермишенами — RW и для группы — R, второй будет установить все каталоги для пользователя — RWX и группы — RX.

Установка Apache mpm-itk на CentOS/RedHat/Fedora

Чтобы установить mpm-itk, для начала стоит подключить репозиторий EPEL и после чего уже выполнить команду:

Для centOS 5-6 нужно выполнить следующие шаги.

При использовании PHP с mod_php, не забудьте добавить в:

Переходим к настройке виртуальных хостов и к тестированию. Все это описывается ниже.

Для centOS 7 нужно выполнить следующие шаги.

И проверяем, загружен ли модуль:

Установка Apache mpm-itk на Debian/Ubuntu

apache2-mpm-itk доступен в виде пакета Debian, по этому, установить можно с помощью следующей команды:

Установка Apache mpm-itk с исходного кода.

mpm-itk должен быть скомпилирован при установке Apache. Он не может быть загружен как модуль.

Прежде всего, загрузить исходный код Apache, а затем загрузить mpm-itk patch для Apache 2.0 или mpm-itk patch для Apache 2.2 или mpm-itk patch для Apache 2.4:

Затем, нужно сконфигурировать исходный код Apache с mpm-itk:

После чего, можно собрать DEB или RPM пакет или скомпилировать его следующими командами:

Читайте также:  Установка лобового стекла с подогревом skoda

Настройка Apache, создание виртуальных хостов.

Установите идентификатор пользователя и идентификатор группы, чтобы ваши виртуальные хосты были похожи что-то типа на:

apache2-mpm-itk — настроем для каждого виртуальный хост, то есть, мы не должны устанавливать какие-либо глобальные параметры и есть только одна директива которую нужно прописать в виртуальный хосте- AssignUserId, которая принимает два параметра, имя пользователя и группу.

В этом примере я буду использовать виртуальный хост Apache для Debian по умолчанию (вы можете найти его в /etc/apache2/sites-available/default) все файлы и папки сайтов лежат в /var/www (если есть другие виртуальные хости, то настройте их по вашему усмотрению), и я хочу, чтобы этот виртуальный хост запускался от пользователя itk_admin и его группы itk_group. Я создал пользователя и группу в самом начале данной статьи.

Затем, открываем конфигурационный файл, виртуальный хост, и добавляем следующие строки, например:

AssignUserId принимает два параметра:

  • Первым параметром является идентификатор пользователя (user ID), чтобы запустить Apache для конкретного сайта.
  • Вторым параметром является идентификатор группы (group ID), чтобы запустить Apache для конкретного сайта.

Не забудьте перезапустить Apache после добавления AssignUserId.

Тестирование mpm-itk.

Создаем файл и в нем разместим небольшой код который покажет на очень полезную информацию, для этого выполняем:

Открываем сайт и смотрим от кого запустился:

Все работает должным образом, если нет. То нужно выяснять почему 😉

Тестирование suPHP vs mpm-itk vs mpm-prefork

1. Для mpm-itk, я использовал утилиту benchmark (ab) и загружал страницу phpinfo() 1,000 раз. Я запускал benchmark 5 раз и средние данные вышли следующими:

  • mpm-itk: average of 37.01 seconds
  • mpm-prefork: average of 6.21 seconds

Другие соображения

suexec и suphp несут ограничения для ваших PHP-приложений, но mpm-itk не несет. Потому mpm_itk запускает (выполняет) работу и переключает пользователей в нужное место и позволяет запускать PHP код под модулем mod_php. В результате, этот код может свободно использовать любой правообладатель Apache, для которого не доступны PHP/CGI (поддержка аутентификации HTTP).

  • prefork: 2.720166 seconds
  • suphp: 13.621006 seconds
  • itk: 4.263002 seconds

Эти тесты были получены с использованием «AB» с сервером HTTPD. Они представляют время, которое потребовалось, чтобы загрузить первой странице моего блога 200 раз:

PreFork является стандартным модулем Apache MPM который работает с mod_php. Это самый быстрый, из изложенных выше, также самый небезопасный.

suPHP решает проблему исполняемых PHP файлов с помощью SUID и работает под CGI, но крайне медленно.

mpm-itk — модуль для Apache, который также предлагает функцию запуска файлов от различных пользователей, но она основана на PreFork и использует mod_php.Производительность — хуже (в 2x медленнее), чем prefork, но гораздо лучше, чем suPHP.

На этом, статья «Установка Apache mpm-itk на Unix/Linux» подошла к завершению.

источник

Установка apache itk centos

В статье описано как установить Apache MPM-ITK на операционную систему Linux CentOS и настроить панель управления сервером ISPmanager для работы с ним.
В начале необходимо подключить репозиторий CentALT, в зависимости от архитектуры это будут команды:

rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm
rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm

Также требуется репозиторий EPEL (обычно подключается ISPManager-ом, на этапе установки панели). Проверяем

yum repolist | grep enabled

Not using downloaded repomd.xml because it is older than what we have:
Current : Fri May 27 05:54:02 2011
Downloaded: Sat May 14 05:52:08 2011
addons CentOS-5 — Addons enabled: 0
base CentOS-5 — Base enabled: 3,535
epel Extra Packages for Enterprise Linux 5 — x86_64 enabled: 6,464
extras CentOS-5 — Extras enabled: 298
rpmforge RHEL 5 — RPMforge.net — dag enabled: 10,577
updates CentOS-5 — Updates enabled: 659

Установливаем Apache MPM-ITK:

===============================================================================
Package Arch Version Repository Size
===============================================================================
Updating:
httpd x86_64 2.2.19-1.el5 CentALT 1.3 M
Installing for dependencies:
apr-util-ldap x86_64 1.3.9-1.el5 CentALT 14 k
httpd-tools x86_64 2.2.19-1.el5 CentALT 69 k
redhat-logos noarch 4.9.99-11.el5.centos base 26 M
Updating for dependencies:
apr-util x86_64 1.3.9-1.el5 CentALT 90 k
mod_ssl x86_64 1:2.2.19-1.el5 CentALT 88 k
Transaction Summary
===============================================================================
Install 3 Package(s)
Upgrade 3 Package(s)
Total download size: 28 M
Is this ok [y/N]: y

Следует подтвердить установку нажатием клавиши y

Будет установлен Apache из репозитория CentALT, больше он не потребуется, рекомендуем его отключить чтобы автоматически другое ПО из него не устанавливалось и не обновлялось автоматически, для этого пропишите в файле /etc/yum.repos.d/centalt.repo enabled=0 вместо enabled=1.

Отредактируйте /etc/sysconfig/httpd — пропишите в нем строку

Отредактируйте конфигурацию Apache — исправьте файл /etc/httpd/conf.d/php.conf/. Пропишите в него:

LoadModule php5_module modules/libphp5.so

Отредактируйте /etc/httpd/conf/httpd.conf — если есть какие-либо VirtualHost в нем, то поменяйте в нем SuexecUserGroup на AssignUserID :

Пропишите настройки также для модуля itk.c (все по аналогии с , просто скопируйте его строки или исправьте в конфигурации):

StartServers 1
MinSpareServers 1
MaxSpareServers 5
ServerLimit 110
MaxClients 100
MaxRequestsPerChild 4000

И убедитесь что запущен httpd.itk:

ps ax|grep htt
9975 ? Ss 0:00 /usr/sbin/httpd.itk
9988 ? S 0:00 /usr/sbin/httpd.itk
9989 ? S 0:00 /usr/sbin/httpd.itk

Отредактируйте файл конфигурации ISPmanager — /usr/local/ispmgr/etc/ispmgr.conf и добавьте в него в начало файла:

Option ApacheMPM
ApacheProcName httpd.itk

На этом установка завершена. Теперь PHP скрипты будут работать с правами пользователей. Рекомендуем вам так же установить в качестве фронтенда nginx, для увеличения производительности сервера.

Если решение вопроса найти не удалось, Вы можете отправить нам заявку:

источник

AmiSEO βeta

Менюшечка

Следуй за мной 😉

Установка apache mpm-itk на CentOS

/ 13.12.2011 04:00 / / Обновлено 13.12.2011 17:18 /

Если у вас не виртуальный хостинг, а выделенный виртуальный сервер или вообще железный сервер, то вам это может быть полезно.

В чем суть проблемы. При работе cms на хостинге все скрипты запускаются от имени apache и все файлы которые в процессе создаются принадлежат пользователю apache. Если вы создаете FTP доступ для какого-нибудь сайта, то вы не сможете через FTP ничего делать с файлами, созданными apache, потому что они вам не принадлежат. Можно конечно пользоваться root доступом через SSH, но если привычнее FTP или у вас есть клиенты, которым вы сдаете в аренду часть сервера, то это решение для вас.

Упрощенно mpm-itk — это Apache с запуском виртуальных хостов под указанными User и Group. Чаще всего используется на шаред хостингах. Процесс, работающий от пользователя root, анализирует, какому виртуальному хосту пришел запрос, после чего форкает самого себя с setuid на того пользователя, который указан в настройках данного виртуального хоста.

В результате всё, что далее вызывается апачем (в т.ч. mod_php, mod_python и прочие прелести) работают уже от имени пользователя данного виртуалхоста. Данная технология позволяет не использовать обходные пути типа mod_cgi, mod_fcgi, mod_fcgid и php-cgi.

Конечно, можно использовать php-cgi, mod_fcgi или suphp, но все они потребляют слишком много ресурсов (mod_fcgi и suphp) или же медленны (как php-cgi). Поэтому на серверах где ресурсы хочется съэкономить стоит устанавливать имеено apache с mpm-itk.

Привожу один из вариантов установки apache mpm-itk, опробованный мною лично.

Подключаем репозиторий CentALT

Также требуется репозиторий EPEL, который у меня уже был подключен

Проверить, какие репозитории подключены можно командой

Устанавливаем Apache MPM-ITK

При этом должно отобразиться, что установка будет выполнена из репозитория CentALT. Подтверждаете установку вводом «y»

Будет установлен Apache из репозитория CentALT, больше он не потребуется, рекомендуем его отключить чтобы автоматически другое ПО из него не устанавливалось и не обновлялось автоматически, для этого пропишите в файле /etc/yum.repos.d/centalt.repo enabled=0 вместо enabled=1.

Далее отредактируйте /etc/sysconfig/httpd — пропишите или раскоментируйте в нем строку

Отредактируйте конфигурацию Apache — исправьте файл /etc/httpd/conf.d/php.conf — пропишите в него

Отредактируйте /etc/httpd/conf/httpd.conf — если есть какие-либо VirtualHost в нем, то поменяйте в нем SuexecUserGroup на AssignUserID например командой

Здесь же пропишите настройки также для модуля itk.c (все по аналогии с , просто скопируйте его строки или исправьте в конфигурации). Например, так

И убедитесь что запущен httpd.itk

Должен появиться список процессов с адресом /usr/sbin/httpd.itk

У меня стоит ISPConfig 3 и в нем необходимые настройки для apache mpm-itk уже есть. Для настройки панели ISPmanager предлагается сделать следующее:

Отредактируйте файл конфигурации ISPmanager — /usr/local/ispmgr/etc/ispmgr.conf и добавьте в него в начало файла

И второй вариант установки apace mpm-itk на CentOS 5, который я не проверял

Для CentOS существует готовый RPM в репозитории Webtatic. Указанный RPM работает на базе уже установленного httpd и устанавливается в качестве отдельного mpm.

Для установки, во-первых, требуется добавить репозиторий Webtactic в yum

Далее действуем так же, как и выше — редактируем конфиг файлы

источник

Модуль мультипроцессинга mpm-itk веб-сервера Apache

Ключевыми характеристиками любого веб-сервера являются производительность и безопасность. Также немаловажно и потребление ресурсов. Однако если при сравнительно небольшом его увеличении повышаются ключевые характеристики, то это является оправданным. Мультипроцессинг является основным способом, позволяющим добиться впечатляющей производительности веб-сервера. Да ещё при этом существенно повысить безопасность и надёжность его работы.

Зачем нужен мультипроцессинг для веб-сервера?

Поскольку к веб-серверу одновременно может быть направлено множество запросов. То естественно, необходимо некоторую часть из них принять в обработку. А оставшиеся запросы поместить в очередь ожидания. После того, как занятый обработкой запроса процесс освободится. Он получит следующий, находившийся в очереди запрос. И так далее. Сколько должно одновременно обрабатываться запросов, сколько должно находиться в очереди, а также стратегия распределения задач между процессами — определяется системной конфигурацией веб-сервера. Эти параметры настраиваются в ходе оптимизации и тестирования программно-аппартной платформы. На которой предполагается работа веб-сервера. Исходя из прогнозируемых нагрузок и специфики выполняемых задач.
Но дело ещё и в том, чтобы не просто обеспечить максимальную производительность веб-сервера за счёт тонкой и сбалансированной настройки мультипроцессинговой обработки, но также обеспечить выполнение каждого процесса в «индивидуальном» порядке. Это подразумевает выполнение каждого процесса от имени конкретного пользователя. Такой подход обеспечивает максимальную безопасность без потери производительности. При условии, что имеют место достаточное количество аппаратных ресурсов. А также грамотная оптимизация работы соответствующего программного обеспечения (ПО).

Читайте также:  Установка карбюратора 2108 на ниссан

Как это работает?

Для организации выполнения процессов (точнее экземпляров) Apache от разных пользователей существуют различные модули. Одним из таких является модуль mpm-itk. Для дистрибутивов Ubuntu этот модуль доступен в стандартном репозитории в виде отдельного пакета под именем libapache2-mpm-itk.
Разные виртуальные хосты (соответствующие каталоги и их содержимое) могут принадлежать разным пользователям. По-умолчанию Apache для мультипроцессинговой обработки HTTP-запросов для виртуальных хостов использует определённое количество процессов-экземпляров самого себя, которые запускаются от имени одного (обычно это пользователь www-data, apache или http) пользователя. Такимы образом, по-умолчанию с конфигурацией «из коробки» Apache от имени одного пользователя обслуживает виртуальные хосты, принадлежащие разным пользователям. Это потенциальная дыра в безопасности. Частично проблема решается добавлением верифицированных пользователей-владельцев виртуальных хостов в группу Apache. Но, во-первых, это полностью не решает проблему с безопасностью, во-вторых, это очень неудобно. Как самим пользователям, так и администраторам.
Модуль mpm-itk позволяет запускать отдельные экземпляры Apache от имени того пользователя, к виртуальному хосту которого поступил HTTP-запрос. Таким образом, каждый виртуальный хост обслуживается процессом веб-сервера, запущенным от имени самого этого пользователя — владельца виртуального хоста. Данный подход снимает все противоречия в модели распределения доступа к ресурсам виртуальных хостов. Всё, что нужно — это указать веб-серверу, что тот или иной хост нужно обрабатывать от имени его владельца. Это делается путём указания соответствующих директив в конфигурационном файле виртуального хоста.

Установка mpm-itk в Linux

Поскольку в большинстве дистрибутивов Linux в стандартном репозитории уже доступны многие модули Apache, в том числе и mpm-itk, то лучше воспользоваться менеджером пакетов (или системой управления пакетами СУП) используемого дистрибутива для его (модуля) установки. Например, для Ubuntu нужно установит пакет libapache2-mpm-itk:

$ sudo apt install libapache2-mpm-itk

После этого можно перезапустить Apache:

Но вообще, скрипт установки модуля должен перезапустить веб-сервер автоматически.
Если используемый дистрибутив не предоставляет готовых пакетов для модуля mpm-itk, то установку можно произвести вручную. Исчерпывающие инструкции для этого приведены на официальном сайте разработчиков модуля: http://mpm-itk.sesse.net.

Базовая настройка mpm-itk

Как уже говорилось ранее, для связывания виртуального хоста с конкретным пользователем в системе необходимо в конфигурационном файле хоста определить специальную директиву

Как можно видеть, директива AssignUserId определяет пользователя и группу (именно в таком порядке), указывая веб-серверу, что к данному виртуальному хосту может получить доступ процесс, принадлежащий только указанным пользователю и группе. В данном случае это пользователь john и его одноимённая группа.
Инструкция предназначена для задействования директивы AssignUserId только тогда, когда подключен соответствующий модуль, т. е. mpm-itk. Фраза «mpm_itk_module» формируется из двух составляющих: имени модуля, под которым он был подключен (в данном случае mpm_itk), а также классификатора объекта Apache – module, поскольку это подключаемый модуль. Просмотреть подключенные модули Apache (и их имена) можно в каталоге /etc/apache2/mods-enabled. А все доступные модули должны храниться в каталоге /etc/apache2/mods-available. Например, модулю mpm-itk соответствует файл mpm_itk.load.
Если теперь понаблюдать за процессами Apache, то можно убедиться, что во время обращения к пользовательскому виртуальному хосту (для которого определена директива AssignUserId) создаётся экземпляр Apache, запущенный от соответствующего пользователя.

Заключение

В заключение необходимо отметить, что модуль mpm-itk применяется в тех системах, где безопасность важнее производительности. Поскольку при использовании этого модуля процессы каждый раз при обработке виртуального хоста создаются заново и полностью уничтожаются при отсутствии к нему запросов, то ясно, что производительность от этого не увеличится. Чаще всего подобная схема используется на хостинг-площадках.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

источник

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