Ana içeriğe geç

📌 phpMyAdmin Kurulumu: Ubuntu Üzerinde Güvenli Yapılandırma Rehberi

Bu rehberde, Ubuntu sunucularında phpMyAdmin’i kurmayı ve güvenlik odaklı şekilde yapılandırmayı öğreneceksiniz.
MySQL ile komut satırı üzerinden uğraşmadan veritabanlarınızı yönetebilir, aynı zamanda phpMyAdmin’i HTTPS, şifre koruması ve erişim kısıtlamalarıyla güvence altına alabilirsiniz.


🔧 1. Gereksinimler

Bu adımlara başlamadan önce aşağıdaki kurulumlara sahip olmalısınız:

  • Ubuntu üzerinde çalışan bir sunucu
  • sudo yetkisine sahip bir kullanıcı
  • UFW yapılandırılmış güvenlik duvarı
  • Apache + MySQL + PHP içeren LAMP yapısı
  • Domaininizin sunucuya yönlendirilmiş olması (örnek: panel.rabisu.cloud)

🚀 2. phpMyAdmin Kurulumu

1. Önce paket listesini güncelleyin:

sudo apt update

Paket dizinlerini yeniler.

2. Ardından phpMyAdmin ve gerekli PHP modüllerini yükleyin:


sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

phpMyAdmin ile uyumlu PHP eklentilerini kurar.

3. Kurulum sırasında yapılacak seçimler:

  1. Web sunucusu seçimi: apache2 işaretlenmeli (SPACE → TAB → ENTER).

  2. dbconfig-common kullanımı: Yes seçilmeli.

  3. phpMyAdmin için MySQL uygulama şifresi belirlenmeli.

  4. Kurulum sonrası mbstring modülünü etkinleştirin:


sudo phpenmod mbstring

PHP çoklu karakter seti desteğini aktif eder.

2.1 Apache’yi yeniden başlatın:


sudo systemctl restart apache2

Yapılandırmaları uygular.


🔐 3. MySQL Kullanıcı Doğrulamasını Düzenleme

  1. phpMyAdmin’e giriş yapabilmek için MySQL root kullanıcısının şifre ile doğrulanması gerekir.

3.1 MySQL’e girin:


sudo mysql

Tüm kullanıcıların doğrulama yöntemini görüntüleyin:


SELECT user, plugin FROM mysql.user;

Root kullanıcısı auth_socket görünüyor ise, parola doğrulamaya geçin:


ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'GucluBirSifre!';

Eski PHP sürümlerinde uyumsuzluk yaşarsanız alternatif:


ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'GucluBirSifre!';

Yeni doğrulamanın aktif olduğunu kontrol edin:


SELECT user, plugin FROM mysql.user;

👤 4. phpMyAdmin İçin Özel Kullanıcı Oluşturma

1. Root kullanıcıyla giriş önerilmez. Bunun yerine ayrı bir MySQL kullanıcısı oluşturabilirsiniz:


CREATE USER 'yonetici'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Sifre123!';
GRANT ALL PRIVILEGES ON *.* TO 'yonetici'@'localhost' WITH GRANT OPTION;

phpMyAdmin için özel yetkili kullanıcı oluşturur.


🛡️ 5. phpMyAdmin Dizini İçin Ek Güvenlik

phpMyAdmin sık saldırıya uğrayan bir paneldir. Ek doğrulama katmanı eklemek için .htaccess koruması uygulayın.

5.1 Önce Apache yapılandırmasında izin verin:


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

Directory bloğuna şu satırı ekleyin:


AllowOverride All

Apache’yi yeniden başlatın:


sudo systemctl restart apache2

Şimdi phpMyAdmin dizininde .htaccess oluşturun:


sudo nano /usr/share/phpmyadmin/.htaccess

1. İçerik:


AuthType Basic
AuthName "Erişim Kısıtlamalı Bölge"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

2. Şifre dosyasını oluşturun:


sudo htpasswd -c /etc/phpmyadmin/.htpasswd adminuser

Ek HTTP auth katmanı ekler.


🔒 6. HTTPS (SSL/TLS) Etkinleştirme

phpMyAdmin’e şifresiz HTTP üzerinden erişmek ciddi risk oluşturur.

6.1 Certbot ve Apache eklentisini kurun:


sudo apt install certbot python3-certbot-apache

6.1 SSL sertifikasını alın:


sudo certbot --apache

Tüm phpMyAdmin trafiğini HTTPS'e yönlendirir.

6.2 Otomatik yenilemeyi doğrulayın:


sudo systemctl status certbot.timer

🛰️ 7. SSH Tüneli ile Güvenli Erişim (İsteğe Bağlı)

PhpMyAdmin’i tamamen dış erişime kapatabilir ve yalnızca SSH tüneli ile erişebilirsiniz.

7.1 Yerel makinede çalıştırın:


ssh -L 8888:localhost:80 ubuntu@sunucu-ip

8888 portunu sunucu üzerindeki 80 portuna yönlendirir.

1. Tarayıcıdan açın:


http://localhost:8888/phpmyadmin

🛠️ 8. Yaygın phpMyAdmin Hataları ve Çözümleri

8.1 ❗ 404 Not Found

1. Apache bağlantısı yapılmamış:


sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-enabled/phpmyadmin.conf
sudo systemctl reload apache2

2. ❗ Access Denied (MySQL)

Kullanıcı yetkileri veya parola hatalı.


SELECT user, host FROM mysql.user;

3. ❗ CSRF Token Mismatch Oturum süresi dolmuş.

  • Tarayıcı çerezlerini temizleyin
  • PHP oturum süresini artırın:

session.gc_maxlifetime = 1440

4. ❗ 403 Forbidden

Neden?: .htaccess çalışmıyor veya izin hatası.

Düzeltme:


sudo chown -R www-data:www-data /usr/share/phpmyadmin


🙋‍♂️ 9. Sıkça Sorulan Sorular (SSS)

1. phpMyAdmin paneli neden HTTP yerine HTTPS ile açılmalı? Çünkü MySQL şifreniz açık metin olarak taşınır. HTTPS tüm trafiği şifreler.

2. Root ile giriş yapmak güvenli mi? Hayır. Saldırı yüzeyini artırır. Yetkilendirilmiş ayrı kullanıcı önerilir.

3. phpMyAdmin dizininin adını değiştirmek güvenlik sağlar mı? Tam koruma sağlamaz ama bot taramalarını azaltır.

4. phpMyAdmin erişimini IP bazlı sınırlandırabilir miyim? Evet. Apache yapılandırmasına:


Require ip 203.0.113.5

ekleyebilirsiniz.

5. phpMyAdmin tamamen nasıl kaldırılır?


sudo apt purge phpmyadmin
sudo rm -rf /usr/share/phpmyadmin
sudo rm -rf /etc/phpmyadmin

🎯 Sonuç

Bu rehber ile phpMyAdmin’i Ubuntu üzerinde kurup güvenli hale getirdiniz. SSL yapılandırması, ek kimlik doğrulama, MySQL kullanıcı yetkilendirmesi ve isteğe bağlı SSH tünelleme adımlarıyla paneliniz artık çok daha güvenli.

Tüm bu yapılandırmaları Rabisu Bulut’un yüksek performanslı altyapısında kolayca uygulayabilirsiniz.