ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD

Часть 4. Archlinux: подготовка системы для использования в качестве Web-сервера

Comments

Серия контента:

Этот контент является частью # из серии # статей: ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD

Следите за выходом новых статей этой серии.

Этот контент является частью серии:ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD

Следите за выходом новых статей этой серии.

В предыдущих статьях была показана актуальность построения связки php+apache+mysql на базе известных и стабильных операционных систем, таких как наиболее популярные версии Linux и FreeBSD. В этой статье мы рассмотрим построение такой связки применительно в Archlinux. Arch – это дистрибутив GNU/Linux, который отличается от остальных не только своей легкостью и простотой, но и возможностью построения сколь угодно гибкой системы на основе исходной. Создатель дистрибутива – Джадд Винет. Имея большой опыт работы с CRUX Linux, Джадд решил сделать свой вариант Linux, но, в отличие от CRUX, Arch Linux распространяется в основном в виде готовых бинарных пакетов, более прост в установке и оптимизирован для нескольких платформ.

Arch был разработан как совершенная основа для операционной системы опытных пользователей. Это своеобразная философия, претворенная в жизнь и не имеющая каких-либо украшательств и графических утилит для конфигурирования системы в целом. Как и в CRUX, здесь потребуется определенный уровень знаний для её установки и использования. Arch Linux существенно отличается от других дистрибутивов формой выполнения стартовых скриптов. Дело в том, что он использует стиль BSD вместо System V. Это дает возможность свести все основные настройки для запуска системы, такие как имена загружаемых модулей ядра, программ-демонов, сетевых интерфейсов, а также параметров локализации, в один файл /etc/rc.conf, имеющий простой и интуитивно понятный синтаксис. В итоге, в системе фактически отсутствует понятие уровней выполнения и имеется единая основа управления запуском всех сценариев инициализации.

Установка и настройка archlinux с поддержкой php+apache+mysql.

Для начала установки необходимо скачать собственно дистрибутив с сайта производителя http://www.archlinux.org/download/, выбрав тот вариант из предлагаемых, который наиболее предпочтителен. Загрузившись с носителя (рисунок 1), можно попасть в начальное окно установщика, выполненное в духе минимализма. Для этого в командной строке необходимо набрать # /arch/setup, и после выбора метода установки перейти в главное меню (рисунок 2). При выборе метода установки с использованием установочного диска получаем доступ к пакетам без выхода в Интернет.

Рисунок 1.
Рисунок 1.
Рисунок 1.
Рисунок 2.
Рисунок 2.
Рисунок 2.

Руководство по установке не рекомендует совершать произвольные и непоследовательные шаги при выборе действий в меню установки, чтобы не сбить с толку саму программу установки и себя самого. Само главное меню – это как бы список опций, представляющий собой все этапы установки. Это подготовка жесткого диска, выбор пакетов для установки, установка пакетов, конфигурирование системы, установка системного ядра и загрузчика и выход из программы установки с перезагрузкой. На этапе подготовки жесткого диска можно воспользоваться двумя подменю. Имеется возможность активизировать «автоподготовку», которая автоматически создаст разделы /boot /swap /root и предложит их размеры по умолчанию. Можно все сделать самому, воспользовавшись встроенной командой cfdisk, выполнив ее в виде #cfdisk –P s <name of device>.

После разбиения диска на разделы, информация о которых хранится в таблице разделов в MBR, на них необходимо создать файловые системы и привязать их к точкам монтирования (высокоуровневое форматирование). Следующий шаг – выбор пакетов для установки (рисунок 3). После выбора и подтверждения источника установки (в нашем случае CD носителя) будет открыто окно выбора подкатегорий пакетов. Сама философия этого дистрибутива подсказывает, что нужно выбрать только категорию “Base”, а затем уже добавлять пакеты, исходя из наших потребностей, чтобы не иметь в ней никакого «мусора» и ненужных библиотек.

Рисунок 3.
Рисунок 3.
Рисунок 3.

Следующий этап – установка пакетов. Тут пользователю отводится роль наблюдателя. А для расширенного наблюдения можно переключиться в другую консоль по ALT-F5 для наблюдения за выводом возможных сообщений об ошибках. Следующий шаг после установки пакетов – конфигурирование системы. На этом этапе есть возможность отредактировать важные системные файлы. В самом начале будет задан вопрос, нужно ли задействовать “hwdetect” – скрипт для правильного обнаружения имеющегося оборудования, и на основе его работы продуцировать конфигурационные файлы, отвечающие за работу оборудования. Рекомендуется разработчиками.

Затем последует череда вопросов по поводу желания иметь RAID, LVM и зашифрованные разделы. Ответы на эти вопросы повлияют на конфигурирование файла mkinitcpio.conf. Если рутовый раздел будет находиться на одном из таких слайсов и на этом этапе не будет правильно сконфигурирован, то окажется недоступным при загрузке системы и неизбежно произойдет “kernel panic”, в результате чего система окажется неработоспособной.

После такой полуавтоматической реконфигурации можно будет выбрать текстовый редактор (из числа vim или nano) и затем подвергнуть постконфигурационным изменениям имеющиеся системные файлы.

На следующем этапе происходит установка ядра системы. Ядро поставляется с поддержкой практически всех SCSI/SATA/IDE устройств. Точная поддержка тех или иных устройств ядром будет зависеть от того, насколько правильно сконфигурирован ramdisk.

Затем последует установка системного загрузчика. Есть возможность установить GRUB или LILO на свое усмотрение. До окончательного формирования загрузчика программа установки предложит просмотреть и внести изменения в конфигурационный файл загрузчика. Нужно точно знать, какие разделы как обозначены, чтобы потом не возникло проблем. Если устанавливается загрузчик не в MBR или есть несколько операционных систем на одном HDD, также необходимо убедиться, что все прописано в конфигурационном файле правильно. После всех манипуляций нужно перезагрузиться. Необходимо не забыть убрать из привода установочный носитель и набрать в консоли команду # reboot.

После удачной загрузки системы потребуется авторизоваться в консоли в качестве root, и вход в систему будет завершен.

Список наиболее значимых конфигурационных файлов системы:

  1. /etc/rc.conf
  2. /etc/hosts
  3. /etc/fstab
  4. /etc/mkinitcpio.conf
  5. /etc/modprobe.conf
  6. /etc/resolv.conf
  7. /etc/locale.gen
  8. /boot/grub/menu.lst
  9. /etc/lilo.conf

