15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
01.11.2024

Як встановити та захистити phpMyAdmin на Ubuntu (Повний посібник)

phpMyAdmin — один із найбільш широко використовуваних інструментів з відкритим кодом для управління базами даних MySQL і MariaDB через веб-інтерфейс. Незалежно від того, чи ви розробник, системний адміністратор чи власник веб-сайту, він значно спрощує складні операції з базами даних — від виконання SQL-запитів до імпорту/експорту даних — без необхідності знання командного рядка.

Однак, оскільки phpMyAdmin за замовчуванням доступний через публічну URL-адресу, залишення його незахищеним — серйозний ризик. Цей комплексний посібник проведе вас через встановлення phpMyAdmin на Ubuntu 20.04/22.04, його налаштування за допомогою Apache та посилення безпеки від несанкціонованого доступу за допомогою кількох рівнів захисту.

Зміст

  1. Передумови
  2. Крок 1 — Оновлення системи та індексу пакетів
  3. Крок 2 — Встановлення phpMyAdmin
  4. Крок 3 — Налаштування Apache для phpMyAdmin
  5. Крок 4 — Захист phpMyAdmin за допомогою HTTP Basic Authentication
  6. Крок 5 — Обмеження доступу за IP-адресою (необов’язково, але рекомендується)
  7. Крок 6 — Включення SSL для шифрування трафіку
  8. Крок 7 — Доступ до phpMyAdmin
  9. Усунення неполадок із поширеними проблемами
  10. Висновок

