🔒 Ubuntu'da phpMyAdmin Kurulumu ve Güvenli Yapılandırma Rehberi
phpMyAdmin, MySQL veritabanlarını komut satırı yerine web arayüzü üzerinden yönetmek isteyen kullanıcılar için en popüler araçlardan biridir. Bu rehberde, phpMyAdmin’i Ubuntu sunucusuna kuracak, gerekli MySQL kullanıcı yapılandırmalarını yapacak ve Apache üzerinde ek güvenlik katmanları ile koruma sağlayacaksınız.
🧠 Bu Rehberde Ne Öğreneceksiniz?
- phpMyAdmin’i Ubuntu’da nasıl kuracağınızı
- MySQL root veya özel kullanıcı için parola doğrulamasını nasıl ayarlayacağınızı
- Apache .htaccess ile ikinci bir güvenlik duvarı oluşturmayı
- phpMyAdmin’i saldırılara karşı güçlendirmeyi
1. Gereksinimler
Bu kurulumu yapmadan önce aşağıdaki bileşenlerin hazır olması gerekir:
- Ubuntu sunucu (instance) – sudo yetkili, root olmayan kullanıcı
- UFW güvenlik duvarı etkin
- LAMP yığını (Linux, Apache, MySQL, PHP) kurulu
- SSL/HTTPS yapılandırılmış (Let’s Encrypt önerilir)
2. phpMyAdmin Kurulumu
Önce paket listenizi güncelleyin:
sudo apt update
Bu komut paket dizinini günceller.
2.1 phpMyAdmin ve gerekli PHP modüllerini kurun:
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
Bu komut phpMyAdmin’i ve gerekli PHP uzantılarını yükler.
- ✔ Kurulum sırasında şu seçimleri yapın:
-
apache2 → SPACE → TAB → ENTER
-
dbconfig-common → Yes
- phpMyAdmin MySQL uygulama parolasını belirleyin
- ⚠ Validate Password Eklentisi Hatası Çıkarsa MySQL’e girin:
sudo mysql
Eklentiyi geçici devre dışı bırakın:
UNINSTALL COMPONENT "file://component_validate_password";
- Kurulumu tekrar çalıştırın:
sudo apt install phpmyadmin
Sonrasında eklentiyi yeniden aktifleştirebilirsiniz:
INSTALL COMPONENT "file://component_validate_password";
- mbstring Uzantısını Etkinleştirin
sudo phpenmod mbstring
sudo systemctl restart apache2
Bu adım phpMyAdmin’in doğru çalışması için gereklidir.
3. MySQL Kullanıcı Doğrulamasını Yapılandırma
- phpMyAdmin’e giriş yapmak için ya root hesabını parola ile doğrulamalı ya da özel bir MySQL yöneticisi oluşturmalısınız.
3.1 ✔ Root Kullanıcısını Parola ile Girişe Çevirme
- MySQL kabuğuna girin:
sudo mysql
Root doğrulama yöntemini değiştirin:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'GUCLU_PAROLA';
Eski PHP sürümleri için alternatif:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'GUCLU_PAROLA';
- ✔ phpMyAdmin İçin Özel Yönetici Kullanıcısı Oluşturma (Önerilir)
- Yeni kullanıcı oluşturun:
CREATE USER 'tr_yonetici'@'localhost' IDENTIFIED BY 'SAGLAM_BIR_PAROLA';
- Yetkileri verin:
GRANT ALL PRIVILEGES ON *.* TO 'tr_yonetici'@'localhost' WITH GRANT OPTION;
Çıkın:
exit
- Artık şu adres ile giriş yapabilirsiniz:
https://alanadiniz.com/phpmyadmin
4. phpMyAdmin’i Ek Parola Katmanı ile Güçlendirme
phpMyAdmin saldırganlar tarafından sık hedef alındığı için Apache .htaccess koruması önerilir.
4.1 Apache Üzerinde .htaccess Yetkisini Açma
- Yapılandırma dosyasını açın:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
- Aşağıdaki satırı Directory bloğuna ekleyin:
AllowOverride All
- Apache'yi yeniden başlatın:
sudo systemctl restart apache2
3. .htaccess Dosyasını Oluşturma
3.1 phpMyAdmin dizinine dosya oluşturun:
sudo nano /usr/share/phpmyadmin/.htaccess
- İçerik:
AuthType Basic
AuthName "Kisitli Alan"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
3.2 Parola Dosyasını Oluşturma
- İlk kullanıcıyı ekleyin:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd apache_admin
- Ek kullanıcı eklemek için:
sudo htpasswd /etc/phpmyadmin/.htpasswd yeni_kullanici
- Apache’yi yeniden başlatın:
sudo systemctl restart apache2
-
Artık phpMyAdmin’e erişmeden önce:
-
Apache .htaccess parolası →
-
MySQL giriş ekranı →
İki aşamalı güvenlik sağlanmış olur.
❓ Sıkça Sorulan Sorular (SSS)
1. Neden iki şifre girmem gerekiyor? Apache parolası uygulamaya erişimi, MySQL parolası veritabanı erişimini korur.
2. AllowOverride All ne işe yarar? Apache’nin .htaccess kurallarını uygulamasına izin verir.
3. caching_sha2_password yerine mysql_native_password neden kullanılır? Eski PHP sürümleri caching_sha2_password ile uyumsuz olabilir.
4. IP adresiyle phpMyAdmin’e erişmek güvenli mi? Yalnızca HTTPS varsa evet.
5. .htpasswd neden web dizini dışında tutulur? Dosyanın tarayıcıdan görüntülenmesini ve parolaların sızmasını engeller.
🎯 Sonuç
Bu rehberde phpMyAdmin'i Ubuntu sunucunuza başarıyla kurdunuz, MySQL kullanıcı yetkilerini ayarladınız ve Apache üzerinde ek güvenlik katmanları oluşturdunuz. Artık veritabanlarınızı web arayüzü üzerinden güvenli şekilde yönetebilirsiniz.
Bu kurulumu Rabisu Bulut platformunda çok daha güvenli ve performanslı şekilde deneyebilirsiniz. 🚀