Дополнительные конфигурационные файлы:

  1. /etc/conf.d/*
  2. /etc/profile

Первый файл является главным конфигурационным файлом. Здесь можно установить параметры локализации, системного времени, указать имя хоста, сетевые значения, запуск в процессе старта требуемых демонов и модулей ядра, установки файла профиля и многое другое. Система инициализации оформлена по типу построения BSD-систем и имеет три типа загрузки – однопользовательский, многопользовательский и, при старте X, имеем “runlevel 5”. Первый запускаемый загрузочный скрипт – это /etc/rc.sysinit, затем, /etc/rc.multi при нормальной загрузке. Последним скриптом будет /etc/rc.local.

В однопользовательском режиме запускается скрипт /etc/rc.single вместо /etc/rc.multi. Для всех видов запуска выполняются /etc/rc.conf и скрипты /etc/rc.d/functions. Отсюда следует, и это проверено, что для добавления нового демона в систему нужно сделать запись о нем в файле /etc/rc.conf, а затем описать скрипт запуска в /etc/rc.d/.

Все остальные вопросы очень похожи на конструкцию обычного linux-дистрибутива. Теперь, помня о том, что устанавливалась только система в минимальном составе, необходимо ее нарастить до требуемого функционала. Для этого нужно воспользоваться менеджером пакетов pacman.

Для начала опишем основные аспекты его функционирования. Pacman – это пакетный менеджер, который отслеживает все устанавливаемые программы и их зависимости. Используемые в системе пакеты имеют стандартный формат для всех пакетов tar-архив, сжатый программой gzip. С помощью pacman можно решать следующие основные задачи:

  • добавление новых пакетов в систему;
  • обновление пакетов;
  • удаление пакетов;
  • обновление списка доступных пакетов для установки;
  • обновление системы;
  • добавление/удаление пакетов в рамках репозитория;
  • получение списка установленных пакетов;
  • проведение проверки при установке специфических пакетов;
  • получение информации о специфичном пакете;
  • получение информации о пофайловом составе пакета;
  • получение информации о том, какому пакету принадлежит тот или иной файл.

Более полную информацию о возможностях этого пакетного менеджера можно получить, воспользовавшись командой man. Перечислим основные команды.

Команда:

# pacman –add foo.pkg.tar.gz (аналог pacman –A foo.pkg.gz)

установит новый пакет в систему, а команда:

# pacman –R foo

удалит его (pacman --remove foo как более длинный аналог), причем указывать полное имя пакета, как при установке, не надо. Конфигурационные файлы после удаления этой командой остаются.

Командой:

#pacman –U foo.pkg.tar.gz

можно обновить уже установленный пакет, а командой:

# pacman –sync –refresh (как аналог pacman –Sy)

можно обновить список пакетов, доступных для установки из репозиториев, описанных в /etc/pacman.conf – конфигурационном файле менеджера.

Поскольку у нас в стране доступ к сети Интернет все еще довольно дорог, я опишу, как воспользоваться установочным диском для добавления дополнительного программного обеспечения без выхода в сеть. Этот вопрос не очевиден и, мне кажется, достоин внимания. Отредактируем файл /etc/pacman.conf таким образом, чтобы закомментировать все его секции и их названия, добавив, однако, в секцию [current] строку:

Server = file:///mnt/cdrom/arch/pkg/

Здесь указан путь к каталогу с пакетами на носителе. Затем сам носитель необходимо смонтировать в системе командой:

# mount /dev/cdrom/ /mnt/cdrom

Далее нужно обновить информацию pacman об имеющихся репозиториях и списках пакетов в них командой:

# pacman –Sy

На этом этапе не должно быть никаких ошибок. Осталось, например, найти командой find полное имя требуемого пакета (например, mc-4.6.1-4.pkg.tar.gz) и установить его командой:

# pacman –S mc

Вот и все – пакет будет установлен с учетом всех зависимостей. Для добавления репозитория [extra] с медиа-носителя надо раскомментировать в /etc/pacman.conf запись об [exta] и добавить в соответствующий раздел запись вида:

Server = file:///mnt/cdrom/extra/os/i686/

после чего выполнить:

# pacman –Sy

Теперь, имея все необходимое, построим платформу с поддержкой php+apache+mysql. Установим сам http сервер apache. В консоли нужно выполнить:

# pacman –S apache (установит apache-2.2.4-2)
# pacman –Sy php

После этого в каталоге /etc/httpd/modules/ должен появиться файл libphp5.so

Для поддержки php как модуля в apache, в конфигурационном файле /etc/httpd/conf/httpd.conf необходимо раскомментировать строку:

LoadModule php5_module modules/libphp5.so

Следует помнить, что рабочим каталогом для httpd является /home/httpd/html а не каталог, например, в Fedora Linux /var/www/html.

Установка СУБД mysql сводится к выполнению команд:

# pacman –S mysql-clients
# pacman –S mysql

Обязателен ряд действий по настройке СУБД – установка пароля для root, удаление анонимного пользователя и т.д., – это описывалось ранее в статье ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD-подготовка систем для использования в качестве Web-сервера на базе технологии LAMP. Часть 1. Подготовка системы Ubuntu(Debian) для использования в качестве Web-сервера на базе технологии LAMP». Затем нужно включить поддержку mysql в php5 путем раскомментирования в файле /etc/php.ini в разделе “Dynamic Extension” строки:

Extensions = mysql.so,

которая представляет собой модуль для работы с mysql. Все модули находятся в каталоге /usr/lib/php/extensions/php. После этих манипуляций необходимо добавить демонов, отвечающих за работу соответствующих служб, в автозагрузку. Для этого их надо прописать в файле /etc/rc.conf:

DAEMONS = (syslog-ng gpm…..mysqld httpd)

или запускать их самостоятельно командой:

# /etc/rc.d/mysqld start(stop)

Удачный запуск демона httpd можно проверить, набрав в браузере:

http://your_ip_addr/

тогда его правильная работа будет выглядеть так, как на рисунке 4, где гордо красуется надпись “powered by Arch Linux”, а работу php как модуля к apache – традиционно, написав файл:

<?php
echo phpinfo();
?>

и набрав его в браузере:

http://your_ip_addr/my.php
Рисунок 4.
Рисунок 4.
Рисунок 4.

Тогда можно будет увидеть картинку, как на рисунке 5.

Рисунок 5.
Рисунок 5.
Рисунок 5.

Защитить систему можно также используя iptables и таким же скриптом, как выкладывался в предыдущей статье «ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD – подготовка систем для использования в качестве Web-сервера на базе технологии LAMP. Часть 3. Fedora, ASPLinux, Mandriva Linux подготовка систем для использования в качестве Web-сервера с поддержкой php+mysql». Сам iptables может быть легко установлен с помощью последовательности команд:

# pacman –S iptables

После этого требуется внести изменения в файл /etc/rc.conf в раздел:

DAEMONS = (iptables syslog-ng gpm…..mysqld httpd)

для старта iptables на этапе загрузки системы.

Выводы

В этой статье был проведен краткий экскурс в особенности дистрибутива Arch Linux. Показаны его сильные стороны, такие как простота настройки, стабильность и производительность, защищенность и ясность при построении системы. Подробно освещены вопросы установки и этапы предварительной настройки операционной системы, выбор требуемых инсталляционных системных пакетов по оптимальному признаку, моменты постустановочного обслуживания, а также методики работы с пакетным менеджером pacman. Показана возможность построения системы, используя инсталляционный диск, без выхода в сеть Интернет в целях экономии трафика. Рассмотрены вопросы конфигурации стартовых скриптов системы, их назначение, порядок активизации. Показано решение вопросов, связанных с добавлением новых демонов в систему, их активизации на этапе загрузки. Пошагово рассмотрен вопрос установки и настройки связки apache2+php5+mysql и проверка их работоспособности, даны рекомендации по последовательности проведения таких действий и анализа работоспособности комплекса в целом. Все особо ответственные шаги при описании ключевых технологий снабжены реальными иллюстрациями, поясняющими и дополняющими изложенный материал.

В целом, Arch Linux является мощным средством для построения высокопроизводительных и защищенных комплексов для Web-решений на основе связки php+apache+mysql. Система является простой и прозрачной, что гарантирует ее стабильность и четкость конфигурирования при использовании практически в любых целях на современном оборудовании.


Ресурсы для скачивания


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=500244
ArticleTitle=ArchLinux, Fedora, ASPLInux, Mandriva, Debian, Ubuntu, FreeBSD: Часть 4. Archlinux: подготовка системы для использования в качестве Web-сервера
publish-date=07132010