ruX's mind

Live is a challenge ;-)

Июль-17-11

Debian: php-fpm в Squeeze

posted by ruX

Ах эти мейнтейнеры Дебиана! Обещали оставить в сквизе php-fpm, но опять появились баги тараканы в голове – вэб разработчики и сисадмины как и прежде используют глючные сборки от dotdeb, если вообще не пересобирают руками весь php.

Read the rest of this entry »

Интересная ситуация: будь то хардкорный 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
</rux>

А в чём собственно проблема? Почему не работает из каробки?
Read the rest of this entry »

Набросал простой скрипт, для удобного создания VirtualHost в debian.

Наверное тоже надоело лесть, создавать vhost по существующему, править пути, перезапускать сервер и так много раз и по кругу? А ещё не хватало опечататься?

Предлагаю такое решение: скрипт, делающий всю эту рутинную работу. Принимает только 1 аргумент – имя сайта и сам создаёт скелет и VirtualHost по шаблону.

В каталоге с сайтами создаётся папка с указанным именем. В ней – ещё 2 папки – log и www – для логов и сайта соответственно. А так же vhost – файл с описанием виртуального хоста по шаблону, лежащему в папке с сайтами. На этот файл создаётся симлинк в стандартное для дебиановского апача место – /etc/apache2/sites-avalable. После установки прав на созданные папки происходит вызов a2ensite и перезапуск апача. На скриншоте выше – кусочек такого скелета который получился после работы скрипта – из наутилуса

Read the rest of this entry »

Май-1-10

Debian: установка из asplinux

posted by ruX

После долгих раздумий решил поменять древнющий 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.

Перед тем, как чрутится нужно для дебиана подготовить окружение – подмонтировать в него файловую систему ядра и устройств:

# cd /media/debian/
# mount -t proc proc proc
# mount -o bind /dev/ dev

После этого заклинания можно идти в новоиспечённый деби.

# 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

Для тех, кто пока не знает – 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

файлы, которые бы были установленны в дебиане, будут распакованны в текущую папку.

Октябрь-4-09

Debian: обновление MySQL 5.0 к 5.1

posted by ruX

Обновил наконец в сквизе мускул, и вот что вылезло:

Настраивается пакет 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

Read the rest of this entry »

Июнь-19-09

Смена дефолтной jvm в debian

posted by ruX

Чтоб изменить виртуальную машину ява(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      ручной режим

Read the rest of this entry »

Tags:

Для меня было совершенно не ожиданно, что по умолчанию loopback интерфейс опущен “изкаропки”

Read the rest of this entry »

Февраль-28-09

Установка madwimax в debian sid

posted by ruX

Дебиан(sid, x86) поставил, а интернет туда не пробросил: нужны драйвера для wimax-модема sumsung SWC-U200 для yota. К моменту поста вышла новая версия драйверов madwimax-0.1 (надо сказать что драйвер madwimax-0.0.2 до сих пор отлично работает).

Устанавливать драйвер буду из под chroot’а системы основной openSuSE 10.3 x86, ибо тут интернет есть

Read the rest of this entry »

Tags: , ,
Февраль-22-09

Установка Debian sid ia64 из openSUSE x86

posted by ruX

Надумал чисто из за интереса посмотреть что из себя представляет разхвалённые кеды 4.2, да и вообще дебиан
Ставить буду из живой суси, используя debootstrap & chroot
Read the rest of this entry »

Tags: ,