АйТи лирика: разворачивания сервера под этот сайт.

Не знаю почему, но очень доставляет (в хорошем смысле этого слова) знать что под капотом, или как оно устроено. Так было с детства. Когда я ехал на машине (тогда еще пассажиром) обязательно представлял как в коробке передач, редукторах вертятся шестерни, даже представлял как молекулы масла обволакивают их поверхности и как, в следствии этого трётся металл. Не говоря уже о мыслях о работе двигателя, о циклах газораспределительного механизма, ходах поршня, воспламенении... Все эти мысли очень доставляли, делали приятно, интересно и тепло.

/* херась какое длинноелирическое отступление получилось */

Tак вот короч нравится разбираться или хотя бы знать что-то о сути вещей.

Собственно наверное поэтому (подсознательно) я выбрал именно это для своего сайтика. Хотя если брать сознательную часть — то выбор пал, как мне казалось, чисто из-за иконки — чтобы в списке появилось что-то новенькое, как мне казалось, весьма дизайнерское и красивое. А на самом деле подсознание диктовало — го, уйди в это (от всех других, нужных полезных, приоритетных дел) на несколько дней (собственно заняло 3 «вечера») и have fun.


Рис.1 Иконка.

Началось все с установщика. Когда-то, давным давно, я пробовал играться с FreeBSD6 {если интересно, тут можно увидеть насколько проста установка текущей версии и как была увлекательна установка 6-й версии install FreeBSD6, install FreeBSD10.2}, правда ничего полезного она мне дать не могла, просто установил, поигрался, подтянул её до уровня usability for descktop и забыл. Но запомнил что во время установкитам был весьма увлекательный процесс разбиения дисков на слайсы, создания на них ф.с., и все это, насколько я помню было разобщенным, ручным, не автоматизированным, а отсюда и очень увлекательным процессом, напоминавшим чем-то подготовку ф.с. в ранних версиях dos ) Ну а в свежей же FreeBSD это дело весьма автоматизировали, и установка этой системы хоть и эстетически красива, но мне показалось даже проще чем установка Windows8 или же популярной Ubuntu.


Рис.2 Простой, но эстетически приятный установщик.

Дальше было минимальное освоение этой системы, и максимальное восхищение от процесса, которое затянуло на 3 вечера )

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

Конечно же тут есть и общепринятый способ установки программного обеспечения — в готовом виде

pkg install

Пара мгновений и любая, даже очень «длинная» программа готова к использованию.
Это называется пакейджи. Но есть и тот путь который для таких как я — сначала получаем/обновляем базу исходных кодов грубо говоря почти всего что есть программного обеспечения доступного для этой операционной системы, здесь оно называется портами.

Получить порты можно так:

portsnap fetch

а обновить так:

portsnap update

Но это всего лишь база а не сами исходники. Но это уже офигенно чувство. Видеть это огромное дерево проектов, программ, утилит, игр, созданных сообществом программистов, ученых, дизайнеров, и просто энтузиастов со всего мира.


Рис.3 Каталог Портов.

Можно просто злипать на все это дело, а чтобы залипние было более качественным исходники любого порта можно получить (находясь в каталоге порта) командой

make fetch

Далее нужно перейти в

/usr/ports/distfiles

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

Но ближе к сути, может кому-то и нравится общепринятый способ установки программного обеспечения — но это как-то слишком быстро, правильно и незалипательно, а FreeBSD
даёт совершенно другой подход — в котором для установки программного обеспечения нам нужно получить все его исходники, все исходники программ от которых зависит устанавливаемое п.о., скомпилировать их, установить, потом еще незабывать очистить директорию сборки - диски то не резиновые ;)

И естественно для таких как я это очень и приочень залипателньй процесс — когда в терминале бегут строки получения пакетов исходников буквально со всего мира (пакеты тянутся откуда пожелает разработчик пакета, хоть с Зимбабве, если автор живёт там), когда в терминале бегут строки сборки из исходных кодов, с процентиками, с варнингами от нечистой работы программистов, их даже можно читать и думать «а я бы так не сделал — столько варнингов», понимая в глубине души что от твоего кода не только варнинги были бы но и многочисленные баг репорты ;) смотреть как мигют диодики, индикаторы, как бегут гистограммы системных мониторов, как потрескивает жесткий диск, перемещай головку чтения записи. И при этом ведь никуда не уйдешь, и не только потому что это залипательно, а потому что временами, при сборке следующего из очереди пакейджа, сборка останавливается, ожидая твоих ответов (какой компонент собрать, какой проигнорировать), поэтому нужно быть начеку, иначе будет абыдно, что ушел гулять, думая что все соберется когда придешь, а на самом деле только ушел, и сборка остановилась ожидая твоих ответов.

Ах, как же это всё таки божественно. Надеюсь я смог передать эту чудную атмосферу :)

К уважению разработчиков системы портов, не смотря на то что организовать такую систему, централизованного управления базой исходников, расположенных непонятно где (если я не прав поправте) весьма сложно, но они замечательно справились, получение, сборка, установка, происходят как по маслу. Все необходимые зависимости скачиваются и собираютсяавтоматом. Все равно что делать

