Ana içeriğe geç

Ubuntu 22.04 Üzerinde phpMyAdmin Kurulumu ve Güvenlik Ayarları

Bu rehberde ne öğreneceksiniz?

Bu rehberde Ubuntu 22.04 çalışan bir sunucuda
phpMyAdmin kurulumu, MySQL kullanıcı ayarları
ve Apache ile ek güvenlik önlemleri almayı öğreneceksiniz.


🧠 Teknik Özet

Konu: phpMyAdmin kurulumu ve güvenli hale getirilmesi
Problem: Komut satırı yerine web arayüzü ihtiyacı
Adımlar: Kurulum → Kimlik doğrulama → Yetkilendirme → Güvenlik


phpMyAdmin Nedir?

phpMyAdmin, MySQL veritabanlarını web tarayıcısı üzerinden yönetmenizi sağlar.
Komut satırına alternatif, görsel bir yönetim arayüzü sunar.


Güvenlik Uyarısı

phpMyAdmin doğrudan veritabanına erişir.
Bu nedenle HTTPS olmadan kesinlikle kullanılmamalıdır.

Alan adınız ve SSL sertifikanız yoksa önce HTTPS yapılandırılmalıdır.


Ön Koşullar

  • Ubuntu 22.04 yüklü sunucu
  • sudo yetkisine sahip kullanıcı
  • Apache, MySQL ve PHP kurulu (LAMP)
  • UFW güvenlik duvarı aktif

1. phpMyAdmin Kurulumu

Paket listesini güncelleyin

sudo apt update
  • Bu komut sistem paketlerini günceller.

Gerekli paketleri kurun


sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
  • Bu komut phpMyAdmin ve gerekli PHP eklentilerini yükler.

Kurulum sırasında seçimler

  1. Sunucu: apache2

  2. dbconfig-common: Yes

  3. MySQL uygulama parolası: Güçlü bir parola


Validate Password Hatası Çözümü (Gerekirse)

  1. MySQL konsoluna girin

sudo mysql

  1. Şifre doğrulama bileşenini devre dışı bırakın

UNINSTALL COMPONENT "file://component_validate_password";

Çıkış yapın


exit

  • Kurulumu tekrar başlatın:

sudo apt install phpmyadmin

  • Kurulum sonrası bileşeni tekrar aktif edin:

INSTALL COMPONENT "file://component_validate_password";

Apache ve PHP Yapılandırması

  1. mbstring eklentisini aktif edin

sudo phpenmod mbstring
  • Bu komut çok baytlı karakter desteğini açar.

Apache’yi yeniden başlatın


sudo systemctl restart apache2

2. MySQL Kimlik Doğrulama Ayarları

  1. Ubuntu’da MySQL root kullanıcısı varsayılan olarak auth_socket kullanır.
  • phpMyAdmin için parola doğrulaması gerekir.

MySQL’e bağlanın


sudo mysql

  1. Mevcut doğrulama yöntemlerini kontrol edin

SELECT user, plugin, host FROM mysql.user;

  1. Root için parola doğrulamasını açın

ALTER USER 'root'@'localhost'
IDENTIFIED WITH caching_sha2_password BY 'GucluBirParola';
  • Gerekirse mysql_native_password kullanılabilir.

Alternatif: Özel MySQL Kullanıcısı

  • Yeni kullanıcı oluşturun

CREATE USER 'dbadmin'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'GucluBirParola';

Yetki verin


GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'localhost' WITH GRANT OPTION;

  • Çıkış yapın

exit
  • phpMyAdmin Erişimi

Tarayıcıdan şu adresi açın:


https://sunucu_adresi/phpmyadmin
  • Apache kimlik doğrulamasından sonra MySQL kullanıcı bilgileri istenir.

3. phpMyAdmin Güvenliğini Artırma

  1. Apache yapılandırmasını düzenleyin

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

  1. AllowOverride ekleyin

<Directory /usr/share/phpmyadmin>
AllowOverride All
</Directory>

  1. Apache’yi yeniden başlatın

sudo systemctl restart apache2

.htaccess ile Ek Güvenlik

  1. Dosyayı oluşturun

sudo nano /usr/share/phpmyadmin/.htaccess

  1. İçeriği ekleyin

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
  • Apache Kullanıcısı Oluşturma
  • Parola dosyasını oluşturun


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

Apache’yi yeniden başlatın


sudo systemctl restart apache2
  • Bu işlem phpMyAdmin’e ikinci bir güvenlik katmanı ekler.

Sıkça Sorulan Sorular (SSS)

1. phpMyAdmin güvenli mi? Evet, doğru yapılandırılırsa güvenlidir.

2. HTTPS zorunlu mu? Evet, kesinlikle önerilir.

3. Root ile giriş yapmalı mıyım? Hayır, özel kullanıcı tercih edilmelidir.

4. .htaccess gerçekten gerekli mi? Evet, saldırı riskini ciddi şekilde azaltır.


Sonuç

Bu rehberle phpMyAdmin’i Ubuntu üzerinde kurulu, yetkilendirilmiş ve güvenli hale getirdiniz.

Veritabanı yönetimini güvenle yapmak için Rabisu Bulut altyapısında sunucularınızı hemen yapılandırabilirsiniz.