Установка MySQL и phpMyAdmin на FreeBSD 11 с Apache и PHP 5.6
Введение
MySQL — свободная реляционная СУБД, которая хранит данные в табличном формате. phpMyAdmin — свободный веб-интерфейс на PHP для администрирования MySQL. В этой статье мы устанавливаем MySQL 5.7 и phpMyAdmin вместе с Apache и PHP 5.6 на FreeBSD 11 и добавляем практические рекомендации по безопасности, тестированию и альтернативам.
Важно: PHP 5.6 официально устарел; используйте его только если у вас есть совместимость с унаследованным ПО. В разделе «Альтернативы и миграция» описаны варианты обновления.
Основные варианты использования
- Быстрая локальная среда для разработки на FreeBSD 11.
- Лёгкий административный стек для небольших проектов.
- Учебная среда для изучения MySQL и phpMyAdmin.
Предварительные условия
- Минимальная установка FreeBSD 11.
- Привилегии root. Если вы на sudo-пользователе, выполните sudo -i.
Обновление базовой системы
Перед установкой пакетов обновите репозитории и пакеты:
pkg updatepkg upgradeПосле обновления можно продолжать.
Установка MySQL 5.7
Установка через pkg:
pkg install mysql57-server mysql57-clientВключите автозапуск в rc.conf:
sysrc mysql_enable="yes"Запустите сервер:
service mysql-server startПолучение начального пароля root (установленного установщиком):
cat $HOME/.mysql_secretПример вывода, где виден пароль:
# cat $HOME/.mysql_secret
# Password set for user 'root@localhost' at 2017-07-23 17:42:39
y4j?>sHsuh9rРекомендуется запустить скрипт безопасности:
mysql_secure_installationЭтот скрипт прочитает пароль из $HOME/.mysql_secret и предложит включить плагин VALIDATE PASSWORD, сменить пароль root, удалить анонимных пользователей, запретить удалённый вход root, удалить тестовую БД и перезагрузить таблицы привилегий.
Пример ввода при работе скрипта (следуйте подсказкам):
Press y|Y for Yes, any other key for No: y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Change the password for root ? : y
Do you wish to continue with the password provided? : y
Remove anonymous users? : y
Disallow root login remotely? : y
Remove test database and access to it? : y
Reload privilege tables now? : y
All done!Ключевые команды проверки:
mysql -u root -pПри успешном входе вы увидите приглашение MySQL.
Установка веб-сервера Apache 2.4
pkg install apache24Включите в автозагрузку и запустите:
sysrc apache24_enable="YES"
service apache24 startОткройте в браузере http://Your_Server_IP — при успешном запуске вы увидите страницу Apache.

Установка и настройка PHP 5.6
phpMyAdmin требует PHP. Установим PHP 5.6 и модули, которые чаще всего требуются:
pkg install mod_php56 php56-session php56-xml php56-ctype php56-openssl php56-mcrypt php56-filter php56-gd php56-json php56-mysqli php56-mbstring php56-zlib php56-zip php56-bz2Скопируйте production-конфигурацию:
cp /usr/local/etc/php.ini-production /usr/local/etc/php.iniПроверьте версию PHP:
php -vПример вывода:
# php -v
PHP 5.6.31 (cli) (built: Jul 13 2017 01:25:09)Включите обработку PHP в Apache: отредактируйте /usr/local/etc/apache24/httpd.conf (nano или любой другой редактор):
nano /usr/local/etc/apache24/httpd.confНайдите блок DirectoryIndex и добавьте index.php:
DirectoryIndex index.php index.html
В конце файла добавьте обработчики для .php и .phps:
SetHandler application/x-httpd-php
SetHandler application/x-httpd-php-source
Перезапустите Apache:
service apache24 restartВажно: PHP 5.6 больше не получает обновлений безопасности. Планируйте миграцию на PHP 7.x или 8.x в ближайшем будущем.
Установка phpMyAdmin
phpMyAdmin есть в репозитории FreeBSD:
pkg install phpmyadminПриложение устанавливается в /usr/local/www/phpMyAdmin/.
Скопируйте пример конфигурации:
cp /usr/local/www/phpMyAdmin/config.sample.inc.php /usr/local/www/phpMyAdmin/config.inc.phpДобавьте алиас в конфигурацию Apache (опять же редактируйте /usr/local/etc/apache24/httpd.conf):
Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"
Options None
AllowOverride Limit
Require all granted
Перезапустите Apache:
service apache24 restartДоступ к phpMyAdmin
Откройте в браузере:
http://Your_Server_IP/phpmyadmin/
Войдите под root и паролем, установленным ранее. Интерфейс позволяет создавать БД, пользователей, выполнять SQL-запросы, импорт/экспорт.

Создание базы: нажмите New, укажите имя и кодировку, затем Create.

SQL-редактор и выполнение запросов:

Создание/управление пользователями — вкладка Users:

Импорт дампа — вкладка Import:

