Внимание!!! Текст, размещённый ниже - не окончательная версия статьи! Если возникают какие-то вопросы или что-то не получается - задавайте вопросы на форуме.

 

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

    Альтернативой собственному серверу может стать виртуальный сервер, размещённый на мощностях специализированных организаций. Стоимость аренды такого сервера невысока - цены начинаются от 150 рублей в месяц. За эти деньги мы получаем виртуальный аналог не самого мощного компьютера, на котором установлена операционная система, у него уже имеется постоянный внешний ip-адрес и даже доменное имя. На этот сервер можно установить любые программы и он уже имеет минимум 10 гигабайт дискового пространства.

    Кроме виртуального сервера существует возможность аренды хостинга. Услуга хостинга сайта позволяет разместить на веб-сервере веб-сайт и его базу данных. Также доступно некоторое количество (очень небольшое) дискового пространства.

   Но мы будем работать именно с виртуальным сервером, а не хостингом, т.к. в дальнейшем мы будем настраивать такие вещи, как обработку лога с целью отображения его на сайте, автоматическое создание qsl-карточек и, может быть ещё что-нибудь, а хостинг предназначен только для размещения веб-сайта. Кроме того, хостинг дороже, чем виртуальный сервер. По окончанию чтения этой статьи и выполнения инструкций из неё мы получим сервер, который, при желании, может выступать даже в качестве площадки для предоставления хостинг-услуг. А по окончании чтения всего цикла статей наших знаний хватит для того, чтобы сместить с должности какого-нибудь системного администратора-самоучки в небольшой фирмочке или районной администрации. Если Вас интересует только информация, нужная для развёртывания веб-сайта в формате сайта-визитки, то достаточно прочитать только те части статей, которые выделены жирным курсивом. Инструкции, которые касаются совсем уж ненужных вещей, я вынесу в отдельный раздел. Там будет информация по развёртыванию фтп-серверов, ldap-авторизации, запуска X-сервера и т.п. Она будет полезна только ограниченному кругу лиц, которые действительно решат плотно заняться информационными технологиями. Эта часть статей будет написана после окончания основного цикла, касающегося веб-сайта.

     Сразу хочу предупредить, что операционная система, в которой мы будем работать, называется Linux и в первую очередь это название неподготовленного пользователя либо вгоняет в панику, либо в недоумение. В недоумение - потому, что пользователь такого названия не слышал, а в панику - потому, что он слышал, что это хрень какая-то. На самом деле Linux на данный момент это самая активно развивающаяся операционная система в мире, которая работает на подавляющем большинстве вычислительных устройств в мире. Серверы, телефоны, телевизоры, сетевое оборудование, всевозможные "умные" устройства - всё это вотчина Линукса, в которой он властвует безраздельно, занимая в разных нишах от 80 до 100% рынка. Причина такой популярности кроется в простоте настройки, в общепринятом подходе к командам и принципам работы, в единообразии применяемых инструментов и, конечно, в отсутствии каких бы то ни было опасений финансовых неприятностей - все компоненты, которые мы будем использовать, абсолютно бесплатные, мы можем не только применять их в любых целях, но и изменять по собственному желанию. Linux, как и программы, входящие в состав дистрибутива Debian, не принадлежит никому в мире, никто не потребует никакой платы за их использование.

   Что такое "дистрибутив Debian" и прочая ерунда? Для начала нужно разобраться в терминах.

GNU/Linux.

    Именно так правильно и полностью называется то, что мы привыкли называть просто Linux. GNU здесь - это проект по выпуску бесплатных, с открытым исходным кодом, аналогов утилит операционной системы Unix и прочих программ, которые мы и привыкли называть "операционной системой", а Linux - это ядро, которое предоставляет программам доступ к аппаратным ресурсам компьютера. Многие люди, в том числе и я, часто забывают о проекте GNU, хотя его вклад в популярность ОС переоценить очень сложно. Фактически всё, с чем взаимодействует пользователь и есть GNU, но мир несправедлив и мы отбрасываем эти три буквы из названия. Отчасти это происходит и из-за того, что ядро - несравненно более сложная часть операционной системы, чем любая из программ, входящих в неё. Вдобавок, Linux может существовать без GNU, а GNU без Линукса - нет. Например, такая ОС, как Android вообще не использует утилит проекта GNU, хотя и работает на ядре Linux. В рамках GNU ведётся разработка собственного ядра, но работа эта идёт уже 30 лет и ни одной сколько-нибудь работоспособной версии до сих пор не выпущено. Основная причина в том, что Линукс работает замечательно и всех устраивает.

Дистрибутив

    Как мы уже выяснили, операционная система - это ядро и набор утилит. Утилиты эти самые простейшие, толк из них может извлечь только самый подготовленный пользователь. В состав базовой системы GNU входят программы для работы с файлами (копирование, удаление, вывод списка файлов, установки прав доступа), с содержимым файла (вывод содержимого разными способами), программы оболочки (вывод даты, смена рабочего каталога, задержка исполнения команд), а также небольшой список служебных программ для загрузки системы, архивации, поиска, и прочих элементарных операций. И самое главное - средство компиляции исходных кодов. Если мы попробуем запустить чистый GNU/Linux, то сможем сделать с ним немного - скопировать и удалить файлы, а также собрать из исходных кодов исполняемые файлы программ.

    999 пользователей из 1000 такое положение дел не устраивает, поэтому ещё на заре разработки GNU/Linux группы энтузиастов начали собирать так называемые "дистрибутивы" - куда более широкий набор программ, собранные в готовые конфигурации для использования в различных целях. Программы поставлялись уже в виде исполняемых файлов, а не в виде исходных кодов, а также они были предварительно настроены, что позволяло значительно быстрее установить операционную систему на компьютер и начать работать. Первый дистрибутив был собран уже в феврале 1992 года - менее, чем через полгода после первого выпуска ещё очень сырого ядра Linux (сентябрь 1991). По состоянию на сегодняшний день существует около трёх сотен дистрибутивов Linux, которые находятся в активной разработке. Любой человек может абсолютно законно и бесплатно взять любой дистрибутив, изменить его состав по своему усмотрению и выпустить под собственным именем. Некоторые такие эксперименты переживают не более пары выпусков, а некоторые становятся значительно более популярными, чем дистрибутивы, на которых они были основаны.

    Мы будем использовать Debian - один из самых старейших дистрибутивов, который стал основой самой разветвлённой и популярной ветви linux-дистрибутивов. Первый выпуск Debian состоялся ещё в 1993 году и с тех пор широко поддерживается и является де-факто стандартом Linux-систем, несмотря на то, что автор дистрибутива, Иан Мёрдок, трагически скончался в 2015 году. Debian славится стабильностью и использованием исключительно свободного программного обеспечения, тогда как многие другие дистрибутивы, в том числе и основанные на Debian, часто используют несвободные, собственнические программы с закрытым исходным кодом. Стабильность - очень важный показатель программного обеспечения, работающего на сервере, ведь оно должно работать буквально годами без сбоев и перезагрузок. Debian содержит в своём составе не самые новые версии программ, но зато их поведение точно известно, уязвимости устранены и написаны сотни инструкций по их использованию - как раз то, что и нужно для сервера.

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

    Любая операционная система должна как-то общаться с пользователем, иначе смысла в её существовании нет. Если кто-то что-то слышал о Линуксе, то скорее всего то, что это какая-то ерунда, где надо набирать непонятные команды на чёрном экране. Хрень, короче. :-)

    Но вообще-то для Линукса существует множество графических оболочек, позволяющих прочно забыть о существовании "командной строки" - и эти оболочки очень красивые, сверкающие всевозможными спецэффектами, которые вряд ли можно увидеть где-то ещё, но такие вещи нужны, если планируется использовать компьютер как рабочую станцию, а для нас самым удобным будет как раз текстовый, консольный интерфейс. Он позволяет вводом простых команд быстро и единообразно настроить сервер. Но сила командной строки не только в этом, конечно. За текстовыми командами кроются миниатюрные программы, которые выполняют лишь одну функцию, но выполняют её идеально, без сюрпризов и при этом имеют стандартизированный вывод. В качестве примера приведу следующую задачу - представьте, что нам нужно найти на диске файл с именем, содержащим слово "книга" и открыть его на редактирование. Для этого мы воспользуемся цепочкой из трёх программ, которые "общаются" друг с другом:
- find, которая выводит список файлов
- grep, которая сортирует вывод
- nano для редактирования файла.
команда, выполняющая поставленную задачу, будет выглядеть так:
nano `find |grep книга`
кавычки означают, что результат выполнения команд, заключённых в них, нужно передать программе, стоящей перед ними, а вертикальная черта | - то, что вывод команды, стоящей перед ней, нужно передавать команде, стоящей после неё. Разберём пример: сначала find выводит список вообще всех файлов, которые есть в текущем каталоге и во всех вложенных, grep читает этот вывод и пропускает только те строки, которые содержат в себе "книга". В случае появления такой строки, текстовый редактор nano открывает файл на редактирование.
Подобное использование сочетания команд попахивает высшим пилотажем, но на самом деле прилично облегчает работу системного администратора и является обычной практикой. Для выполнения той же работы при помощи рабочего стола и мышки потребуется значительно больше времени, усилий и нажатий на клавиши. Кроме того, крошечные программы без графического интерфейса работают значительно быстрее тяжеловесных оконных приложений. Терминал - это просто и круто. Стоит только попробовать и немного пообвыкнуться в работе с текстовым интерфейсом, как в системах, в которых текстовый режим работы совсем отсутствует или является сильно усечённым, появляется ощущение отсутствия удобного инструмента и те вещи, которые раньше казались естественными, начинают выглядеть, как обходной путь.

 

Сервер

    Тут вроде-бы всё понятно, но хочется пояснить, что в качестве площадки для развёртывания сайта годится не только виртуальный сервер, но и вообще любой компьютер. Способы установки операционной системы на обычный компьютер, а также на одноплатный OrangePi будут описаны в соответствующих статьях. На виртуальный сервер ОС устанавливается силами провайдера в автоматическом режиме. После установки ОС дальнейшая работа идентична во всех случаях, кроме того, что нужно будет обеспечить доступ из интернета к компьютеру, работающему дома.
    Для себя я выбрал именно виртуальный сервер. Бесперебойность его работы поражает воображение - к текущему моменту сервер работает без перезагрузок и сбоев уже 6 нед, 2 дн, 18 час, 34 мин, он был запущен 2019-10-28 и обеспечить такой аптайм в домашних условиях крайне сложно.

Создание сервера

 

Для начала необходимо выбрать площадку для размещения нашего сервера. Лидером в данной отрасли в России является компания reg.ru. Я буду использовать именно эту площадку, но это не принципиально. После включения сервера работа с ним идентична независимо от того, где он находится. Тариф можно выбрать самый дешёвый, производительность тоже может быть минимальной - у нас нет таких задач, которыми можно было бы загрузить даже минимальную конфигурацию.

    Ниже описана процедура регистрации на reg.ru, для других провайдеров она примерно такая же.

    Заходим на сайт reg.ru, в верхнем меню выбираем VPS, находим самый дешёвый тариф, сейчас это “REG.H-VPS-1” за 149 рублей в месяц. Конечно, можно выбрать и более производительную конфигурацию! Нажимаем “Заказать”.

    Будут предложено установить панель управления, выбрать дистрибутив и добавить ip-адреса. В панели управления особой нужды нет, она позволяет несколько упростить работу с сервером в части создания пользователей, баз данных, запуска и остановки служб, но мы всё это научимся делать быстрее и проще средствами операционной системы. Но на пробу поставить можно, первый месяц использования панели обычно бесплатен. Дистрибутив выбираем Debian 9, дополнительные ip-адреса не добавляем. Нажимаем “В корзину”.

    Появится окно регистрации. Вводим адрес электронной почты, на которую придёт письмо с сообщением о совершении регистрации. Пароль создаётся автоматически, его желательно изменить в личном кабинете. Но пока почту не открываем, а продолжим оплачивать заказ. Нажимаем кнопку “Перейти к оплате”. Выбираем удобный способ оплаты и совершаем покупку.

    Возвращаемся на сайт reg.ru, в верхнем правом углу нажимаем на ссылку “Личный кабинет”. В разделе “Домены и услуги” будет наш виртуальный сервер со статусом “Неактивен. Настройка не завершена”. Жмём “Настроить”. От нас потребуют ввести контактные данные, без этого работа с сервером невозможна. Самый простой способ сделать это - привязать номер телефона к учётной записи. Рекомендую им и воспользоваться. После привязки номера телефона (или ввода контактных данных) начнётся активация вашего виртуального сервера. В это время происходит выделение ресурсов и установка операционной системы. На эту работу провайдеру необходимо всего 2-3 минуты. За время ожидания можно изменить пароль от личного кабинета и подтвердить адрес электронной почты по инструкции из письма.

    Как только виртуальный сервер будет настроен и запущен, на электронную почту придёт письмо с инструкциями и всеми необходимыми логинами и паролями, а также - с адресом сервера. Можем немедленно подключиться к нему.