Первые впечатления
FreeBSD загружается в текстовую консоль, где мы можем войти в систему с учетной записью root или с учетной записью обычного пользователя, при условии, что мы создали ее в процессе установки. По умолчанию графического окружения нет. На самом деле, по умолчанию установка FreeBSD минимальна. У нас есть доступ к обычным инструментам командной строки UNIX, страницам руководства и компилятору Clang, и это практически все. Операционная система очень легкая, работает около 15 процессов и используется 18 МБ активной памяти (и 250 МБ связанной памяти с включенной ZFS). Вся операционная система занимает около 500 МБ дискового пространства. FreeBSD дает нам основу для дальнейшего развертывания, но оставляет формирование и настройку операционной системы полностью в наших руках. По этой причине я настоятельно рекомендую новичкам прочитать .
Печать файлов из DOS
На данный момент, скорее всего, принтер у вас не работает, так что вот способ создания
файла из справочной страницы, перемещения её на дискету, а затем печать из DOS
Положим,
что вы хотите внимательно прочесть об изменении прав доступа на файлы (весьма важно). Вы
можете воспользоваться командой man chmod для того, чтобы
прочесть об этом
Команда
% man chmod | col -b > chmod.txt
удалит коды форматирования и перенаправит страницу справки в файл chmod.txt, не выдавая её на экран. Теперь поместите отформатированную
dos-дискету в дисковод a, выполните su, перейдя к пользователю root, и наберите
# /sbin/mount -t msdosfs /dev/fd0 /mnt
для монтирования дискеты в каталог /mnt.
Теперь (и вам больше не нужно быть пользователем root, так
что можете набрать exit для возврата к пользователю jack) вы
можете перейти в каталог, где создали chmod.txt и скопировать
файл на дискету следующей командой:
% cp chmod.txt /mnt
и воспользоваться командой ls /mnt для получения списка
файлов каталога /mnt, которая теперь должна показать файл
chmod.txt.
Вы также можете захотеть создать файл из /sbin/dmesg,
набрав
% /sbin/dmesg > dmesg.txt
и скопировав dmesg.txt на дискету. /sbin/dmesg является протоколом загрузки системы, который полезно
понимать, потому что в нём перечисляется всё, что обнаружила при загрузке FreeBSD. Если
вы будете задавать вопросы в списке рассылки Список
рассылки, посвящённый вопросам и ответам пользователей FreeBSD или в конференции
USENET—наподобие »FreeBSD не обнаруживает моего ленточного накопителя, что мне
делать?»—отвечающие захотят узнать, что выдаёт dmesg.
Теперь вы можете (как root) отмонтировать гибкий диск, чтобы
его вынуть, по команде
# /sbin/umount /mnt
и перезагрузиться в DOS. Скопируйте эти файлы в каталог DOS, вызовите их при помощи
редактора DOS EDIT, Windows Notepad или Wordpad, или даже
с текстовым процессором, внесите маленькое изменение, чтобы файл сохранился, и
напечатайте его обычным образом из DOS или Windows. Надеемся, это срабатывает! Справочные
страницы лучше всего выглядят при печати командой DOS print.
(Копирование файлов из FreeBSD на смонтированный раздел DOS в некоторых случаях всё ещё
немного рискованная операция.)
Временное назначение ip адреса.
Честно говоря я не знаю для чего может пригодиться временное назначение сетевых настроек. Разве что допустим у вас какой-нибудь сервер который предназначен только для вашей локальной сети и вы вдруг решили быстренько обновить ПО через интернет на этом сервере, чтобы не ходить к шлюзу не раздавать интернет на нужный IP адрес итд. Вы можете обойтись парой команд.
Например, мы знаем что на 192.168.3.109 точно есть доступ в интернет, назначаем этот IP адрес нашему интерфейсу, так же нужно указать маску сети(Рис.12):
ifconfig em0 192.168.3.109 netmask 255.255.255.0
или командой с короткой записью маски сети.
ifconfig em0 192.168.3.109/24
Рис.12 — Указание временных настроек для сетевого интерфейса em0.
Интернет может не появиться, так как не указан шлюз по умолчанию. Прописываем его и пингуем гугловкие восьмёрки.(Рис.13)
route add default 192.168.3.1
ping 8.8.8.8
Рис.13 — Указываем шлюз по умолчанию. Проверяем ping.
Правильно ли мы прописали наш шлюз по умолчанию можно посмотреть в таблице маршрутизации. Она выводится с помощью команды «netstat -rn», Шлюз по умолчанию будет обозначен флагом UG.(Рис.14)
netstat -rn
Рис.14 — Вывод таблицы маршрутизации.
Если вы где-то ошиблись в написании или у вас указан другой шлюз, то можно удалить шлюз по умолчанию.
route del default
На этом временная настройка закончена, помните что после перезагрузки сервера или отдельно службы networking, все временные настройки исчезнут.
Добавляем маршрут в сеть 192.168.0.0/16 (Маска 255.255.0.0) через основной шлюз(gateway) 192.168.3.1/24
route add 192.168.0.0/16 192.168.3.1
Вариант добавления маршрута с указанием полной маски.
route add -net 192.168.0.0 -netmask 255.255.0.0 192.168.3.1
Файл /etc/hosts.
Файл /etc/hosts содержит таблицы сопоставления DNS имен с IP адресами. В первую очередь ваш сервер будет обращаться к файлу hosts, а потом уже к DNS-серверу.
Записи 127.0.0.1 добавился автоматически при установке.
Лично для себя я отметил полезным внести в hosts запись этого freebsd (IP адрес локальной сети — имя сервера). Теперь мы можем во всех конфигурационных файлах указывать DNS имя, а не IP адрес, а в случае необходимости за кротчайшее время изменить свой IP адрес поправив hosts и настройки интерфейса в /etc/rc.conf.
Это просто для примера вам этого делать не обязательно.
Приступаю к редактированию(Рис.10):
vi /etc/hosts
Вписываю:
192.168.3.11 freebsd.itdeer.loc
Рис.10 — Содержимое файла hosts.
Проверю попинговав имена из hosts.(Рис.11)
ping localhost
ping freebsd.itdeer.loc
Рис.11 — Пингуем имена из hosts.
Скачать нужный образ freebsd
Перед установкой надо определиться, какой образ скачать. Я составил кратенькую таблицу с описанием всех типов образов Freebsd 11 для платформы x64, которые можно скачать. Ссылки привел на Yandex.Mirror, предпочитаю с него все качать, так как быстро и удобно.
Имя образа | Описание | Скачать образ |
---|---|---|
bootonly | Минимальный образ по размеру. Чтобы установить с него систему, необходимо подключение к интернету во время установки. | bootonly.iso 285M |
disc1 | Основная система и базовый набор программ есть на диске. Можно установить без подключения к сети. Я пользуюсь обычно этим образом. | disc1.iso 656M |
dvd1 | Максимальный образ. В него входят помимо системы, пакеты программ. Что за пакеты и какой их список я не знаю, никогда не пользовался этим образом. Все, что необходимо, после установки ставлю через интернет. | dvd1.iso 3G |
memstick | Стандартный образ для установки с флешки, аналог disc1. | memstick.img 700M |
В дальнейшем повествовании я буду использовать образ disc1 как наиболее удобный и универсальный.
Шаг 3. Установите MySQL 8.0 с помощью pkg
Когда HTTPS-сервер Apache активен и работает, мы можем перейти к третьему шагу: установке MySQL. MySQL — это сервер базы данных, который поддерживает и регулирует доступ к базам данных, в которых хранится информация, относящаяся к веб-сайту.
Как и в случае с Apache, мы загрузим MySQL из репозитория FreeBSD с помощью pkg.
$ sudo pkg install -y mysql80-client mysql80-server
После выполнения указанной выше команды в вашей системе должна быть установлена последняя версия. Найдите последнюю версию в Интернете, а затем сравните ее с версией, установленной на вашем диске, с помощью следующей команды:
$ mysql --version
Перед запуском MySQL необходимо включить его:
$ sudo sysrc mysql_enable=yes
Введите команду ниже, чтобы запустить базу данных:
$ sudo service mysql-server start
Проверьте запуск, введя следующую команду:
$ sudo service mysql-server status
Чтобы усилить меры безопасности в вашей базе данных, вы должны ввести сценарий безопасности, чтобы удалить некоторые несоответствия с MySQL и ограничить доступ к вашей системе:
$ sudo mysql_secure_installation
Затем установите пароль и ответьте на последующие вопросы. Вы можете выбрать значение по умолчанию для всех вопросов, нажав: key_enter:
Поддержка железа
FreeBSD хорошо показала себя при запуске в VirtualBox. Система работает быстро и без каких-либо серьезных проблем. По умолчанию FreeBSD не интегрируется с виртуальной средой и не может в полной мере использовать разрешение экрана хоста. Гостевые модули VirtualBox доступны через менеджер пакетов FreeBSD, и после их установки система может использовать полный диапазон разрешений экрана.
В прошлом FreeBSD обычно не работала с оборудованием моего настольного компьютера. Либо система вообще не загружалась, либо загружалась с ограниченным разрешением экрана. На этот раз я был рад обнаружить, что FreeBSD 12.0 может загружаться на моей рабочей станции как в UEFI, так и в устаревших режимах BIOS. FreeBSD хорошо работала с моим физическим оборудованием, и единственным ограничением было то, что операционная система не могла обнаружить ни одно из беспроводных USB-устройств, которые я подключил к системе.
Это, безусловно, шаг вперед для FreeBSD, когда речь идет о моем тестовом оборудовании, и он отражает недавний успех, который я достиг с соответствующим проектом GhostBSD.
FreeBSD с графическим окружением
По умолчанию FreeBSD не включает в себя какую-либо рабочую среду или графические инструменты. Это позволяет системе быть компактной и хорошо подходит для главной роли FreeBSD в качестве серверной операционной системы. Тем не менее, я хотел посмотреть, сколько усилий понадобится, чтобы заставить FreeBSD работать так же, как GhostBSD.
В справочнике проекта есть , посвященный установке программного обеспечения X display, включению экрана входа в систему и установке одной из трех сред рабочего стола: GNOME, KDE и Xfce. Я решил выбрать Xfce. Весь процесс прошел быстро, заняв всего несколько минут и потребовав редактирования трех файлов конфигурации.
Получившийся графический интерфейс пользователя был функциональным, хотя и не особо отточенным. Установка Xfce дала мне рабочий стол, панель по умолчанию и меню, виртуальный терминал и файловый менеджер Thunar, но мало что еще. По большей части, я бы не возражал против установки дополнительных приложений, таких как веб-браузер, LibreOffice и другие распространенные инструменты. Однако были проблемы, которые мне нужно было обойти. Например, мой обычный пользователь не мог перезагрузить или выключить систему из среды рабочего стола, я мог только выйти из системы. Отсутствовал регулятор громкости, и вскоре я обнаружил, что мультимедиа (потоковые и локальные файлы) не воспроизводятся. Например, видео YouTube не воспроизводилось ни в одном из моих веб-браузеров. VLC и MPV не могли воспроизводить видео или аудио файлы и просто зависали при открытии файла.
Эти проблемы сами по себе были незначительными, и есть обходные пути их решения, но они подчеркивают разницу между использованием ориентированного на десктоп члена семейства FreeBSD, такого как GhostBSD, и настройкой FreeBSD с нуля, следуя инструкциям в руководстве.
Ранее я упоминал, что система использует около 500 МБ диска после установки. Но каждая большая коллекция программного обеспечения, которую я добавлял, скачивала около гигабайта пакетов. После настройки Xfce, LibreOffice и веб-браузера было использовано более 3 ГБ. Когда я закончил установку своих обычных настольных программ, я использовал около 5 ГБ дискового пространства. Использование памяти при запуске Xfce 4.12 составляло около 140 Мб активной и 250 Мб связанной памяти, что примерно на 120 Мб больше, чем при работе в минимальной среде командной строки.
Установка
Загрузка с носителя FreeBSD выдает меню с вопросом, хотим ли мы запустить установщик системы, получить доступ к оболочке или использовать Live CD. Опция Live CD просто выводит нас в командную строку, где мы можем войти в систему как пользователь root.
Программа установки представлена в виде серии текстовых меню. Мы проходим через выбор раскладки клавиатуры и набора пакетов, который мы хотим установить. Список пакетов является коротким и предлагает такие общие элементы, как отладка ядра, порты, 32-битная совместимость и исходный код для операционной системы. Далее мы можем выбрать подход к разбиению диска. Программа установки автоматически настроит тома UFS или ZFS, или мы можем вручную разбить диск на разделы. Я выбрал ручное разбиение для ZFS. Это позволило мне выбрать, какой диск (или диски) будет использоваться, и дало мне возможность включить RAID, установить размер подкачки и включить шифрование. Мы также можем зашифровать пространство подкачки.
Затем установщик скопировал свои файлы на жесткий диск и продолжил задавать еще несколько вопросов. Нам предлагается создать пароль для учетной записи root и включить сеть с поддержкой IPv4, IPv6 и DHCP. Затем мы можем выбрать из списка наш часовой пояс. На следующем экране спрашивается, какие службы мы хотели бы включить, список включает такие элементы, как OpenSSH и сетевая синхронизация времени. Другой экран дает нам доступ к дополнительным функциям безопасности. К ним относятся очистка /tmp во время загрузки, скрытие процессов от других пользователей, использование случайных идентификаторов процессов и отключение службы электронной почты Sendmail. Нам предоставляется возможность создать учетную запись без полномочий root, а затем установщик предлагает перезагрузить компьютер. Весь процесс, в котором задействовано множество экранов установки, идет быстро и занимает около десяти минут.
Русификация консоли во FreeBSD 11.0 Release
Добавляем следующую строку в файл /boot/loader.conf
Не нашел файл boot/loader.conf при разбиение диска под ZFS и вообще каталога /boot , выполнив следующую команду
# zpool import -f bootpool
# ee /boot/loader.conf
Добавляем следующую строку: kern.vty=vt
Добавляем в файл /etc/rc.conf способ переключения раскладки в консоли клавишами CTRL+SHIFT
# ee /etc/rc.conf
Добавляем строку:
keymap="ru.win"
Локализуем shell, я использую tcsh, для него редактируем файл ~/.cshrc, добавив в него две следующие строки:
setenv LANG ru_RU.UTF—8 setenv MM_CHARSET UTF—8
Заодно сразу поправим строку
setenv EDITOR vi
изменяем на
setenv EDITOR ee
Устанавливаем по умолчанию редактор ee.
Пользователю необходимо прописать класс russian, командой:
# pw user mod user_name —L russian
Где user_name — имя пользователя
При создании нового пользователя можно сразу прописать нужный нам класс командой
# pw useradd user_name —L russian
Вот и все, заново войдите в shell, для локализации терминала, консоль русифицируется после перезагрузки системы.
Другие наблюдения
По умолчанию любые пользователи, которых мы создаем в системе, не могут выполнять действия администратора. Мы можем выполнить действия администратора, войдя в систему как пользователь root напрямую, или мы можем добавить пользователя в группу wheel, чтобы дать ему возможность переключиться (su) в учетную запись пользователя root. В качестве альтернативы мы можем установить утилиты sudo или doas, которые предоставляют указанным пользователям специальный доступ.
По сравнению с большинством дистрибутивов Linux, FreeBSD играет пассивную роль. Система редко предоставляет информацию или помощь. Здесь нет мастера первого запуска или экрана приветствия. Я видел, возможно, одно уведомление во время запуска Xfce. FreeBSD предлагает нам чистую платформу, и мы должны прочитать руководство, если нам понадобится помощь или, если ничего не получится, посетить форум проекта. Сама операционная система старается оставаться в стороне.
После нескольких дней работы с FreeBSD, я обнаружил, что стал более продуктивным. Не потому, что система была особенно быстрой (хотя и быстрой) или эффективной (хотя среда была хорошо оптимизирована), а потому, что все приложения, которые я использую для работы, работали хорошо, а развлекательные программы — нет. На FreeBSD я мог легко установить и использовать Firefox, LibreOffice, Thunderbird, текстовые редакторы, графический редактор GIMP и инструменты командной строки. Однако, хотя я изо всех сил пытался заставить работать мультимедийные программы, Steam не работает на FreeBSD изначально, Netflix не будет здесь работать, а производительность для нативных трехмерных игр очень низкая. По сути, FreeBSD мягко заставляла меня использовать компьютер для работы, а не для игр. Это не всегда делало меня счастливым, но делало меня продуктивным.
Настройка ntp для синхронизации времени
Минимально необходимый инструментарий для настройки мы получили, продолжаем работу. Чтобы время на сервере всегда было актуальным, его надо регулярно синхронизировать. Можно пойти двумя путями. Либо запускать через определенные промежутки времени утилиту ntpdate с ключами, либо настроить и запустить службу ntpd, которая будет постоянно работать и синхронизировать время. Более правильный вариант, использовать службу, но он чуть сложнее в настройке. Чтобы синхронизировать время через ntpdate, достаточно просто ввести команду:
# ntpdate -b europe.pool.ntp.org
и время будет синхронизировано. Можно запускать эту команду через cron с определенной периодичностью. Если у вас уже запущена служба ntpd, то ntpdate не сработает, выдаст ошибку:
the NTP socket is in use, exiting
Настроим в таком случае ntpd. Если она у вас уже запущена, то в файле /etc/rc.conf уже есть строчка
ntpd_enable="YES"
если ее нет, добавьте.
Дальше отредактируем файл /etc/ntp.conf В качестве серверов синхронизации укажем:
server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org server 3.pool.ntp.org
и добавим две строчки в конец:
driftfile /var/db/ntpd.drift logfile /var/log/ntpd.log
Сохраняем, перезапускаем ntpd командой:
# killall ntpd && ntpd
Теперь наш сервер будет автоматически синхронизировать свое время.
Стандартная установка
Начнем с нуля установку Freebsd 11 на одиночный жесткий диск. Вставляем iso образ в автозагрузку и загружаемся с диска. Нас встречает традиционное окно приветствия с тремя вариантами продолжения:
- Install — начать установку системы.
- Shell — перейти в консоль.
- Live CD — загрузиться в режиме Live CD.
Выбираем установку. На следующем этапе будет предложено выбрать раскладку. Чаще всего достаточно стандартной, так что ничего не меняем, а идем дальше со стандартной раскладкой.
Дальше нужно будет указать имя новой freebsd системы. Назвать можете как угодно, это не принципиально. В случае необходимости, это имя можно будет сменить после установки.
Теперь выбираем компоненты, которые будут установлены. Я обычно ничего не ставлю, кроме lib32. Все, что нужно, можно потом установить последней версии из интернета.
На следующем этапе выбираем разбивку жесткого диска. Можно вручную указать все необходимые разделы, выбрать размер и т.д. Я обычно этого не делаю и все устанавливаю на одном корневом разделе. Давно уже так поступаю на всех системах и не вижу в этом никаких проблем. Наиболее частая рекомендация — вынести в отдельный раздел все логи, чтобы случайно заполнив все свободное место они не повесили сервер. На практике у меня такого ни разу не было, поэтому считаю лишним каждый раз возиться с разделами ради очень условного удобства. Правда есть нюанс — у меня на всех серверах всегда настроен мониторинг свободного места на жестком диске. Так что я успеваю оперативно среагировать на проблемы со свободным местом. Ну и слежу за ротацией логов само собой, не оставляю их расти до больших размеров.
Так что выбираем первый пункт — Auto (UFS). Установку freebsd 11 на zfs мы рассмотрим позже.
Дальше у вас спросят, хотите ли вы занять все свободное место жесткого диска под систему. Если это так, а обычно это так, то соглашайтесь. На следующем этапе указываем таблицу разделов. Я выбираю GPT:
Проверяйте предложенную схему разбивки диска. Если все устраивает, то жмите Finish и согласитесь с применением изменений, начнется установка базовой системы.
Длится она буквально несколько минут. Чистая система ставится очень быстро. По ходу дела будет предложено указать пароль для root. Сделайте это. Далее нужно будет выбрать сетевой интерфейс для настройки.
Если у вас их несколько, то выберите тот, который вы хотите настроить для доступа к сети. После выбора интерфейса нужно будет согласиться с настройкой ip адреса на нем. Дальше я выбираю получить настройки по DHCP. Так проще всего. Если вам нужно вручную указать ip адрес, то откажитесь от dhcp и введите сетевые параметры вручную.
После этого нужно будет указать адрес dns сервера, предварительно отказавшись от ipv6. Если вы получили настройки по dhcp, то адрес уже будет заполнен, нужно будет только подтвердить его. Если настройки вручную указывали, введи сами dns сервер.
Теперь выбираем часовой пояс, дату и время. Ничего сложного нет, скриншоты приводить не буду. Если дата и время указаны верно, то просто выбирайте Skip, если есть расхождения, вручную укажите правильные. Это, кстати, нововведение в 11-й версии. Раньше такого календаря и часов не было.
Установка движется к завершению. Нужно указать, какие службы вы хотите запускать автоматически при загрузке системы. Обязательно укажите sshd, чтобы подключаться к серверу удаленно, еще ntpd не помешает. Остальное на ваше усмотрение, я больше ничего не указываю. dumped стоит по-умолчанию, пусть останется.
На следующем этапе нам предлагается выбрать некоторые параметры безопасности. Я не знаком подробно с этой темой, не разбирался, но по названиям вижу, что вещи весьма полезные. Можно и включить. Тут на ваше усмотрение. Хуже не будет, но и чего-то особенно тоже не ждите. Все эти настройки можно и позже сделать.
На заключительном этапе вам будет предложено добавить пользователей в систему. Если вы этого не сделаете, то не сможете подключиться по ssh к серверу. По-умолчанию в freebsd пользователю root запрещено подключаться по ssh. Это можно исправить только зайдя локально рутом и отредактировав настройки ssh. Так что создайте хотя бы одного пользователя и добавьте его в группу wheel, чтобы можно было подключиться по ssh и сделать su для получения root доступа.
Дальше выбирайте Exit, перезагружайте систему и вынимайте загрузочный диск.
Вы должны загрузиться в свежеустановленной системе Freebsd 11. На этом базовая установка закончена.
В итоге
В этом руководстве показано, как установить стек FAMP в системе FreeBSD 12.2. Теперь вы можете размещать динамический веб-контент в своей системе и использовать его как полнофункциональный веб-сервер. Будь то динамический веб-сайт или крупномасштабное веб-приложение, потенциал вашего сервера не имеет границ. Однако не забудьте ознакомиться с дополнительными руководствами по FreeBSD на нашем веб-сайте, прежде чем начать. На нашем веб-сайте много контента, и вы обязательно найдете то, что поможет вам начать работу.
Кстати! Вот видео по установке операционной системы FreeBSD, которое будет полезно посмотреть перед выполнением рекомендаций, описанных в статье.