Как добавить XSL без пересборки php на сервере с DirectAdmin

Если после сборки остался каталог с исходниками php, то включить модуль довольно просто:

# cd /usr/local/directadmin/custombuild
# cd php-5.2.12/ext/xsl
# phpize
# ./configure
# make && make install

после чего, модуль xsl.so будет находится в /usr/local/lib/php/extensions/no-debug-non-zts-20060613

Добавляем в php.ini

extension=xsl.so

И напоследок делаем "мягкий" рестарт апача:

apachectl graceful

Exim + Greylist + Directadmin

В предыдущей статье я описывал как ставил грейлист  на тазик с панелью directAdmin на CentOS-е.

Нашел время написать как я ставил greylist  под Debian
Итак, имеем: Debian Lenny, DirectAdmin, exim из комплекта панели. Потребуется установить демон greylistd и после чуть подправить конфиг ексима.
Приступаем:

aptitude update
aptitude install  greylistd

Теперь необходимо поправить конфиг ексима. Ищем первый accept  в acl_smtp_rcpt и добавляем перед ним:
[eng]Now need to change exim.conf. Find first 'accept' in 'acl_smtp_rcpt' and add before:

# GreyListing
    defer   message    = Sender verification for $sender_host_address in progress. Please try later.
        log_message    = greylisted.
        !senders       = :
        !hosts         = : +relay_hosts : +whitelist_hosts : +whitelist_hosts_ip
        !authenticated = *
        !domains       = : ${if exists {/etc/greylistd/skip-greylist}\
                                 {/etc/greylistd/skip-greylist}{}}
        domains        = +local_domains : +relay_domains
        verify         = recipient/callout=20s,use_sender,defer_ok
        condition      = ${readsocket{/var/run/greylistd/socket}\
                            {--grey \
                                  $sender_host_address \
                                  $sender_address \
                                  @$domain}\
                              {5s}{}{false}}
    deny   message = $sender_host_address is blacklisted
        log_message = blacklisted.
        !senders       = :
        !authenticated = *
        verify         = recipient/callout=20s,use_sender,defer_ok
        condition      = ${readsocket{/var/run/greylistd/socket}\
                                 {--black \
                                  $sender_host_address \
                                  $sender_address \
                                  $local_part@$domain}\
                                 {5s}{}{false}}

Далее, ищем в ACL acl_smtp_data первый accept и вставляем перед ним:
Next, find first 'accept' in ACL acl_smtp_data and add before this code:

     defer
        message        = Sender verification for $sender_host_address in progress. Please try later.
        log_message    = greylisted.
        senders        = :
        !hosts         = : +relay_hosts : +whitelist_hosts : +whitelist_hosts_ip
        !authenticated = *
        condition      = ${readsocket{/var/run/greylistd/socket}\
                                 {--grey \
                                  $sender_host_address \
                                  $recipients}\
                                  {5s}{}{false}}
    deny
        message = $sender_host_address is blacklisted from delivering \
                     mail from <$sender_address> to <$recipients>.
        log_message   = blacklisted.
        !senders       = :
        !authenticated = *
        condition      = ${readsocket{/var/run/greylistd/socket}\
                                 {--black \
                                  $sender_host_address \
                                  $recipients}\
                                  {5s}{}{false}}

В файле /etc/greylistd/skip-greylist можно прописать домены (локальные) для которых не включать грейлистинг. Формат файла простой - один домен на строчку.
Вот собственно все.

In file /etc/greylistd/skip-greylist you can write whitelisted domains. One domain per line.

Если будет свободное время, напишу как прикрутить DSPAM  + Exim + Directadmin

nginx 0.8.20 для Debian Lenny

Собрал для Debian Lenny deb-пакет.

Что нового в 0.8.20 версии:

*) Изменение: теперь по умолчанию используются следующие шифры SSL:
"HIGH:!ADH:!MD5".

*) Исправление: модуль ngx_http_autoindex_module не показывал последний
слэш для линков на каталоги; ошибка появилась в 0.7.15.

