Web-сервер на FreeBSD. Часть 2: FAMP стек. Ставим Apache 2.4, MySQL 5.6, PHP 7.0

В предыдущей статье мы по шагам прошли весь процесс установки FreeBSD. Настало время добавить ей функциональность и сегодня мы займемся установкой и настройкой FAMP стека (FreeBSD, Apache, MySQL, PHP).

Начиная с FreeBSD 9 в системе появился удобный инструмент управления пакетами. Как APT в Debian или DNF в Fedora. Во FreeBSD он называется скромно — pkg. Если раньше устанавливать программы необходимо было через компилирование исходных кодов, то теперь пакеты устанавливаются в бинарном виде, что сильно экономит время.

Зайдем за root, обновим дерево пакетов и поставим sudo (если вы добавляли пользователя при установке и хотите работать от него, иначе пропустите этот шаг и работайте от root):

Если вы этого не делали, система скажет, что утилита управления пакетами у вас не установлена и попросит подтверждения на ее установку. Соглашаемся.

При настройке системы очень часто приходится редактировать конфигурационные файлы. По умолчанию текстовым редактором в FreeBSD является vi. Хотя vi пользоваться довольно просто, вы в праве поставить любой другой текстовый редактор, например nano:

Запустим visudo для добавления пользователя как судоера:

Добавляем в конец:

Сохраняем файл и переключаемся на пользователя

Пользователю будет доступен sudo

Установка Apache

Перейдем к непосредственно установке веб-сервера Apache последней версии 2.4:

После установки пропишем Apache в /etc/rc.conf для автозагрузки после старта системы. Это можно сделать несколькими способами, первый — это вручную открыть в текстовом редакторе этот файл и добавить в него строку apache24_enable=YES:

Второй прописать все в одной команде с помощью echo:

И третий, самый правильный, с помощью утилиты sysrc. Она создана для безопасного редактирования файла /etc/rc.conf:

Для управления веб-сервером используем команды start, stop, restart и прочие (остальные можно посмотреть в мануале). Включим:

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

Должны увидеть заветную фразу It works! Это значит что веб-сервер успешно запустился и работает. Разумеется можно посмотреть и через обычный браузер набрав в нем адрес вашего сервера.

web-server freebsd

Установка MySQL

Для баз данных наших сайтов будем использовать MySQL. Установка:

Заодно подтянет и клиент (mysql56-client)

Аналогичным апачу образом прописываем в /etc/rc.conf:

И запускаем демон:

После этого необходимо запустить скрипт (идет в комплекте с MySQL) который произведет настройку безопасности и удалит некоторые конфиги по умолчанию:

Скрипт запросит ваш текущий пароль от рута mysql (не системы!). Мы его не задавали поэтому нажимаем Enter и устанавливаем новый. Далее можно на все вопросы отвечать утвердительно. Скрипт поинтересуется, хотим ли мы удалить анонимных пользователей, запретить удаленный доступ для рутовой учетки (хотя с недавнего времени порты MySQL наружу и так не светятся), а так же удалить тестовую базу и прочие вещи.

После этого мы можем заходить в MySQL и работать с нашими базами:

 Установка PHP

Если на вашем хостинге не будут располагаться древние сайты требующие строго PHP 5.3-5.6, то поставим современную и актуальную PHP 7.0. В случае если требует более старая версия просто заменяйте php70 на php56 в названиях пакетов. Установка PHP 7.0:

Функции mysql_* в PHP 7.0 имеют статус depricated, поэтому ставить пакет php70-mysql смысла нет.

После этого внесем изменения в конфиг Apache. У меня он по пути /usr/local/etc/apache24/httpd.conf Откройте его любым текстовым редактором и найдите строку начинающуюся с <IfModule dir_module> (Ctrl+W в nano, / в vi). Внесите в блок этого модуля  следующие изменения:

Это необходимо для правильного понимания Апачем что делать с файлами расширения php.

Перезагрузим сервер:

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

Тестирование PHP

Проверим работоспособность PHP. Для этого создадим файл info.php в директории, которая по умолчанию считается корневой папкой сайтов в apache (ее можно изменить по своему усмотрению в httpd.conf):

И внесем в него следующий текст:

Сохраняем и закрываем. Эта функция выводит информацию об установленном PHP. Заходим в браузер (lynx или обычный) по пути http://адрес_сервера/info.php и смотрим что получилось. Если все удачно, то увидим много информации о PHP, по которой можно сделать вывод как о его настройке и включенных модулях, так и о том что он работает!

web-server freebsd2

Итак, я вас поздравляю! FAMP стек установлен. И необходимый минимум для создания веб-сервера сделан. Далее идут задачи чисто прикладного характера под конкретную задачу, от обеспечения безопасности сервера, до организации пользовательского взаимодействия. Многие из них раскрываются на страницах этого блога. Удачи!

2 Комментариев

  1. 1. Кроме vi Фря имеет втроенный редактор ee. Это так , к слову.
    2. Афтор, как давно в Беркли портировали SUDO в Фряху? Они вообще в курсе этих нововведений? :)

    • 1) много редакторов хороших и разных (пользоваться мы ими, конечно, не будем)
      2) наверное в курсе, раз пишут в своей документации? https://www.freebsd.org/doc/handbook/security-sudo.html
      добавил в статью про установку sudo, но если человек не умеет в sudo, то что он вообще делает в фре?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *