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 хостинг — напълно управлявани или неуправлявани 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

Използвайте spacebar за избор на 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 — Актуализиране на phpMyAdmin Apache конфигурацията

Редактирайте конфигурационния файл на 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 — Използване на Let’s Encrypt SSL сертификат (Безплатно)

Ако имате домейн, сочещ към вашия сървър, инсталирайте 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 сертификати, с опции от 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 разширения:

sudo apt install php-mbstring php-zip php-gd php-json php-curl -y
sudo systemctl restart apache2

Празна страница след вход

15%

Спести 15% на всички хостинг услуги

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код:

Skills
За начало