Два месяца назад мы говорили об установке Apache, MySQL и PHP на виртуальной Linux-машине. Сегодня мы выжмем максимум из вашего железа — речь пойдет о FreeBSD, который декларирует высочайшую производительность за счет эффективной работы с памятью. Кроме того, это настоящий UNIX, являющийся потомком знаменитой системы из лабораторий AT&T (подробнее — в истории FreeBSD).
Ограничивая систему в ресурсах, мы сознательно подвергаем ее стресс-тесту. Готовый сайт — «летает». Но прежде чем запустить его, мы пройдем через многочасовой процесс сборки необходимых компонентов.
Загрузка дистрибутива FreeBSD
В отличие от многочисленных клонов Linux, здесь все просто: http://www.freebsd.org/ru/where.html
Рекомендуем для тестирования выбрать ISO-образ сборки для i386 архитектуры. На момент написания статьи актуальным является 9.2 релиз системы, поэтому мы загружаем файл FreeBSD-9.2-RELEASE-i386-disc1.iso
Настройка виртуальной машины
Как и прежде, воспользуемся VirtualBox. В этой системе виртуализации есть заготовка настроек FreeBSD,
которые мы расширим до 8Гб жесткого диска.
Относительно памяти — нам действительно хватит 128Мб.
Инсталляция системы
Запустите виртуальную машину. При первом запуске будет предложено выбрать диск с дистрибутивом — нажмите в диалоге кнопку с изображением папки и выберите загруженный ранее ISO-образ.
После нажатия Start будет запущен загрузчик системы, который после начальных проверок на несколько секунд выведет экран выбора опций запуска системы.
Пока просто ждем развития событий. Экран сменится на череду сообщений о найденных в виртуальной машине устройствах. Затем появится запрос:
Нажмите «Ввод» чтобы выбрать выделенный пункт по умолчанию — Install.
На следующий запрос о необходимости выбрать нестандартную раскладку клавиатуры ответим «Нет» (для выбора пользуйтесь клавишами со стрелками или Tab’ом):
Назовем наш сервер ampserver:
Теперь выберем из устанавливаемых компонентов системы только ports — выделите пункт games и нажмите «Пробел» чтобы отказаться от установки тривиальных игр:
Воспользуемся «Помощником» при разметке диска — оставим пункт Guided:
Также подтвердим, что под систему мы отводим весь диск (Entire Disk):
Из выделенных нами 8Гб установщик предлагает отвести 64Кб для загрузчика, 409Мб для раздела подкачки, а оставшееся пространство — для файлов операционной системы и приложений, с чем мы также соглашаемся нажав «Ввод»:
Подтвердим это еще одним нажатием на «Ввод»:
Далее следует достаточно продолжительная фаза, включающая проверку дистрибутива
и разворачивание архивов на диск.
Это не требует нашего вмешательства.
По окончании вы увидите приглашение задать пароль администратора (пользователя root). Введите пароль (желательно его записать) — пароль не отображается при вводе:
И после нажатия на «Ввод» повторите его же:
Если повторно введен тот же пароль, появится запрос сетевого адаптера:
Примем полученную по DHCP конфигурацию:
Подтвердим использование локального времени:
Выберем регион, в котором находимся (в нашем случае — Европа):
Выберем страну (в нашем случае — Украина):
При наличии нескольких временных зон — также выберем соответствующую:
Оставим список сервисов, запускаемых по умолчанию без изменений:
Откажемся от сохранения снимков системы при сбое:
Также воздержимся от добавления новых пользователей в систему (обратите внимание: FreeBSD не позволяет удаленно регистрироваться под именем root):
Вот и все! Система установлена. Нажимаем «Ввод» для выхода из программы установки:
И отказываемся от внесения финальных правок в конфигурацию:
Вместо еще одного нажатия на «Ввод» для перезапуска виртуальной машины
выполним ее отключение — для этого достаточно закрыть окно и послать сигнал отключения (это обеспечит аккуратное завершение работы):
После завершения работы виртуальной машины «извлеките» образ диска из виртуального CD-привода:
Сервер готов к первому запуску!
Инсталляция WordPress
Система портов FreeBSD пользуется заслуженной любовью. Воспользуемся ею для установки всего необходимого (и только того что необходимо).
К данному моменту система должна успеть загрузиться и пройти первоначальную самонастройку:
Для входа введите имя пользователя root и пароль администратора, который был задан при инсталляции. Если все верно, система выдаст приглашение ко вводу команд (в нашем случае — root@ampserver:~ # ):
Перейдем в каталог, где находится порт wordpress:
cd /usr/ports/www/wordpress
и запустим установку:
make install clean
Дальнейший процесс достаточно однообразен — система будет выполнять проверки зависимостей, показывать список доступных для каждого требуемого пакета опций (см. снимок ниже), загружать исходные коды пакета из интернет, применять специфические для FreeBSD обновления, компилировать и устанавливать:
Для наших целей менять настройки по умолчанию не требуется. Поэтому при появлении каждого запроса на изменение конфигурации мы просто будем нажимать «Ввод» (кроме PHP, где требуется дополнительная опция). Чтобы оценить продолжительность процесса перечислим пакеты, которые устанавливаются по нашему запросу (список может со временем меняться; перечислены только пакеты, для которых выдается запрос конфигурации):
- wordpress-3.6,1
- php5-5.4.17 — при появлении окна конфигурации отметьте опцию APACHE:
- m4-1.4.16_1,1
- help2man-1.43.3
- perl-5.14.4 (установка этого пакета выполняется после длительной компиляции)
- gettext-0.18.3
- libiconv-1.14_1 (на этом этапе также выполняется длительная компиляция)
- gmake-3.82_1
- pcre-8.33
- libxml2-2.8.0_2 (продолжительная компиляция)
- curl-7.31.0_1
- ca_root_nss-3.15.1
- php5-gd-5.4.17
- libcheck-0.9.10
- python27-2.7.5_1
- libxslt-1.1.28_1
- freetype2-2.4.12_1
- png-1.5.17
- t1lib-5.1.2_2,1
- php5-mysql-5.4.17
Что мы получили в итоге? Оптимизированную среду выполнения WordPress именно для вашего компьютера — ведь все программное обеспечение было скомпилировано из исходных кодов с учетом имеющихся ресурсов! (Если быть точным, то процесс установки может быть проще, а скомпилированный код — еще оптимальнее, но это выходит за рамки данной статьи).
Попутно неискушенные пользователи могли увидеть откуда берется PHP и Perl.
И еще раз вспомним о том, что для сборки программ мы обошлись всего 128Мб памяти.
MySQL
Но мы пока не обзавелись системой управления базами данных. При том, что PHP был собран с драйвером MySQL, сама СУБД не была установлена, т.к. в общем случае сервером баз данных может служить другой компьютер.
Конфигурацию с несколькими серверами оставим читателям в качестве домашнего задания. Сами установим MySQL на тот же сервер. Для этого перейдем в каталог с портом MySQL:
cd /usr/ports/databases/mysql56-server
и (как это было сделано выше) запустим установку:
make install clean
Apache
Последний ингредиент — www-сервер. При том, что есть более эффективные альтернативы, установим обещанный Apache:
cd /usr/ports/www/apache24 make install clean
Примите опции по умолчанию:
При установке Apache требуется подтвердить конфигурацию следующих пакетов:
- apache24-2.4.6
- apr-1.4.8.1.5.2
- gdbm-1.10
Внимательные читатели заметили, что в итоге получена конфигурация Apache 2.4, MySQL 5.6 и PHP 5.4. Ранее мы рассматривали установку сервера на основе CentOS 6.4 c установленными пакетами Apache 2.2.15, MySQL 5.1.52 и PHP 5.3.2, что для некоторых практических задач — слишком консервативно. Для решения этой проблемы можно пользоваться неофициальными репозиториями или собирать необходимую версию ПО вручную. В первом случае получаем удобный способ обновления с некоторым риском конфликтов с другими установленными в системе пакетами. Во втором — сталкиваемся с необходимостью дальнейшей поддержки пакетов и библиотек вручную. Именно тут начинают возвращаться инвестиции времени, которые мы вложили во FreeBSD, поскольку поддержка актуального состояния этой системы — не сложнее описанного выше процесса установки.
Конфигурирование сервера
Прежде всего, сервер должен знать свое имя. Чтобы не настраивать DNS, отредактируем файл hosts:
ee /etc/hosts
Необходимо добавить строку
127.0.0.1 ampserver ampserver.local
Чтобы сохранить изменения нажмите Esc и дважды нажмите «Ввод».
Добавим название сервера в конфигурацию Apache:
ee /usr/local/etc/apache24/httpd.conf
Найдите строку ServerName и укажите следующее:
ServerName ampserver.local:80
Получится примерно следующее:
Найдите раздел <IfModule mime_module> и ниже строки TypesConfig добавьте строки
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
Ниже найдите строку «#Include etc/apache24/extra/httpd-vhosts.conf» и удалите знак «#» перед ней:
Найдите строку DirectoryIndex index.html и добавьте index.php:
Сохраните изменения.
Теперь разрешим запуск сервиса — введите:
ee /etc/rc.conf
и добавьте строку (обратите внимание на то, что в конце файла должна остаться пустая строка — см. изображение ниже):
apache24_enable="YES"
Добавим виртуальный хост:
ee /usr/local/etc/apache24/extra/httpd-vhosts.conf
Ограничимся тривиальной конфигурацией. Добавьте следующие строки в конец файла (остальные строки можно удалить или «закомментировать» — поставить «#» в начале строк, которые сервер должен игнорировать):
<VirtualHost *:80> DocumentRoot "/usr/local/www/wordpress" ServerName ampserver.local <Directory "/"> Require all granted </Directory> </VirtualHost>
Примерно так:
Запускаем Apache:
/usr/local/sbin/apachectl start
Файл rc.config редактировать не обязательно — можно добавить строку конфигурации командой:
echo 'mysql_enable="YES"' >> /etc/rc.conf
Запускаем сервер:
/usr/local/bin/mysql_install_db --basedir=/usr/local --datadir=/var/db/mysql --user=mysql /usr/local/etc/rc.d/mysql-server start
И создаем базу данных для WordPress:
/usr/local/bin/mysqladmin create wordpress
Чтобы дальнейшую настройку вести в броузере, настроим сеть как описано в разделе «Доступ к виртуальной машине«, но с изменениями. После установки режима Bridged Adapter перезапускать сетевой драйвер не нужно. А чтобы получить новый IP-адрес виртуальной машины, введите команду
ifconfig em0
Среди выводимой информации о сетевом адаптере будет и адрес (в нашем случае — 192.168.1.40):
Добавьте этот адрес в файл hosts на своем компьютере. Если ваша основная система — Windows, запустите Notepad от имени администратора, откройте файл «%SystemRoot%\System32\drivers\etc\hosts» и внесите строку (замените IP на определенный выше!):
192.168.1.40 ampserver.local
Получится примерно так:
Теперь откройте в любом броузере адрес http://ampserver.local
В конфигурации доступа к базе данных укажите имя пользователя root, а поле для ввода пароля — очистите.