Передумови {#prerequisites}

Перш ніж розпочати, переконайтеся, що виконані такі вимоги:

  • Сервер, на якому працює Ubuntu 20.04 або 22.04 (фізичний або віртуальний)
  • MySQL або MariaDB встановлені та активно працюють
  • Встановлений веб-сервер Apache2
  • Обліковий запис користувача з привілеями sudo
  • Доменне ім’я або статична IP-адреса, яка вказує на ваш сервер
  • (Рекомендується) Дійсний SSL-сертифікат для зашифрованого доступу HTTPS

> Порада: Якщо у вас ще немає серверного середовища, розгляньте AlexHost VPS Hosting — повністю керовані або некеровані плани Linux VPS з миттєвою підготовкою, root-доступом та SSD-сховищем, ідеальні для безпечного запуску phpMyAdmin.

Крок 1 — Оновлення системи та індексу пакетів {#step-1}

Завжди починайте з оновлення списків пакетів та застосування будь-яких очікуючих оновлень системи. Це гарантує, що ви встановите найновішу доступну версію phpMyAdmin та уникнете конфліктів залежностей.

sudo apt update && sudo apt upgrade -y

Крок 2 — Встановлення phpMyAdmin {#step-2}

Встановіть phpMyAdmin за допомогою офіційного репозиторію Ubuntu APT:

sudo apt install phpmyadmin -y

Під час встановлення з’явиться інтерактивний майстер конфігурації. Уважно виконайте такі кроки:

2.1 — Вибір веб-сервера

Вам буде запропоновано вибрати веб-сервер для автоматичного налаштування:

Please choose the web server that should be automatically configured to run phpMyAdmin.

  [*] apache2
  [ ] lighttpd

Використовуйте пробіл для вибору apache2, потім натисніть Tab для виділення <Ok> та натисніть Enter.

2.2 — Налаштування бази даних за допомогою dbconfig-common

Далі вас запитають, чи потрібно налаштувати базу даних для phpMyAdmin за допомогою dbconfig-common:

Configure database for phpmyadmin with dbconfig-common?

Виберіть Так. Потім вам буде запропоновано ввести пароль MySQL-додатка для внутрішнього користувача бази даних phpMyAdmin. Введіть надійний пароль або залиште поле порожнім, щоб він був згенерований автоматично.

2.3 — Перевірка встановлення

Після завершення встановлення підтвердьте, що phpMyAdmin встановлено:

dpkg -l phpmyadmin

Ви повинні побачити рядок, що показує встановлену версію пакета.

Крок 3 — Налаштування Apache для phpMyAdmin {#step-3}

У деяких конфігураціях Ubuntu файл конфігурації Apache для phpMyAdmin не включається автоматично. Перевірте та включіть його вручну.

3.1 — Включення конфігурації phpMyAdmin

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin

3.2 — Перевірка файлу конфігурації

Відкрийте файл конфігурації для перегляду його вмісту:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Файл повинен містити такі директиви (або подібні):

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
        </RequireAny>
    </IfModule>
</Directory>

<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
        </RequireAny>
    </IfModule>
</Directory>

Збережіть та закрийте файл за допомогою CTRL+X, потім Y, потім Enter.

3.3 — Перезавантаження Apache

Застосуйте зміни конфігурації:

sudo systemctl restart apache2

Перевірте, що Apache працює без помилок:

sudo systemctl status apache2

Крок 4 — Захист phpMyAdmin за допомогою HTTP Basic Authentication {#step-4}

За замовчуванням будь-хто, хто знає IP-адресу вашого сервера, може отримати доступ до сторінки входу phpMyAdmin. Додавання рівня HTTP Basic Authentication створює другі ворота паролю перед тим, як користувачі побачать форму входу phpMyAdmin.

4.1 — Встановлення apache2-utils

sudo apt install apache2-utils -y

4.2 — Створення файлу паролю та користувача

Створіть файл .htpasswd та додайте свого першого адміністративного користувача. Замініть your_admin_user на ваше обране ім’я користувача:

sudo mkdir -p /etc/phpmyadmin
sudo htpasswd -c /etc/phpmyadmin/.htpasswd your_admin_user

Вам буде запропоновано ввести та підтвердити пароль. Щоб додати додаткових користувачів пізніше (без прапора -c, який перезапише файл):

sudo htpasswd /etc/phpmyadmin/.htpasswd another_user

4.3 — Оновлення конфігурації Apache для phpMyAdmin

Відредагуйте файл конфігурації phpMyAdmin, щоб забезпечити автентифікацію:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Знайдіть блок <Directory /usr/share/phpmyadmin> та додайте всередину нього такі рядки:

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    # HTTP Basic Authentication
    AuthType Basic
    AuthName "Restricted Access — Authorized Personnel Only"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

    <IfModule mod_authz_core.c>
        <RequireAny>
            Require valid-user
        </RequireAny>
    </IfModule>
</Directory>

Збережіть та закрийте файл.

4.4 — Перезавантаження Apache

sudo systemctl restart apache2

Тепер перехід до /phpmyadmin спочатку запропонує облікові дані HTTP-автентифікації перед відображенням сторінки входу phpMyAdmin.

Крок 5 — Обмеження доступу за IP-адресою (необов’язково, але рекомендується) {#step-5}

Для ще більш надійного захисту обмежте доступ до phpMyAdmin лише для конкретних довірених IP-адрес. Це особливо корисно, якщо ви завжди отримуєте доступ до свого сервера з фіксованої IP-адреси (наприклад, мережа офісу або VPN).

Відредагуйте конфігурацію Apache для phpMyAdmin:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Змініть блок <Directory> так, щоб він включав обмеження на основі IP:

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    AuthType Basic
    AuthName "Restricted Access"
    AuthUserFile /etc/phpmyadmin/.htpasswd

    <RequireAll>
        Require valid-user
        Require ip 203.0.113.50
        # Add more trusted IPs below:
        # Require ip 198.51.100.0/24
    </RequireAll>
</Directory>

Замініть 203.0.113.50 на вашу фактичну довірену IP-адресу або підмережу. Збережіть файл та перезавантажте Apache:

sudo systemctl restart apache2

> Примітка: Якщо ваша IP-адреса часто змінюється, розгляньте використання VPN зі статичною IP-адресою або покладайтеся лише на HTTP Basic Authentication у поєднанні з SSL.

Крок 6 — Включення SSL для шифрування трафіку {#step-6}

Передача облікових даних бази даних через звичайний HTTP — це критичний ризик безпеки. Ви завжди повинні отримувати доступ до phpMyAdmin через HTTPS. Існує два основних підходи:

Варіант A — Використання SSL-сертифіката Let’s Encrypt (безплатно)

Якщо у вас є доменне ім’я, яке вказує на ваш сервер, встановіть Certbot:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com

Certbot автоматично налаштує Apache для перенаправлення HTTP на HTTPS та встановить безплатний сертифікат з автоматичним поновленням.

Варіант B — Використання комерційного SSL-сертифіката

Для виробничих середовищ, які обробляють конфіденційні дані, комерційно виданий SSL-сертифікат забезпечує більш надійні сигнали довіри та захист гарантією. Ви можете отримати надійні SSL-сертифікати безпосередньо від AlexHost SSL Certificates, з варіантами від Domain Validation (DV) до Extended Validation (EV) сертифікатів.

Після встановлення вашого SSL-сертифіката переконайтеся, що ваша URL-адреса phpMyAdmin використовує https://:

https://yourdomain.com/phpmyadmin

Крок 7 — Доступ до phpMyAdmin {#step-7}

Після встановлення та застосування заходів безпеки відкрийте браузер та перейдіть на:

https://your_server_ip_or_domain/phpmyadmin

Ви зіткнетеся з двома запитами на автентифікацію послідовно:

  1. Запит HTTP Basic Authentication — Введіть ім’я користувача та пароль, які ви створили за допомогою htpasswd
  2. Сторінка входу phpMyAdmin — Введіть ваше ім’я користувача MySQL/MariaDB (наприклад, root) та його пароль

Після успішного входу ви матимете повний доступ до ваших баз даних MySQL через графічний інтерфейс phpMyAdmin.

Усунення неполадок із поширеними проблемами {#troubleshooting}

phpMyAdmin повертає помилку 404 Not Found

Конфігурація Apache може бути не пов’язана або не включена. Запустіть:

sudo a2enconf phpmyadmin
sudo systemctl reload apache2

Також перевірте, що символічне посилання існує:

ls -la /etc/apache2/conf-available/phpmyadmin.conf

Помилка “Cannot Connect to MySQL Server”

Перевірте, що MySQL/MariaDB працює:

sudo systemctl status mysql
# or for MariaDB:
sudo systemctl status mariadb

Якщо він зупинений, запустіть його:

sudo systemctl start mysql

HTTP 500 Internal Server Error

Це часто вказує на відсутність модуля PHP. Встановіть необхідні розширення PHP:

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати