Ах эти мейнтейнеры Дебиана! Обещали оставить в сквизе php-fpm, но опять появились баги тараканы в голове - вэб разработчики и сисадмины как и прежде используют глючные сборки от dotdeb, если вообще не пересобирают руками весь php.
debian
sendmail: не доходит почта свой домен
Интересная ситуация: будь то хардкорный sendmail или exim - почта уходит в интернеты на ура - на разные домены, кроме своего. Предполагается, что вы используете чужую почту, будь то гугл или яндекс, или что нить ещё, привязанную на ваш домен.
Возникает обычно ошибка наподобие:
Feb 8 22:14:54 domain sendmail[14575]: p18JEqq8014575: to=rux@domain.com,
ctladdr=www-data (33/33), delay=00:00:02, xdelay=00:00:01,
mailer=relay, pri=30937, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.1, stat=User unknown
Feb 8 22:14:55 domain sm-mta[14580]: p18JEstD014580: <rux@domain.com>... User unknown
А в чём собственно проблема? Почему не работает из каробки?
Apache: быстрое добавление сайтов
Набросал простой скрипт, для удобного создания VirtualHost в debian.
Наверное тоже надоело лесть, создавать vhost по существующему, править пути, перезапускать сервер и так много раз и по кругу? А ещё не хватало опечататься?
Предлагаю такое решение: скрипт, делающий всю эту рутинную работу. Принимает только 1 аргумент - имя сайта и сам создаёт скелет и VirtualHost по шаблону.
В каталоге с сайтами создаётся папка с указанным именем. В ней - ещё 2 папки - log и www - для логов и сайта соответственно. А так же vhost - файл с описанием виртуального хоста по шаблону, лежащему в папке с сайтами. На этот файл создаётся симлинк в стандартное для дебиановского апача место - /etc/apache2/sites-avalable. После установки прав на созданные папки происходит вызов a2ensite и перезапуск апача. На скриншоте выше - кусочек такого скелета который получился после работы скрипта - из наутилуса
Debian: установка из asplinux
После долгих раздумий решил поменять древнющий ASPLinux 9, который честно отработал на протяжении почти пяти лет, на дебиан на домашнем сервере. На то было куча причин - бОльшая часть программ и библиотек собранны руками, софт морально устарел, многих новых фишек не хватает очень сильно, большие сомнения в безопасности - а сервер смотрит в интернет, дефолтная кодировка в то время для ASP была win-1251, да и вообще.. это моя первая нормальная установка линукса)..
0. Начало
Подключать монитор к нему - последнее дело, он находится в очень труднодоступном месте. Вся установка будет происходить через интернет - я физически не дома в момент написания поста и установки.
Из этого следует, что установка будет прямо из живой системы - с помощью утилиты, которая помогает создавать окружение установщика debian - debootstrap. Учтите, что должен быть установлен chroot.
Прежде всего, нужно её установить, для этого скачаем её и её библиотеки от которых она зависит и распакуем эти пакеты прямо в корень живой asplinux:
# cd /tmp
# wget http://mirrors.kernel.org/debian/pool/main/c/cdebootstrap/cdebootstrap_0.5.4_i386.deb
# wget http://ftp.cl.debian.org/debian/pool/main/libd/libdebian-installer/libdebian-installer-extra4_0.61_i386.deb
# wget http://ftp.egr.msu.edu/debian/pool/main/libd/libdebian-installer/libdebian-installer4_0.61_i386.deb
# wget http://ftp-mirror.internap.com/pub/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2009.01.31_all.deb
# cd /
# ar p /tmp/cdebootstrap_0.5.4_i386.deb data.tar.gz | tar xz
# ar p /tmp/libdebian-installer-extra4_0.61_i386.deb | tar xz
# ar p /tmp/libdebian-installer4_0.61_i386.deb | tar xz
# ar p /tmp/debian-archive-keyring_2009.01.31_all.deb data.tar.gz | tar zx
1. Разбивка дисков
Установка будет происходить на тихий внешний жёсткий диск, в моём случае на раздел /dev/sda2, с файловой системой ext3, который я предварительно подмонтировал в /media/debian/. Места выделил аж 22Гб, зачем то много так..
Форматирование в ext3 (БУДЬТЕ ВНИМАТЕЛЬНЫ - смотрите что выполняете!):
/sbin/mkfs.ext3 -m 2 /dev/sda2
Ах да, сервер на столько старый, что его биос не умеет хочет загружаться с "большой флешки", поэтому в моём случае отсутствует /boot раздел, ну и соответственно настройка загрузчика. Файлы ядра новой системы лежат на /boot жёсткого диска системы(старой), при этом root в аргументах ядра указывает на раздел внешнего диска(по имени раздела). Это выглядит так:
title Debian on usb-hard drive, kernel on hd0
kernel /boot/vmlinuz-2.6.26-2-686 root=LABEL=boX
initrd /boot/initrd.img-2.6.26-2-686
boot
2. Бутстрепимся. Установка базовой системы
# cdebootstrap lenny /media/debian/ --allow-unauthenticated
P: Retrieving Release
P: Retrieving Release.gpg
P: Validating Release
W: Couldn't validate Release!
P: Parsing Release
P: Retrieving Packages.gz
. . . .
Пошло вообщем :) Можно идти долго чай пить
. . . .
P: Deconfiguring helper cdebootstrap-helper-makedev
P: Writing apt sources.list
P: Writing hosts
P: Writing resolv.conf
На этом установку базовой системы можно считать завершённой.
3. Chroot
Теперь в /media/debian есть система.. но этого мало, нам необходимо её настроить до перезагрузки в неё. Для этого воспользуемся chroot.
Перед тем, как чрутится нужно для дебиана подготовить окружение - подмонтировать в него файловую систему ядра и устройств:
# chroot /media/debian
boX:/#
Вот и промт виден, уже от дебиана.
Теперь важно не запутаться в системах. Лучше всего разнести консоли реальной системы и устанавливаемой в разные окна. Или разные скрины. Или сделать кастомные промты. Кому как нравиться. Я же для наглядности буду указывать в промте систему.
4. Настройка базовой системы
В установленной системе нет даже fstab. Создадим его, каждый по своему вкусу
debian# nano /etc/fstab
У меня вот так получилось, для начала:
/dev/sda2 / ext3 defaults 0 1
proc /proc proc defaults 0 0
Вдаваться в подробности тут не буду - тем, кто устанавливает систему из чрута наверняка понятно, как нужно заполнять этот файл. А кто не знает - гугл на разных языках расскажет как.
5. Настройка сети
Тут всё стандартно для дебиана. Процетирую что у меня, как пример.
debian# cat /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.11
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.53
auto lo
iface lo inet loopback
DNS скопировал бутстрэп:
boX:/# cat /etc/resolv.conf
search boX
nameserver 127.0.0.1
nameserver 192.168.0.53
nameserver 212.44.94.254
(Для ясности - в том числе у меня и днс форвардер с локальной зоной)
Указываем репозитарии и обновляем их и сразу же то, что у нас уже есть:
debian# cat /etc/apt/sources.list
deb http://ftp.debian.org/debian lenny main contrib non-free
deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main
debian# apt-get update
debian# apt-get upgrade
И конечно же не забываем установить пароль рута в новой системе, а так же добавить пользователей по вкусу.
debian# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
6. Установка софта
Тут сам каждый решает, что нужно. По мне вот так:
debian# apt-get install apache2 php5 php5-cli php5-gd php5-mysql \
php5-xmlrpc phpmyadmin mysql-server bind9 dhcp3-server watch \
sun-java6-jre openssh-server bridge-utils openvpn iodine eggdrop \
rtorrent ziproxy dvbtune dvbstream dvb-apps ppp subversion \
sunversion-tools psmisc ddns3-client links2 nmap mrtg hdparm \
screen
7. Грабли
Разумеется, во время настройки системы появляются много специфичных ошибок которые устраняются моментально, а иногда попадаются такие гадостные, что убивают достаточно много времени на понимание их проблемы. Несколько их выпишу.
Как я писал выше - мне требуется загрузить систему с внешнего жёстого диска. На то, чтоб отладить этот механизм пришлось несколько раз перезагрузится.
Автоматическое поднятие интерфейса lo помогло мне сохранить много времени - с этим я сталкивался ранее в другой системе, когда сложно понять почему демоны вроде и поднимаются а вроде и не работают, причём не всегда очевидно что не может прибинтится к хосту
8. Итого
Постарался описать многое, разумеется не всё охватил. Самые основные моменты только, идею.
UPD:
Всё нормально работет, внутренний(старый) принудительно ставлю в режим сна, т.к. он излишне шумит и не используется практически. В /etc/crontab добавить:
# remove hdd noise :)
0,30 23,0-8 * * * root /sbin/hdparm -S 2 /dev/hdc
0,30 9-22 * * * root /sbin/hdparm -S 10 /dev/hdc
Linux: распаковка deb пакета
Для тех, кто пока не знает - deb пакет - всего лишь архив
Бывает необходимость распаковать такой пакет. Причин может быть много - кто то хочет установить debootstrap, а кто то просто картинки вытащить. Есть несколько вариантов как это сделать.
Если у вас уже debian - просто выполните( для распаковки eXtract, а не установки)
$ dpkg -x package.deb
Для не debian-based систем можно воспользоваться утилитой ar:
$ ar vx package.deb
И скорее всего, вам понадобиться архив data.tar.gz внутри пакета(в котором лежат файлы, которые будут установленны). Чтоб распаковать "за раз" можно выполнить:
$ ar p cdebootstrap_0.5.4_i386.deb data.tar.gz | tar zx
файлы, которые бы были установленны в дебиане, будут распакованны в текущую папку.
Debian: обновление MySQL 5.0 к 5.1
Обновил наконец в сквизе мускул, и вот что вылезло:
Настраивается пакет mysql-server-5.1 (5.1.37-2) ... Устанавливается новая версия файла настройки /etc/init.d/mysql ... * Stopping MySQL database server mysqld [ OK ] * Starting MySQL database server mysqld [fail] * Please take a look at the syslog
Смена дефолтной jvm в debian
Чтоб изменить виртуальную машину ява(jvm) по умолчанию можно воспользоваться утилиткой update-alternatives
У меня вот так:
update-alternatives --config java Есть 4 вариантов для альтернативы java (предоставляет /usr/bin/java). Выбор Путь Приор Состояние ------------------------------------------------------------ 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 автоматический режим 1 /usr/bin/gij-4.3 43 ручной режим 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 ручной режим * 3 /usr/lib/jvm/java-6-sun/jre/bin/java 63 ручной режим 4 /usr/lib/jvm/java-gcj/jre/bin/java 1042 ручной режим
Поднятие интерфейса lo в debian при загрузке
Для меня было совершенно не ожиданно, что по умолчанию loopback интерфейс опущен "изкаропки"
Установка madwimax в debian sid
Дебиан(sid, x86) поставил, а интернет туда не пробросил: нужны драйвера для wimax-модема sumsung SWC-U200 для yota. К моменту поста вышла новая версия драйверов madwimax-0.1 (надо сказать что драйвер madwimax-0.0.2 до сих пор отлично работает).
Устанавливать драйвер буду из под chroot'а системы основной openSuSE 10.3 x86, ибо тут интернет есть
Установка Debian sid ia64 из openSUSE x86
Надумал чисто из за интереса посмотреть что из себя представляет разхвалённые кеды 4.2, да и вообще дебиан
Ставить буду из живой суси, используя debootstrap & chroot