Void Linux обрабатывает сервисы иначе, чем большинство дистрибутивов. Здесь нет никакой systemd. Runit управляет всем, а менеджер пакетов (xbps) быстрый и минимальный. Настройка стека LAMP на Void занимает около 10 минут
В этом руководстве рассказывается об установке Apache, MariaDB и PHP на Void Linux. Мы также рассмотрим два практических сценария: развертывание приложения PHP с подключением MariaDB и размещение простого сайта HTML/PHP с виртуальными хостами.
Предварительные условия
- Сервер под управлением Void Linux.
- Привилегии пользователя: пользователь root или не root с привилегиями sudo.
Конвенции
| |
Обновите систему
Свежая установка Void Linux требует обновления пакетов до последних доступных версий.
| |
После того, как xbps включен, запустите полное обновление системы.
| |
Система может нуждаться в перезагрузке после обновления.
| |
Установите Apache Web Server
Стек LAMP является ярлыком для Linux, Apache, MySQL и PHP и очень важен для создания веб-приложений. Первым стеком LAMP будет веб-сервер Apache. Чтобы установить веб-сервер Apache, выполните следующую команду:
| |
Подтвердите установленную версию:
| |
На выходе должна быть показана версия 2.4.65 или новее:
| |
Void Linux использует runit вместо systemd. Чтобы включить услугу, вы создаёте симлинк из /etc/sv/ в /var/service/. Это позволяет сервису загружаться и сразу же запускать его.
| |
Дайте ему пару секунд, затем убедитесь, что Apache работает:
| |
На выходе должна отображаться услуга с PID и временем безотказной работы:
| |
Корень документа Apache по умолчанию на Void Linux - это /srv/www/apache, а не /var/www/html, как на Debian или RHEL. Основной конфигурационный файл находится по адресу /etc/apache/httpd.conf.
Установите MariaDB
Следующим в стеке LAMP будет служба баз данных MariaDB. Чтобы установить его, выполните команду ниже:
| |
Включите и запустите службу MariaDB через runit:
| |
Подождите несколько секунд для инициализации MariaDB, а затем проверьте его статус:
| |
Здоровый сервис выглядит так:
| |
Далее, запустите интерактивный скрипт безопасности, чтобы установить root пароль, удалить анонимных пользователей и удалить тестовую базу данных MariaDB:
| |
После выполнения команды, вы должны выполнить следующие шаги, чтобы обеспечить установку MariaDB:
| |
Убедитесь, что вы можете войти с новым паролем:
| |
Результат подтверждает MariaDB 11.1.2:
| |
Установите PHP вместе с модулем Apache
И последним из стека LAMP будет PHP, а также его расширения. Чтобы установить PHP с расширениями, выполните следующую команду:
| |
Это включает в себя php8.4, php8.4-apache и php8.4-mysql (включая драйверы mysqli и PDO MySQL).
После установки проверьте установку с помощью следующей команды:
| |
Настройка Apache для использования PHP
Откройте файл конфигурации Apache:
| |
Найдите линии модулей MPM (около линии 66) и внесите следующие изменения:
| |
Затем прокрутите внизу файла и добавьте конфигурацию модуля PHP:
| |
libphp.so автоматически указывает на активную версию PHP (в настоящее время libphp8.4.so), поэтому вам не нужно будет обновлять эту строку при обновлении PHP.
Проверьте конфигурацию для синтаксических ошибок:
| |
Если все правильно, вы увидите:
| |
Перезагрузите Apache для загрузки модуля PHP:
| |
Включить расширения PHP
Расширение MySQL установлено, но не включено автоматически. PHP на Void считывает дополнительные файлы конфигурации из /etc/php8.4/conf.d/. Создайте этот каталог и включите расширения:
| |
Включите расширения MySQLi и PDO MySQL:
| |
Проверьте, загружаются ли расширения:
| |
Все три модуля, связанные с MySQL:
| |
Перезагрузите Apache еще раз, чтобы получить новые расширения:
| |
Создание базы данных и пользователя
Стек LAMP сам по себе мало что даёт. Вот как подключить PHP к MariaDB с помощью рабочего примера. Во-первых, создать базу данных и пользователя для приложения и назначить правильные разрешения:
| |
Запустите эти SQL-высказывания внутри оболочки MariaDB:
| |
Замените YourStrongPassword сильным, уникальным паролем.
Теперь создайте файл PHP, который подключается к MariaDB, создаёт таблицу, вставляет строку и читает её обратно:
| |
Посетите http://your-server-ip/app.php в своём браузере. Вы должны увидеть таблицу с тестовым сообщением, подтверждающим, что PHP может читать и писать на MariaDB. Каждое обновление страницы добавляет еще один ряд.
Виртуальные хосты Apache
Для размещения нескольких сайтов на одном сервере Void Linux требуются виртуальные хосты Apache. Откройте основной файл конфигурации:
| |
Найдите и откомментируйте эту строку, чтобы включить виртуальную конфигурацию хоста:
| |
Теперь отредактируйте файл виртуальных хостов:
| |
Замените конфигурацией вашего сайта:
| |
Создайте документ root и каталог журнала:
| |
Добавьте тестовую страницу для каждого сайта:
| |
Проверьте конфигурацию и перезапустите Apache:
| |
Каждый сайт теперь отвечает на своё собственное имя хоста на порту 80. Направьте свои записи DNS (или локальный файл /etc/hosts) на IP-адрес сервера и проверьте оба сайта самостоятельно.
Установите дополнительные расширения PHP
Для большинства приложений PHP требуется больше, чем базовая установка. Void предоставляет солидный набор расширений через свои репозитории. Установите наиболее часто необходимые:
| |
После установки каждому расширению требуется активировать файл *.ini в каталоге conf.d:
| |
Перезапустите Apache и подтвердите полный список модулей:
| |
Вы должны увидеть 34+ загруженных модулей, включая gd, intl, mysqli, pdo_mysql, sqlite3 и pdo_sqlite.
Другие доступные расширения, которые вы можете установить таким же образом, включают: php-redis, php-ldap, php-pgsql, php-sodium, php-tidy и php-xsl. Запустите xbps-query -Rs php- чтобы увидеть полный список.
Если вы приходите из systemd дистрибутивов, управление сервисами runit требует привыкания.
Одно ключевое отличие: runit запускает услугу в тот момент, когда вы связываете её с /var/service/. Не существует отдельного шага «enable» и «start». Удаление symlink останавливает и отключает сервис.
Завершение
Если вам понравился этот пост о том, как установить стек LAMP на Void Linux, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.