Apache 2.2.11 mpm-itk - Быстрая установка на FreeBSD + ISPmanager
Стянул сегодня httpd-2.2.11.tgz, и собрал как mpm-itk и поставил в /usr/local/apache2
- Зачем так делать?
- Чтобы не затрагивать стоящий из портов, на случай если надо быстро к нему вернуться.
Инструкция по установке apache mpm-itk на FreeBSD из исходников:
Выберем место где будем собирать:
# mkdir /root/src
# cd /root/src
Скачайте исходники apache и mpm-itk патч к нему:
# wget http://mirror.prvtgeo.com/apache/httpd/httpd-2.2.11.tar.gz
# wget http://mpm-itk.sesse.net/apache2.2-mpm-itk-20090414-00.patch
Распакуем и пропатчим:
# tar xzf httpd-2.2.11.tar.gz
# cp apache2.2-mpm-itk-20090414-00.patch httpd-2.2.11
# cd httpd-2.2.11
# patch -Np1 -i apache2.2-mpm-itk-20090414-00.patch
Необходимо перестроить конфигурацию после применения патча:
# ./buildconf
Теперь приступим к конфигурированию и сборке:
# ./configure --enable-ssl --enable-rewrite --enable-suexec --with-suexec-docroot=/ --with-suexec-logfile=/var/log/httpd-suexec.log --with-suexec-uidmin=1000 --with-suexec-gidmin=1000 --with-pcre=/usr/local --with-mpm=itk
# make
# make install
Скопируйте SSL-ключи:
# cp /usr/local/etc/apache22/server.* /usr/local/apache2/conf/
А на libphp5 (php модуль apache) создадим cимлинк:
# ln -s /usr/local/libexec/apache22/libphp5.so /usr/local/apache2/modules/
Это сделано специально, чтобы когда PHP обновляется в темплейте автоматически, то у нас тоже обновилось и не отвалилось в конечном итоге.
Теперь пришло время отредактировать конфиг:
# vi /usr/local/apache2/conf/httpd.conf
Поменяем
User daemon
Group daemon
На
User www
Group www
Удалите или закоментируйте символами # блок
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Раскоментируем
Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-ssl.conf
В конфиг httpd.conf добавляем (прямо вниз можно)
LoadModule php5_module modules/libphp5.so
DirectoryIndex index.html index.htm index.php index.cgi
Include /usr/local/etc/apache22/Includes/*.conf
Include /usr/local/ispmgr/etc/ispmgr.inc
В конфиг ISPmanager пропишите опцию для работы с Apache MPM
Option ApacheMPM
Исправим пути:
path httpd.conf /usr/local/apache2/conf/httpd.conf
path apachectl /usr/local/apache2/bin/apachectl start
Перезапустите ISPmanager:
# killall ispmgr
Теперь следует отключить запуск старого apache и добавить новый
# vi /etc/rc.conf
apache22_enable="NO"
# echo '/usr/local/apache2/bin/apachectl start' >> /etc/rc.local
в ISPmanager в Сервисы правим пути к команде HTTP на /usr/local/apache2/bin/apachectl start и /usr/local/apache2/bin/apachectl stop
Переносить виртуалхосты можно из старого конфига (поддерживается php как модуль apache и как cgi), только надо сделать (поменять) SuexecUserGroup на AssignUserID выполнив редакторе vim:
%s/SuexecUserGroup/AssignUserID/g
То есть в настройках виртуахоста должна быть строка:
AssignUserID blog blog
Вместо
SuexecUserGroup blog blog
Вроде бы все работает, у всех сайтов PHP работает в режиме как модуль apache но скрипты запускаются от пользователя, выглядит все намного быстрее, чем FastCGI (или мне кажется :), по памяти тоже все в порядке, не смотря на включенный eAccelerator (как модуль Zend). В последствии отключил eAccelerator, ускорения особого нет от него, поставил xcache - работает куда приятнее, но об нем напишу в следующих заметках.
Ну и в завершение (чтобы случайно не запустился не тот apache ни при каких условиях) сделайте chmod -x /usr/local/sbin/httpd