apt-get install

в каком-нибудь Debain. Только увлекательнее.

Есть только одно но — о котором стоит упомянуть. На каком-то ресурсе упоминалось что человек (правда на допотопном Pentium4) собирал OpenOffice около суток. Но у меня жне допотопный "пень", а аж 6-и ядерный 64битный Феном, и все 6 ядер доступны виртуальной машине. И к счастью опенофис на сервере мне как-то вообще не сдался. Да и к слову когда-то пересобирал я этот офис для секфиксов одного из российских дистрибутивов Linux, там он собирался правда на Xeon-ах, но сборка занимала около 40 минут.

Ой, опять я отвлёкся. Флудер. Продолжим.

Помимо того залипателипания от мыслей что как работает — из детства у меня еще есть то что если что-то есть — оно должно использоваться. Не знаю, следствие ли это того что я залипаю от мыслей как что работает, или же вообще независимое явление, но если у меня есть фотоаппарат, я стараюьсь использовать все его ф-ии. Если бы можно собрать свой фотоаппарат из компонетов, я бы собрал например тушку без брекетинга по цветовой температуре и без поддержки жипег, без «Р» режима — совершенно праздные для меня функции. То же касается моего отношения к программам.

Поэтому мне так нравится Unix Way — «каждая программа должна делать только то что она должна делать»

Т.е. если это например архиватор — он должен уметь только паковать и распаковывать. Если это растровый редактор -то он должен работать только с растром а не с векторами или 3D.

Ну и вот — минус использования пакейджев — скорость развертывания системы — а неоспоримый плюс — гибкость настройки, каждый компонент можно собрать именно с тем подкомпонентами/функционалом, который нужен именно тебе, а лишнее убрать. В последствии такие кастомно собранные пакеты могут работать стабильнее (сокращается число потенциальных ошибок, ведь кода то становится меньше), быстрее (не загружается куча ненужного кода). Да и просто приятно осознавать то что (конечно весьма грубо говоря) весь тот код который ты собрал — действительно работает, а не праздно хранится на диске, а еще хуже в оперативной памяти. Это правда, приятное чувство.

Ну и собственно что потребовалось для этого сервера: apache, mysql, php, phpmyadmin и различные его модули, ну и конечно же некоторые свободно распространяемые движки веб сайтов, галерей. Сборка всего из портов заняла где-то около 4 часов. Правда конечно же первые итерации блины комом, пришлось много раз пересобирать php-extension, т. к. по незнанию не все включил сразу же в первую сборку, например драйвер для работы с mysql (pdo-mysql) и расширение для работы с exif.

Так же, я не пожалел что выбрал именно bsd а не lamp или тем более wamp (как жрущее дохрена ресурсов) решение из-за просто огромного количества очень качественной документации для bsd. Правда система развивается с большей скоростью, чем обновляют документацию даже на официальном сайте, не говоря уже о сторонних, но это только плюс к уменю гуглить и немного оперировать данными )

Несколько ссылок, которые я использовал для разворачивания этого сервера:

https://www.freebsd.org/doc/ru/books/handbook/ports-using.html

http://osc.dondub.com/articles/2013/01/article_107 — именно по ней я сделал большую часть работы, но она устаревашая и данные из неё нужно коррелировать со следующей ссылкой

http://itnootes.blogspot.ru/2014/03/freebsd-100-apache-mysql-php.html

Ну и как-то так, за 1.5 вечера я наконец-то развернул и настроил сервер для этого сайта, другие 1.5 вечера я посветил небольшому ознакомлению с php, cmf и готовым движкам, мой выбор пал на drupal и piwigo. Даже немного познакомился с инструментом «веб-инспектора» файрфокса. Который очень пригодился для поиска в .css и .php ненужных фрагментов и их выпилу, но об этом возможно в другой, уже менее лиричной, блогостатейке :)


Рис4.Выпиливание лишнего.

Комментарии

Аватар пользователя Илья Лесной

Как и говорил выше, продукты развиваются, а статейки и материалы, как их использовать - остаются прежними. В виду того что ранее я не настраивал Apache пришлось немного потерять времени на настройку так называемых "алиасов" для веб директорий.
Выложу пример конфига, может кому пригодится.

  1. Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"
  2. <Directory "/usr/local/www/phpMyAdmin/">
  3. Options Indexes FollowSymLinks Includes ExecCGI
  4. AllowOverride Limit
  5. Require all denied
  6. Require ip <Ваш Ip>
  7. </Directory>

для FreeBSD10.2 этот конфиг хранится в /usr/local/etc/apache24/extra/httpd-vhosts.conf - защитит вашу админку от нежелательных посетителей.

Я использовал механизм виртуальных хостов, имхо это удобнее и возможно безопаснее. Чтобы его активировать нужно в файле в /usr/local/etc/apache24/httpd.conf
подлючить указанный выше файл.

Include etc/apache24/extra/httpd-vhosts.conf

Вообще во FreeBSD, как и говорил много отличных мануалов - вот тут очень хорошо написано