Установка Web-servera Apache
# yum -y install httpd
Устанавливаем сервис в автозагрузку:
# chkconfig http on # chkconfig --list | grep httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Запускаем httpd
# service httpd start Starting httpd: [ OK ]
Посмотреть версию httpd
# httpd -v Server version: Apache/2.2.3
Проверить конфигурационный файл (находиться в /etc/httpd/conf/httpd.conf ) на ошибки
# apachectl configtest
Проверить конфигурацию виртуальных хостов
# httpd -S
Если аккуратненько необходимо перезагрузить сервер то воспользуйтесь командой
# apachectl graceful
Подключаем php5
# yum -y install php php-cli php-mysql mysql
Перезагружаем apache
# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
В DocumentRoot – по умолчанию /var/www/html, положим файл
info.php с содержанием: <?php phpinfo (); ?>
При заходе на http://ip.ip.ip.ip/info.php у нас будет страница с конфигурацией php. Как обновить php до необходимой версии описывал здесь
Устанавливаем ZendOptimizer
Скачиваем ZendOptimizer с официального сайта , для этого необходимо зарегистрироваться.
Распаковываем архив, и копируем файл ZendOptimizer.so например в папку /usr/lib/php/modules
Обязательно отключаем SELinux
# setenforce 0 Затем в файле /etc/selinux/config устанавливаем SELINUX=disabled
В файле php.ini (/etc/php.ini) Прописываем строчку
zend_extension=/usr/lib/php/modules/ZendOptimizer.so
Перезагружаем httpd
# service httpd restart
Проверяем
# php -v PHP 5.1.6 (cli) (built: Mar 31 2010 02:44:37) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
Установка Ioncube вместе с ZendOptimizer
Скачиваем необходимый ioncube здесь
# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz # tar zxf ioncube_loaders_lin_x86.tar.gz # mv ioncube /usr/local
В конфигурационном файле /etc/php.ini добавляем так как у меня php 5.1:
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.1.so zend_extension_ts = /usr/local/ioncube/ioncube_loader_lin_5.1_ts.so
Перезагружаем httpd
# php -v PHP 5.1.6 (cli) (built: Mar 31 2010 02:44:37) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies with the ionCube PHP Loader v3.3.20, Copyright (c) 2002-2010, by ionCube Ltd., and with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
Включаем server-status
В конфигурационном файле уберем комментарии:
ExtendedStatus On SetHandler server-status Order deny,allow Deny from all Allow from .example.com
Устанавливаем значение Allow from Ваш_IP
Заходим на страницу http://IP.IP.IP.IP/server-status
Можно посмотреть какая загрузка на apache и к каким сайтам идет больше всего запросов, пригодиться при маленьком DOS
Установка mod_evasive
Скачиваем модуль
# wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
Распаковываем модуль
# tar xvf mod_evasive_1.10.1.tar.gz
Устанавливаем http-devel, вдруг не установлен
# yum -y install httpd-devel
Устанавливаем mod_evasive
# /usr/sbin/apxs -i -a -c mod_evasive20.c
Добавляем в httpd.conf
DOSHashTableSize 3097 DOSPageCount 5 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10
DOSPageCount: число запросов к одной странице от одного и того же IP в течение указаного интервала времени.
DOSSiteCount: число запросов ко всем страницам домена, т.е если поступило более 50-ти запросов с одного ip на разные страницы домена – тогда такой ip будет заблокирован.
DOSPageInterval: Интервал для директивы DOSPageCount (в секундах)
DOSSiteInterval: Интервал для директивы DOSSiteCount (в секундах)
DOSBlockingPeriod: На сколько заблокировать ip (в секундах)
Перезапускаем httpd
Проверяем ( в комплекте идет perl скрипт)
# chmod +x test.pl # ./test.pl HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 403 Forbidden HTTP/1.1 403 Forbidden HTTP/1.1 403 Forbidden HTTP/1.1 403 Forbidden HTTP/1.1 403 Forbidden