*) Исправление: nginx не закрывал лог, заданный параметром конфигурации
--error-log-path; ошибка появилась в 0.7.53.

*) Исправление: nginx не считал запятую разделителем в строке
"Cache-Control" в строке заголовка бэкенда.

*) Исправление: nginx/Windows мог не создать временный файл, файл в
кэше или файл с помощью директив proxy/fastcgi_store, если рабочий
процесс не имел достаточно прав для работы с каталогами верхнего
уровня.

*) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
FastCGI-сервера не скрывались при кэшировании, если не
использовались директивы fastcgi_hide_header с любыми параметрами.

*) Исправление: nginx неверно считал размер кэша на диске.

Взять можно тут

Также собрал пакет, в который включены патчи, позволяющие использовать:
переменные $crc32_name и $md5_name
переменные $loadavg_1m, $loadav_5m, $loadavg_15m
А также использовать оперраторы < !< > !> в if-условиях

За патчи отдельное спасибо Кириллу Коринскому

Пакет можно взять тут

nginx 0.8.15

Собрал свежую версию nginx для Дебиан-а.  Пакет собран с опциями:

--with-mail
--with-mail_ssl_module
--with-http_stub_status_module
--with-http_flv_module
--with-http_ssl_module
--with-http_dav_module
--with-http_sub_module
--with-http_realip_module
--with-http_gzip_static_module
--with-debug

Также в сборку включены два  патча Кирилла Коринского,  который выдает 503 ошибку в случае превышения заданного в конфиге значения load average

Взять можно тут

CSF FireWall + DirectAdmin

ConfigServer сделали интеграцию CSF фаирвола с панелью управления хостингом DirectAdmin.

При установке скрипт проверяет необходимые параметры и сам интегрируется в администртивную часть DirectAdmin-а. Все просто и удобно. Настройки CSF фаирвола будут доступны для редактирования в административной части хостинг-панели.

Итак, устанавливаем:

wget http://www.configserver.com/free/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

После установки запускем скрипт для проверки необходимых модулей в iptables:

# perl /etc/csf/csftest.pl
Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing ipt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK

RESULT: csf should function on this server

При установке скрипт автоматически делает преднастройку первоначального конфигурационного файла.
После инсталляции можно приступить к более тонкой настройке параметров либо прямо в файле /etc/csf.conf, либо в панели управления.
Скиншоты GUI посмотреть можно тут, тут и тут

CSF великолепно работает как с панелями так и без них, CSF Firewall интегрируется в такие панели как: Cpanel, DirectAdmin, Webmin

Nginx как проксирующий фронт-енд к Apache

Что имеем:

Самый обычный набор namebased хостинг-провайдера:
- apache 1.3.x
- DirectAdmin
- на сервер на базе CentOS 5.x и тормоза при отдаче страниц клиентам

Что получим:
- Nginx в качестве фронт-енда для Апачи
- автосоздание конфигов для виртуал.хостов из Directadmin
- ограничение количества коннектов с одного IP
- ощутимое снижение нагрузки на сервер и на Apache

Установка nginx.
Скачиваем стабильную ветку (на момент написания 0.6.32 - последняя стабильная версия) :
# wget http://sysoev.ru/nginx/nginx-0.6.32.tar.gz
# tar -zxvf ./nginx-0.6.32.tar.gz
# cd nginx-0.6.32

в файле configure указываем нужные модули, а неиспользуемые лучше отключить. Большое количество модулей немного замедляет работу nginx.
У меня nginx собирается такой:

cat ./myconfigure
#!/bin/sh
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/bin \
--without-http_ssi_module \
--without-http_auth_basic_module \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module \
--user=apache \
--group=apache \
--with-http_stub_status_module \
--with-http_realip_module \
--without-http_charset_module \
--without-http_memcached_module \
--without-http_upstream_ip_hash_module \
--without-http_browser_module \
--with-http_flv_module \
--with-http_sub_module \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log

# ./myconfigure
....
# make ; make install

Далее надо будет настроить конфиг nginx и шаблоны апачевского конфига от директадмина
...
Будет больше времени, допишу как это все это сделал....