Одновременная установка php5 и php4 на freeBSD
На FreeBSD можно собрать одновременно PHP5 и PHP4. Разумеется, в разных директориях.
И модуль апача только у одного будет.
- Собираем как обычно PHP5.
- Создаём директорию /usr/local/php4
- Ставим php4:
make -C /usr/ports/lang/php4 PREFIX=/usr/local/php4 install clean - Ставим расширения:
make -C /usr/ports/lang/php4-extensions PREFIX=/usr/local/php4 PHPBASE=/usr/local/php4 install clean
Портам сцыкотно
Ставлю апач на FreeBSD.
Захожу в /usr/ports/www/apache22 , пишу make install, на что мне выдаёт, что стоит libtool версии 1.5, а нужен libtool версии 2.2. Типа, поставьте.
Иду в /usr/ports/devel/libtool22 , пишу make install clean, всё спокойно ставится.
Иду снова ставить апач – ставится.
В чём была проблема поставить нужный libtool по зависимости – непонятно.
Такое ощущение, портам стало сцыкотно поставить libtool и они послали меня этим заниматься.
Так и видится: “начальника, я боюсь эту каку трогать, поставь сам, а”.
Бэкап файла /etc/group
Для меня оказалось открытием, что FreeBSD автоматически бэкапит /etc/master.passwd, /etc/group и что-то ещё. Хранятся копии файлов после 2-х последних правок в /var/backups.
UPDATED: Бэкапится не после правок, а раз в сутки.
А то на одном из “подведомственных” серверов в /etc/group оказался каким-то образом /etc/named.conf
И на старуху бывает проруха
Отрелизилась FreeBSD 7.2. Но при сборке ядра всё отваливалось с ошибкой.
cc -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -Werror /usr/src/sys/dev/ath/if_ath.c -I/usr/src/sys/dev/ath
/usr/src/sys/dev/ath/if_ath.c: In function 'ath_rx_tap':
/usr/src/sys/dev/ath/if_ath.c:3414: error: 'const struct ath_rx_status' has no member named 'rs_flags'
/usr/src/sys/dev/ath/if_ath.c:3416: error: 'const struct ath_rx_status' has no member named 'rs_flags'
После гугления и чтения /usr/src/UPDATING, закомментировал в конфиге ядра строку
device ath_hal
а заодно и прочее, что было связано с atheros (отхерос).
После чего всё собралось.
Данные сетевые карты прямо не могут не доставлять проблем различным unix. Об этом я уже писал в заметках, связанных с установкой linux на ноут.
Перенос почты с mbox на maildir(sendmail+dovecot)
Встал вопрос миграции. Зачем? Использую я для почты и сайта VDS, он маленький, памяти мало. Почты много. Периодически возникает такая проблема: я долго не проверял почту с одного из компьютеров, и начинаю её качать (за пару дней может быть до 20 мегабайт почты). В то время, пока я качаю почту, новые сообщения в mbox не кладутся, и процессы mail.local висят в памяти, ждут своего часа. Периодически они забивают всю память и становится плохо. Вот чтобы этого не было, я решил использовать maildir.
Лучшее – враг хорошего или странности с PF
На шлюзе у меня в качестве файрвола, шейпера, и собственно NAT`а работает PF.
Сегодня ради кое-каких экспериментов на внешний IP шлюза повесил алиас. Само по себе это не страшно так как за шлюзом стоит модем в режиме роутера.
Но начали происходить “странные” вещи.
Я почти не мог достучаться по http, по pop и т.п. по TCP протоколам.
Но, при этом с самого сервера всё работало нормально.
На помощь пришёл tcpdump. Натравил я его на 110 порт, и стал телнетиться.
А увидел я там следующее. NAT подставлял алиас в качестве адрес отправителя, вместо основного IP. Но этот алиас был абсолютно из другой сети, и повешан был ради опытов.
Модем ответные пакеты отправлял на него, но так как этот IP из другой сети, пакеты никуда не приходили.
Почему NAT делал так мне было ясно. В конфиге PF нат определялся такой строкой
nat on $ext_if from $lan to !$lan -> ($ext_if)
Скобки означаю, что в качестве адреса подставлять надо любой адрес на интерфейсе ext_if. Сделана эта возможность для динамических IP, чтобы не было необходимости каждый раз при изменении IP, перечитывать конфиг.
Я убрал алиас с интерфейса. Вот тут и началось интересное. PF продолжал подставлять его адрес. Я перечитал правила PF – ничего не изменилось. PF и сервак перезапускать не хотелось. Изменил строку в конфиге на такую
nat on $ext_if from $lan to !$lan -> $ext_if
, перечитал правила – всё стало нормально.
Где PF закэшировал IP алиаса – загадка…
(подробнее о настройке PF можно почитать в этой записи)
Думы об антиспаме
Выкачивая каждый день по несколько мегабайт спама, пришёл к выводу, что мне это надоело.
99% спама честно фильтруется моим bogofilter`ом в kmail`е и кладётся в корзину.
Но, во-первых у меня есть вредная привычка читать иногда этот спам от скуки (кто-то логи от прокси читает, а я вот спам). А во-вторых я просто не хочу даже видеть эту гадость у себя на компе.
Выход – фильтрация спама на сервере.
Но тут есть одна проблема – 99% почты я получаю не на сам этот сервер. На него идёт лишь пересылка. Поэтому простые традиционные методы (dnsbl и greylisting) мне не подходят. Сижу думаю, что можно придумать.
Хочу прикрутить тот же bogofilter, но надо это сделать так, чтобы не делать потом лишних телодвижений для его переобучения или для вытаскивания нужной почты из спама.
Считаем траффик во FreeBSD
Решил я завести у себя дома аналог статистики netflow для циски. То есть сбор данных о проходящих через сеть пакетах (откуда, куда, размер). Циски у меня нету, а статистику иметь охота.
Рассмотрим установку и эксплуатацию на FreeBSD 7.0
Читать полностью »
Динамический шейпинг во FreeBSD на основе PF
Как и обещал, расскажу об устройстве собственно NAT`а на шлюзе. Но не простого NAT`а, а ещё и с шейпингом. Но не с простым шейпингом, а динамическим. То есть, при отсутствии активности одного из компутеров в интернете, весь канал будет отдаваться другим.
Читать полностью »
Шлюз на FreeBSD
Для начала, для чего он нужен и что должен уметь
- Раздача интернета. То есть нат
- Наиболее простой способ подключения компутера к сети. Без запоминания или ручного ввода каких-либо параметров. Короче DHCP сервер
- Уменьшить задержку на DNS, а заодно и скрыть от юзера адреса DNS провайдера. Короче кэширующий DNS сервер.


