phpMyAdmin kurulumu: Rocky Linux, AlmaLinux ve Ubuntu 24.04'te adım adım kurulum ve güvenlik
CentOS 7 desteği bittiği için eski yum adımları artık geçerli değil. Bu rehberde phpMyAdmin'i Rocky Linux ve AlmaLinux'ta EPEL ile, Ubuntu 24.04'te apt ile kuruyor, ardından erişimi IP ile sınırlıyor, HTTPS açıyor ve giriş için ayrı bir veritabanı kullanıcısı tanımlıyoruz.
Batuhan ÇelikelGüncellendi: 9 dk okuma
phpMyAdmin, MySQL ve MariaDB veritabanlarını tarayıcıdan yönetmenizi sağlayan bir web arayüzüdür. Veritabanı ve tablo oluşturma, kullanıcı yetkileri, içe ve dışa aktarma, doğrudan SQL çalıştırma gibi işleri komut satırına girmeden yapabilirsiniz. Bu rehberin eski sürümü CentOS 7 içindi. CentOS Linux 7, 30 Haziran 2024'te ömrünün sonuna ulaştı ve artık güvenlik güncellemesi almıyor (Red Hat duyurusu). Bu yüzden yazıyı desteklenen dağıtımlar için baştan yazdık: Rocky Linux ve AlmaLinux (9 ve 10) ile Ubuntu 24.04.
Kurulumun yanında, çoğu rehberde atlanan kısmı da ele alıyoruz: phpMyAdmin'i internete açık bırakmamak. Erişimi IP ile sınırlamak ve HTTPS kullanmak, bu aracı sunucuda tutacaksanız seçenek değil zorunluluktur.
Başlamadan önce: gereksinimler ve sürüm
phpMyAdmin'in güncel kararlı sürümü 5.2.3'tür ve 8 Ekim 2025'te yayımlanmıştır. Bu sürüm PHP 7.2 veya daha yenisini, MySQL ya da MariaDB tarafında da 5.5 veya daha yeni bir sürümü ister. Rocky, Alma ve Ubuntu 24.04'ün kendi depolarındaki PHP ve MariaDB sürümleri bu şartın rahatça üzerindedir.
Dağıtım depolarından gelen phpMyAdmin paketinin sürümü, projenin yayımladığı en son sürümden geride olabilir. Kurmadan önce depoda hangi sürümün olduğunu şu komutlarla görebilirsiniz:
# Rocky Linux / AlmaLinux (EPEL etkinken)
dnf info phpMyAdmin
# Ubuntu 24.04
apt policy phpmyadmin
Paket yöneticisiyle kurmanın avantajı, güvenlik güncellemelerinin sistem güncellemesiyle birlikte gelmesidir. Bu rehberde paket yolunu izliyoruz.
Hazırlık listesi:
- root ya da sudo yetkili bir kullanıcıyla SSH erişimi,
- sunucuya erişeceğiniz bilgisayarın sabit genel IP adresi (IP kısıtlaması için gerekli),
- HTTPS için sunucuya yönlendirilmiş bir alan adı ya da alt alan adı,
- güncel bir sistem (
dnf upgradeveyaapt update && apt upgrade), - güvenlik duvarı değişikliklerinde bağlantı kesilirse kullanabileceğiniz konsol erişimi (sağlayıcı panelindeki web konsolu gibi).
Test için temiz bir sunucuyla başlamak isterseniz bulut sunucu üzerinde Rocky, Alma ya da Ubuntu imajıyla birkaç dakikada hazır bir makine açabilirsiniz.
Rocky Linux ve AlmaLinux'ta phpMyAdmin kurulumu
Rocky Linux ve AlmaLinux'ta phpMyAdmin ana depolarda yoktur, EPEL deposundan gelir. Adımlar iki dağıtımda aynıdır.
1. Apache, MariaDB ve PHP'yi kurun
sudo dnf install -y httpd mariadb-server php php-mysqlnd php-mbstring
sudo systemctl enable --now httpd mariadb
Bu dağıtımlarda PHP, Apache altında php-fpm ile çalışır. Servislerin açık olduğunu kontrol edin:
systemctl status httpd php-fpm mariadb --no-pager
Ardından MariaDB'nin temel güvenlik ayarlarını yapın: anonim kullanıcıları ve test veritabanını kaldırın, root için uzaktan girişi kapatın.
sudo mysql_secure_installation
2. EPEL deposunu etkinleştirin
sudo dnf install -y epel-release
sudo dnf config-manager --set-enabled crb
CRB deposu, bazı EPEL paketlerinin bağımlılıklarını sağlar. EPEL ve CRB ayrıntıları için EPEL repo kurulumu yazımıza bakabilirsiniz.
3. phpMyAdmin paketini kurun
sudo dnf install -y phpMyAdmin
Paket, Apache yapılandırmasını /etc/httpd/conf.d/phpMyAdmin.conf dosyasına, phpMyAdmin ayarlarını /etc/phpMyAdmin/config.inc.php dosyasına yerleştirir. Varsayılan yapılandırma yalnız sunucunun kendisinden erişime izin verir; dışarıdan açtığınızda 403 hatası almanız bu yüzden normaldir.
4. Erişimi kendi IP adresinizle sınırlayın
/etc/httpd/conf.d/phpMyAdmin.conf dosyasını açın ve /usr/share/phpMyAdmin/ dizin bloğundaki Require local satırını bulun. Bu satırı silmeden, altına kendi IP adresinizi ekleyin:
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
Require local
Require ip 203.0.113.25
</Directory>
203.0.113.25 yerine kendi genel IP adresinizi yazın. Birden fazla adres için satırı çoğaltabilir ya da Require ip 203.0.113.0/24 gibi bir aralık verebilirsiniz. Genel IP adresinizi bilmiyorsanız, erişeceğiniz bilgisayarda bir "IP adresim nedir" servisiyle öğrenin.
Yapılandırmayı test edip servisleri yeniden başlatın:
sudo apachectl configtest
sudo systemctl restart httpd php-fpm
configtest çıktısında Syntax OK görmeden yeniden başlatmayın.
5. Güvenlik duvarında HTTP ve HTTPS'i açın
Kendini kilitleme uyarısı: Güvenlik duvarına kural eklemeden ya da kuralları yeniden yüklemeden önce SSH erişiminin (varsayılan 22 numaralı port ya da sizin kullandığınız özel port) izinli olduğunu doğrulayın. SSH izni yoksa kural uygulandığı anda bağlantınız kesilir ve sunucuya uzaktan erişimi kaybedersiniz; geri dönmek için yalnız sağlayıcı panelindeki konsol kalır. İşlemi ikinci bir SSH oturumu açıkken yapın ve yeni bir oturum açabildiğinizi test etmeden mevcut oturumu kapatmayın.
sudo firewall-cmd --list-services
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-services
Son komutun çıktısında ssh, http ve https birlikte görünmelidir. SSH'yi farklı bir portta çalıştırıyorsanız ssh servisi yerine o portu (--add-port=PORT/tcp) ekleyin.
6. SELinux notu
Veritabanı aynı sunucudaysa SELinux varsayılan ayarlarıyla ek işlem gerekmez. phpMyAdmin'i başka bir sunucudaki MariaDB'ye bağlayacaksanız Apache'nin ağ üzerinden veritabanına bağlanmasına izin verin:
sudo setsebool -P httpd_can_network_connect_db 1
SELinux'u kapatmak yerine bu tür hedefli izinleri kullanın.
Ubuntu 24.04'te phpMyAdmin kurulumu
Ubuntu 24.04'te phpMyAdmin, universe deposundaki paketle kurulur. Kurulum sırasında birkaç soru sorulur; bunları doğru yanıtlamak sonradan uğraşmamak için önemlidir.
1. Apache, MariaDB ve PHP'yi kurun
sudo apt update
sudo apt install -y apache2 mariadb-server php libapache2-mod-php php-mysql php-mbstring
sudo mysql_secure_installation
universe deposu bulut imajlarında genelde açıktır. Paket bulunamazsa sudo add-apt-repository universe ile etkinleştirin.
2. phpMyAdmin paketini kurun
sudo apt install -y phpmyadmin
Kurulum ekranında:
- Web sunucusu sorusunda
apache2seçeneğini boşluk tuşuyla işaretleyin, sonra Enter'a basın. Yalnız Enter'a basarsanız seçim yapılmamış olur. - "dbconfig-common ile yapılandırılsın mı" sorusuna evet deyin ve phpMyAdmin'in kendi iç veritabanı kullanıcısı için güçlü bir parola belirleyin.
Apache yapılandırması etkinleşmediyse elle açın:
sudo a2enconf phpmyadmin
sudo systemctl reload apache2
3. Erişimi IP ile sınırlayın
Ubuntu paketi varsayılan olarak her yerden erişime açıktır. /etc/phpmyadmin/apache.conf dosyasında <Directory /usr/share/phpmyadmin> bloğunun içine şu satırları ekleyin:
<Directory /usr/share/phpmyadmin>
# mevcut satırlar burada kalır
Require ip 127.0.0.1
Require ip 203.0.113.25
</Directory>
Ardından:
sudo apache2ctl configtest
sudo systemctl reload apache2
4. UFW ile güvenlik duvarı
Kendini kilitleme uyarısı: UFW etkinleştirildiğinde gelen bağlantıların tamamı varsayılan olarak engellenir.
ufw enablekomutundan önce SSH iznini eklemezseniz açık oturumunuz kesilir ve sunucuya SSH ile bir daha bağlanamazsınız; yalnız sağlayıcı konsolundan girip kuralı düzeltmeniz gerekir. SSH'yi özel bir portta çalıştırıyorsanızOpenSSHyerinesudo ufw allow PORT/tcpile o portu açın.
sudo ufw allow OpenSSH
sudo ufw allow "Apache Full"
sudo ufw show added
sudo ufw enable
sudo ufw status
ufw show added çıktısında SSH kuralını görmeden ufw enable çalıştırmayın. ufw status çıktısında OpenSSH ve Apache Full satırlarını görmelisiniz. Ardından ikinci bir terminalden yeni bir SSH oturumu açarak erişimin sürdüğünü doğrulayın. Sunucuda Docker kullanıyorsanız, konteyner portlarının UFW kurallarını atlayabildiğini unutmayın.
phpMyAdmin'e hangi kullanıcıyla girilir?
Eski rehberdeki "kullanıcı adı ve şifre config.inc.php dosyasındadır" anlatımı yanıltıcıydı. phpMyAdmin'in kendi kullanıcı hesabı yoktur; giriş ekranında MySQL veya MariaDB kullanıcı hesabınızla oturum açarsınız. config.inc.php dosyası kimlik bilgisi tutmak için değil, sunucu ve oturum ayarları içindir.
Günlük iş için root yerine ayrı bir kullanıcı açın. Yalnız tek bir veritabanını yönetecekse yetkiyi o veritabanıyla sınırlayın:
sudo mysql
CREATE DATABASE uygulama_db;
CREATE USER 'pmayonetici'@'localhost' IDENTIFIED BY 'Uzun-ve-Rastgele-Bir-Parola';
GRANT ALL PRIVILEGES ON uygulama_db.* TO 'pmayonetici'@'localhost';
FLUSH PRIVILEGES;
Tüm veritabanlarını yönetecek bir yönetici hesabı gerekiyorsa ON *.* ve WITH GRANT OPTION kullanabilirsiniz; ama bu hesabın parolası root kadar değerlidir, ona göre saklayın.
Rocky ve Alma tarafında, giriş ekranında blowfish_secret ile ilgili bir uyarı görürseniz /etc/phpMyAdmin/config.inc.php dosyasında bu değere 32 karakterlik rastgele bir dize verin:
openssl rand -base64 24
$cfg['blowfish_secret'] = 'buraya-uretilen-32-karakterlik-dize';
HTTPS ile güvenli erişim
phpMyAdmin girişinde veritabanı parolanız tarayıcıdan sunucuya gider. HTTP üzerinden bu bilgi açık metin olarak taşınır, bu yüzden IP kısıtlaması olsa bile HTTPS kullanın. Alan adınız sunucuya yönlendirilmişse Let's Encrypt sertifikasını certbot ile alabilirsiniz:
# Rocky Linux / AlmaLinux (EPEL etkin)
sudo dnf install -y certbot python3-certbot-apache mod_ssl
# Ubuntu 24.04
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d db.example.com
db.example.com yerine kendi alt alan adınızı yazın. certbot sertifikayı alır, Apache sanal sunucusunu yapılandırır ve HTTP isteklerini HTTPS'e yönlendirme seçeneği sunar. Yönlendirmeyi kabul edin. Yenilemenin çalıştığını test edin:
sudo certbot renew --dry-run
Ücretsiz sertifika seçenekleri hakkında daha fazla bilgi için ücretsiz SSL sertifikası yazımıza göz atabilirsiniz.
Ek sertleştirme adımları
IP kısıtlaması ve HTTPS temel korumadır. Bunlara ek olarak şunları değerlendirin:
- Varsayılan adresi değiştirin. Otomatik taramalar doğrudan
/phpmyadminve/phpMyAdminyollarını dener. Apache yapılandırmasındakiAliassatırını tahmin edilmesi zor bir yola çevirin, örneğinAlias /vt-yonetim-7k2 /usr/share/phpmyadmin. Bu tek başına güvenlik sağlamaz ama gürültüyü azaltır. - Web sunucusu düzeyinde ikinci bir parola ekleyin.
htpasswdile bir parola dosyası oluşturup dizin bloğuna temel kimlik doğrulama tanımlarsanız, phpMyAdmin giriş ekranına gelmeden önce bir parola daha sorulur. - Root ile uzaktan girişi kullanmayın. Yukarıdaki gibi yetkisi sınırlı bir kullanıcıyla çalışın.
- Kullanmadığınızda kapatın. phpMyAdmin'e nadiren ihtiyacınız varsa yapılandırmayı devre dışı bırakın (
sudo a2disconf phpmyadminya da Rocky/Alma'da conf dosyasının adını.confdışında bir uzantıyla değiştirip Apache'yi yeniden yükleyin). Gerektiğinde açarsınız. - Alternatif olarak SSH tüneli kullanın. Erişimi tamamen yalnız
Require localile bırakıp kendi bilgisayarınızdanssh -L 8080:localhost:80 kullanici@192.0.2.10ile tünel açarsanız (192.0.2.10 yerine sunucunuzun adresi), phpMyAdmin'ihttp://localhost:8080/phpmyadminadresinden kullanabilirsiniz. Bu durumda phpMyAdmin internete hiç görünmez. - Paketleri güncel tutun.
dnf upgradeya daapt upgradedüzenli çalışmalı; phpMyAdmin güncellemeleri de bu yolla gelir.
phpMyAdmin üzerinden içe ve dışa aktarma yapmadan önce veritabanının bir kopyasını almak iyi bir alışkanlıktır; komut satırıyla kopyalama için MySQL veritabanı kopyalama yazımıza bakabilirsiniz.
Kurulumu doğrulama kontrol listesi
Kurulumu bitirdikten sonra şunları tek tek kontrol edin:
- İzinli IP'den
https://db.example.com/phpmyadminbiçimindeki adres (kendi alan adınız ve değiştirdiyseniz kendi yolunuzla) giriş ekranını açıyor. - İzinli olmayan bir bağlantıdan (örneğin telefonun mobil verisi) aynı adres 403 döndürüyor.
http://ile girildiğinde HTTPS'e yönlendiriliyor.- Oluşturduğunuz MySQL kullanıcısıyla giriş yapılabiliyor ve yalnız yetkili veritabanları görünüyor.
sudo certbot renew --dry-runhatasız tamamlanıyor.- Güvenlik duvarında SSH, HTTP ve HTTPS dışında gereksiz port açık değil ve yeni bir SSH oturumu sorunsuz açılıyor.
Sık yapılan hatalar ve çözümleri
403 Forbidden. Çoğu durumda neden IP kuralıdır. Genel IP adresiniz değişmiş olabilir ya da bir VPN veya ofis ağı üzerinden farklı bir adresle çıkıyor olabilirsiniz. Apache hata günlüğünde (/var/log/httpd/error_log veya /var/log/apache2/error.log) reddedilen istemci adresini görebilirsiniz.
Güvenlik duvarından sonra SSH bağlantısı koptu. SSH izni eklenmeden kural yüklenmiş ya da UFW etkinleştirilmiştir. Sağlayıcı panelindeki konsoldan girip sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload ya da sudo ufw allow OpenSSH ile izni ekleyin.
Boş sayfa ya da PHP kodu metin olarak görünüyor. PHP modülü ya da php-fpm çalışmıyordur. Rocky/Alma'da systemctl status php-fpm, Ubuntu'da libapache2-mod-php paketinin kurulu olduğunu kontrol edin.
"mysqli eklentisi eksik" uyarısı. Rocky/Alma'da php-mysqlnd, Ubuntu'da php-mysql paketi kurulmamıştır. Kurup web sunucusunu yeniden başlatın.
root ile giriş reddediliyor (1698 hatası). Ubuntu'daki MariaDB kurulumunda root hesabı varsayılan olarak işletim sistemi kullanıcısı üzerinden soket kimlik doğrulamasıyla çalışır; bu yüzden parola ile web girişi reddedilir. root'un davranışını değiştirmek yerine yukarıdaki gibi ayrı bir kullanıcı açın.
Büyük SQL dosyası içe aktarılamıyor. PHP'nin upload_max_filesize ve post_max_size değerleri dosyadan küçüktür. Bu değerleri büyütebilir ya da büyük dosyaları komut satırından mysql uygulama_db < yedek.sql ile yükleyebilirsiniz.
Ubuntu kurulumunda Apache yapılandırması oluşmadı. Web sunucusu seçim ekranında boşluk tuşuyla işaret koymadan Enter'a basılmıştır. sudo dpkg-reconfigure phpmyadmin ile soruları yeniden alabilir ya da a2enconf phpmyadmin ile yapılandırmayı açabilirsiniz.
Sık sorulan sorular
CentOS 7 sunucumda phpMyAdmin hâlâ çalışıyor, sorun olur mu?
Çalışıyor olması güvenli olduğu anlamına gelmez. CentOS 7, 30 Haziran 2024'te ömrünü tamamladığı için işletim sistemi, Apache, PHP ve phpMyAdmin paketleri artık güvenlik yaması almıyor. İnternete açık bir phpMyAdmin bu durumda ciddi risk taşır. Verilerinizi Rocky Linux, AlmaLinux ya da Ubuntu 24.04 kurulu yeni bir sunucuya taşımanızı ve phpMyAdmin'i bu rehberdeki gibi yeniden kurmanızı öneririz.
phpMyAdmin'i Nginx ile kullanabilir miyim?
Evet, phpMyAdmin bir PHP uygulamasıdır ve php-fpm ile Nginx altında da çalışır. Ancak dağıtım paketleri hazır yapılandırmayı Apache için getirir; Nginx'te konum (location) bloğunu, PHP yönlendirmesini ve IP kısıtlamasını (allow ve deny satırları) kendiniz yazmanız gerekir.
Rocky Linux 10 ve AlmaLinux 10'da adımlar farklı mı?
Temel akış aynıdır: EPEL'i etkinleştirir, dnf install phpMyAdmin ile kurar, Apache yapılandırmasında erişimi sınırlarsınız. Kurmadan önce dnf info phpMyAdmin ile paketin EPEL'de bulunduğunu ve sürümünü kontrol edin.
phpMyAdmin giriş şifremi unuttum, nereden bulurum?
phpMyAdmin'in ayrı bir şifresi yoktur; girişte MySQL veya MariaDB kullanıcı hesabınızı kullanırsınız. Parolayı unuttuysanız sunucuda sudo mysql ile bağlanıp ALTER USER 'kullanici'@'localhost' IDENTIFIED BY 'yeni-parola'; komutuyla yeni bir parola belirleyebilirsiniz.
IP adresim sabit değil, erişimi nasıl sınırlarım?
Değişken IP ile Require ip kuralı sürekli güncelleme ister. Bu durumda en pratik yol phpMyAdmin'i yalnız yerel erişime bırakıp SSH tüneliyle bağlanmaktır. Diğer bir seçenek de web sunucusu düzeyinde ikinci bir parola (temel kimlik doğrulama) ile HTTPS'i birlikte kullanmaktır.
Yazar
Kurucu, sunucu.com.tr · Bulut altyapısı ve yapay zeka otomasyonları
sunucu.com.tr ve Sunucu UK'in kurucusu. Bulut altyapısı, sanallaştırma ve sunucu yönetimi üzerine çalışıyor; şirketlerin iş yazılımlarını, web sitelerini ve yapay zeka iş yüklerini güvenli sunuculara taşıyor. Blogdaki rehberler sahada karşılaşılan kurulum, güvenlik ve taşıma işlerinden derlenir; yazılar yapay zeka desteğiyle hazırlanır ve kaynaklarla doğrulanır.