Archive

Archive for the ‘Linux’ Category

Внедрение nginx на примере работающего сервера с Centos 6.2

April 7th, 2012 1 comment

Сегодня будем рассматривать оптимизацию посредством внедрения nginx .

Изначальные условия: работающий сервер на centos 6.2, на котором стоит apache+php+mysql и несколько расширений и модулей для php, на которых мы заостряться не будем. На сервере крутится ~25 сайтов настроенных как virtual hosts.

Появилась необходимость настроить nginx как frontend и apache как backend соответственно. Последняя стабильная версия nginx оказалась в репозитории epel, который надо подключать отдельно. К сожалению там не оказалось по умолчанию некоторых модулей, и было принято решение собирать nginx самостоятельно. Для удобства, а так же в целях удобства администрирования было решено собирать rpm из src.rpm. Это даст нам возможность пересобрать пакет, если нас что-то не устроит, безболезненно его удалить, а так же не упустить никаких зависимостей пакета. В пакетных дистрибутивах, будь то rpm-based или deb-based, всегда рекомендуется установка из пакетов.

Для начала подключим репозиторий EPEL командой:

# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm

# rpm –import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL

Затем включим репозиторий с пакетами исходников, отредактировав файл /etc/yum.repos.d/epel.repo

# nano /etc/yum.repos.d/epel.repo

В секции epel-source меняем значение enabled=1 .

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

# yum install yum-utils rpmdevtools gcc make

Скачиваем исходники пакета:

# yumdownloader –source nginx

Пакет скачается в директорию в которой мы находимся. Установим его:

# rpm –ivh nginx -1.0.14-1.el6.src.rpm

Не стоит пугаться сообщений вида:

warning: user mockbuild does not exist – using root

warning: group mockbuild does not exist – using root

Для нашей задачи эти уведомления никакой роли не играют. Ошибки здесь тоже никакой нет.

Установим зависимости исходников для сборки:

# yum-builddep nginx -1.0.14-1.el6.src.rpm

У нас появилась папка rpmbuild, а в ней папка SPECS, а в ней nginx.spec, отредактируем его:

# nano ~/rpmbild/SPECS/nginx.spec

Редактируем по своему желанию, а можем и оставить как есть.

Приступаем к сборке:

# rpmbuild -ba ~/rpmbuild/SPECS/nginx.spec

# cd ~/rpmbuild/RPMS/x86_64/

# ls –l

А вот и наш готовый пакет. Устанавливаем:

# rpm -ivh nginx-1.0.14-1.el6.x86_64.rpm

Первая часть закончена. Остается настроить.

Read more…

Установка ядра 3.2 на Debian Squeeze

April 3rd, 2012 2 comments

Разработчики Debian, а конкретно те, кто отвечает за проект backports, иной раз решили нас порадовать, выпустив ядро 3.2.0 в своем репозитарии. Итак, поехали.

Если в Ваш sources.list не добавлен репозитарий Backports – то самое время это сделать:

# echo “deb http://backports.debian.org/debian-backports squeeze-backports main” >> /etc/apt/sources.list

Обновляем кеш репозитариев. Для исключения разного рода проблем рекомендую перед установкой ядра проапгрейдить систему.

# aptitude update && aptitude -y upgrade

Ищем новое ядрышко, для того, что бы выбрать нужное под Вашу архитектуру:

# aptitude search linux-image-3

В нашем распоряжении:

linux-image-3.2.0-0.bpo.1-486
linux-image-3.2.0-0.bpo.1-686-pae
linux-image-3.2.0-0.bpo.1-686-pae-dbg
linux-image-3.2.0-0.bpo.1-amd64
linux-image-3.2.0-0.bpo.2-486
linux-image-3.2.0-0.bpo.2-686-pae
linux-image-3.2.0-0.bpo.2-686-pae-dbg
linux-image-3.2.0-0.bpo.2-amd64
linux-image-3.2.0-0.bpo.2-rt-686-pae
linux-image-3.2.0-0.bpo.2-rt-686-pae-dbg

Выбираем необходимое нам ядро, исходя из архитектуры вашего ПК выберите нужное Вам ядро. Мне подошло 3.2.0-0.bpo.2-686-pae. Приставка -pae означает платформу x86, но которая при этом поддерживает более 4 гб оперативной памяти. Устанавливаем ядро. Будьте внимательны с зависимостями!

# aptitude install linux-image-3.2.0-0.bpo.2-686-pae

Aptitude предупредит нас о том, что необходимо решить зависимости. Поскольку, пакеты initramfs-tools и linux-base старой версии, то их необходимо подтянуть из Backports. При первом запросе отказываемся от установки ядра со старыми версиями пакетов, нажав “n”

Следующие НОВЫЕ пакеты будут установлены: libc6-i686{a} linux-image-3.2.0-0.bpo.2-686-pae{b} 0 пакетов обновлено, 2 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено. Необходимо получить 24,1 MB архивов. После распаковки 92,7 MB будет занято. Следующие пакеты имеют неудовлетворённые зависимости: linux-image-3.2.0-0.bpo.2-686-pae: Зависит: linux-base (>= 3~) но установлен 2.6.32-41squeeze2 Ломает: initramfs-tools (< 0.99~) но установлен 0.98.8 Следующие действия разрешат зависимости: Сохранить для следующих пакетов их текущие версии: 1) linux-image-3.2.0-0.bpo.2-686-pae [Не установлен]   Принять данное решение? [Y/n/q/?] n