Базовая проверка и тесты
Критерии приёмки
- MySQL сервер запущен и доступен локально: mysql -u root -p → успешный вход.
- Apache отвечает по HTTP и обслуживает PHP-страницы: разместите файл /usr/local/www/apache24/data/info.php с содержимым и откройте его.
- phpMyAdmin доступен по /phpmyadmin/ и позволяет создать базу и пользователя.
Мини-тесты (пример):
# Проверка сервиса MySQL
pgrep -a mysqld
# Проверка порта 3306
sockstat -4 -l | grep 3306
# Проверка Apache
service apache24 status
# Проверка обработки PHP
curl -s http://127.0.0.1/info.php | grep "PHP Version"Рекомендации по безопасности (жёсткие, обязательные для прод)
- Отключить удалённый вход root (mysql_secure_installation предлагает это сделать).
- Настроить firewall (pf или ipfw) и разрешать доступ к 3306 только с доверенных хостов.
- Ограничить доступ к /phpmyadmin/ по IP или настроить дополнительную аутентификацию (Basic Auth) в Apache.
- Включить HTTPS для Apache (Let’s Encrypt / certbot) и перенаправлять весь трафик на HTTPS.
- Регулярные бэкапы: используйте mysqldump и/или бинарные бэкапы с планировщиком cron.
- Обновляйте пакеты и планируйте миграцию с устаревших версий PHP.
Пример защиты phpMyAdmin в Apache (ограничение по IP):
Require ip 192.0.2.0/24
Require ip 203.0.113.5
Или добавить базовую аутентификацию:
AuthType Basic
AuthName "Restricted"
AuthUserFile /usr/local/etc/apache24/.phpmyadmin_htpasswd
Require valid-user
Резервное копирование и восстановление
Простой регулярный дамп всех баз:
mysqldump -u root -p --all-databases > /root/all_databases_$(date +%F).sqlВосстановление:
mysql -u root -p < /root/all_databases_YYYY-MM-DD.sqlДля больших БД используйте инструменты инкрементального резервного копирования и репликацию.
Траблшутинг: распространённые проблемы и решения
- Не стартует mysql-server: проверьте /var/db/mysql/ и права, логи в /var/log/messages или /var/db/mysql/*.err.
- Apache не обрабатывает PHP: убедитесь, что mod_php установлен и в httpd.conf есть SetHandler для .php; перезапустите сервис.
- phpMyAdmin выдаёт ошибку подключения: проверьте, что php56-mysqli установлен и MySQL слушает нужный адрес.
- Пароль из $HOME/.mysql_secret не найден: проверьте, под каким пользователем вы смотрите файл; установщик пишет файл в домашнюю директорию root.
Альтернативы и миграция
- MariaDB: полностью совместима с большинством MySQL-инсталляций и часто является рекомендованной заменой. На FreeBSD пакеты mariadb100-server / mariadb100-client (номера версии могут отличаться) позволяют легко перейти.
- Percona Server: альтернатива с улучшениями для больших нагрузок.
Миграция к MariaDB: установите пакет mariadb-server, остановите mysql, скопируйте данные или используйте дамп mysqldump и восстановите в MariaDB. Тестируйте приложения на тестовой среде перед миграцией в прод.
Решение по выбору СУБД (простой поток):
flowchart TD
A[Нужна совместимость с MySQL] --> B{Нужна высокая производительность}
B -- Да --> C[Percona Server или MariaDB]
B -- Нет --> D[Оставить MySQL]
C --> E[Тестирование и нагрузочное тестирование]
D --> EРоли и чек-листы
Системный администратор
- Установить пакеты и включить службы в rc.conf.
- Настроить бэкапы и мониторинг.
- Настроить firewall и SSL для веб-интерфейса.
Разработчик
- Проверить совместимость приложения с MySQL 5.7 и PHP 5.6.
- Тестировать миграцию на новую версию PHP в изолированной среде.
Оператор БД
- Регулярно проверять журналы ошибок и состояние репликации (если есть).
- Проводить ротацию бэкапов и тестировать восстановление.
Совместимость и замечания по версиям
- FreeBSD 11 и пакеты, указанные в руководстве, актуальны для момента написания. В репозиториях номера пакетов и версии могут обновляться.
- PHP 5.6 — устаревшая версия. Планируйте переход на PHP 7.4 или выше, если ваше приложение совместимо.
- MySQL 5.7 остаётся поддерживаемым дистрибутивом, но проверьте требования новых приложений.
Быстрый метод обновления стека (мини-процесс)
- Обновите системные пакеты: pkg update && pkg upgrade
- Установите и включите MySQL: pkg install mysql57-server mysql57-client; sysrc mysql_enable=”yes”; service mysql-server start
- Защитите MySQL: mysql_secure_installation
- Установите Apache и PHP, настройте обработку .php.
- Установите phpMyAdmin и добавьте Alias в Apache.
- Настройте Firewall и SSL, выполните бэкап и тесты.
Факто-бокс: что важно помнить
- Требуемые компоненты: FreeBSD 11, pkg, mysql57-server, apache24, mod_php56, phpmyadmin.
- Важные каталоги: /usr/local/www/phpMyAdmin/, /usr/local/etc/apache24/httpd.conf, /usr/local/etc/php.ini, $HOME/.mysql_secret.
- Обязательные меры безопасности: mysql_secure_installation, firewall, SSL/HTTPS.
Краткое резюме
Мы установили MySQL 5.7, Apache 2.4, PHP 5.6 и phpMyAdmin на FreeBSD 11, настроили интеграцию PHP/Apache и подробно рассмотрели шаги по безопасности, резервному копированию и отладке. Рассмотрены альтернативы и даны практические чек-листы для разных ролей.
Важное: планируйте обновление PHP и следите за обновлениями безопасности для всех компонентов.
Однострочный глоссарий
- MySQL: реляционная СУБД; phpMyAdmin: веб-интерфейс для MySQL; Apache: HTTP-сервер; php56-mysqli: расширение PHP для работы с MySQL.
Конец статьи.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента