Блог @ Ihtiandr.Info

Archive for the ‘apache’ tag

Apache 2.2.11 mpm-itk - Быстрая установка на FreeBSD + ISPmanager

without comments

Стянул сегодня 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

Written by Blog@Ihtiandr.Info

May 31st, 2009 at 3:28 pm

Posted in internet, software

Tagged with ,

 Page 1 of 1  1