Далее Aptitude предложит нам обновить эти два пакета непосредственно из Backports, с чем мы и соглашаемся:

Следующие действия разрешат зависимости: Обновить следующие пакеты: 1) initramfs-tools [0.98.8 (now, stable) -> 0.99~bpo60+1 (squeeze-backports)] 2) linux-base [2.6.32-41squeeze2 (now, stable) -> 3.4~bpo60+1 (squeeze-backports)]   Принять данное решение? [Y/n/q/?] Y

Ну, тут понятное дело, тоже соглашаемся.

Следующие НОВЫЕ пакеты будут установлены: libc6-i686{a} linux-image-3.2.0-0.bpo.2-686-pae Следующие пакеты будут обновлены: initramfs-tools linux-base 2 пакетов обновлено, 2 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено. Необходимо получить 24,2 MB архивов. После распаковки 92,5 MB будет занято. Хотите продолжить? [Y/n/?] Y

Перезагружаемся, наслаждаемся новым ядром. Стоит учесть, что для нового ядра отсутствует nvidia-kernel, virtualbox и еще некоторые модули для ядра. Однако, если вы используете драйвера vesa, или хотите обновить ядрышко для сервера – то ничего страшного не произойдет. Если после установки возникли проблемы с видеодрайверами – удалите, а еще лучше переименуйте xorg.conf.

Удачи! 🙂

 

Установка Wine 1.1.42 на Debian Squeeze

April 2nd, 2012 2 comments

Версия Wine в main репозитариях Squeeze, мягко говоря, устарела. Что бы это исправить – подключим репозитарий Lamaresh – в нем содержится более новая версия – 1.1.42, в который список поддерживаемых приложений значительно больше.

Учитывая наш дистрибутив (поддерживаются lenny, squeeze и sid), добавляем репозитарий в sources.list:

# echo “deb http://www.lamaresh.net/apt squeeze main”  >> /etc/apt/sources.list

Удаляем старую версию Wine:

# aptitude remove libwine wine

Обновляем кеш репозитариев:

# aptitude update

Устанавливаем новый Wine:

# aptitude install wine wine-gecko

Готово. 🙂

Ставим актуальный iceweasel 11 (firefox) на debian squeeze

March 21st, 2012 5 comments

Пользуясь Debian Squeeze, мы делаем свою работу безопасней, из-за политики выпуска обновлений. С одной стороны это плюс – к нам постоянно приходят заплатки, которые не дают системе сбоить. Этот плюс является одновременно и минусом: версии программ, заключенные в пакеты в ветке stable останутся теми же, что и в день выпуска системы, как это не печально. Соответственно, iceweacel как и был 3.5.16 – так им и останется. Специально для этого разработчиками Debian был придуман проект backports – репозитарий, содержащий в себе откомпилированные под стабильные библиотеки новые версии программ. Сегодня мы обновим iceweacel 🙂

Итак, для начала установим ключик с репозитария mozilla:

# wget http://mozilla.debian.net/pkg-mozilla-archive-keyring_1.0_all.deb

Установим скачанный нами пакет:

# dpkg -i pkg-mozilla-archive-keyring_1.0_all.deb

Добавим в sources.list парочку строчек:

# echo “deb http://backports.debian.org/debian-backports squeeze-backports main”  >> /etc/apt/sources.list
# echo “deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free”  >> /etc/apt/sources.list
# echo “deb http://mozilla.debian.net/ squeeze-backports iceweasel-release”  >> /etc/apt/sources.list

Обновим список репозитариев:

# aptitude update

Удалим существующую версию iceweasel:

# aptitude -y purge iceweasel

Устанавливаем новую версию iceweasel:

# aptitude – y install -t squeeze-backports iceweasel iceweasel-l10n-ru

Всё, теперь у Вас установлен актуальный iceweasel, который на помент написания статьи был 11.0 🙂 Удачи!

Автоматизируем процесс настройки системы с помощью bash-скриптов

March 19th, 2012 No comments

Итак, я всем давно обещал рассказать про то, какая же замечательная эта вещь – bash-скрипты. Они могут использоваться во многих целях: для автоматизации первичной настройки системы, для выполнения бекапов, для автоматизации обслуживания серверов и для многих других полезных вещей.

Итак, сегодня я покажу как написать bash-скрипт на примере сборки nginx из исходных кодов. В этом способе есть плюсы и минусы: плюс – всё прозрачно и легко настраиваемое, минус – привязка к дистрибутиву и его версии.

Итак, что делает скрипт: он удаляет старую версию nginx, (если такая есть) причем не важно, собирался ли он из исходных кодов, или устанавливался из *deb-пакета – старая версия всё равно будет удалена. Далее – ставит и/или обновляет необходимые для сборки пакеты (очень удобно в том случае, если ранее стоял просто *deb-пакет). Далее скрипт скачивает с официального сайта пакет с исходниками nginx, конфигурирует их, компилирует и устанавливает, после чего стартует службу и  прописывает ее в rc.d 🙂

Read more…