Bu bölümde, modern bir RHEL tabanlı dağıtım olan AlmaLinux (veya Rocky Linux / RHEL 9+) üzerine temel bir web hosting ortamının (Apache/Nginx, MariaDB, PHP-FPM) nasıl kurulabileceğine dair örnek adımlar sunulmaktadır.
Not: Bu rehber temel bir kurulumu kapsar. Üretim ortamları için daha detaylı güvenlik sıkılaştırmaları, performans optimizasyonları ve yedekleme stratejileri gereklidir.
1. Sistem Güncelleme ve Temel Paketler
# Sistemi en güncel hale getirsudodnfupdate-y# Gerekli temel araçları ve depoları kursudodnfinstallepel-releaseyum-utilswgetbind-utilslsofatopnet-toolspolicycoreutils-python-utils-y
2. Güvenlik Ayarları
SELinux:Enforcing modda bırakılması önerilir. Sorun yaşanırsa, logları (/var/log/audit/audit.log) kontrol edin ve audit2why, audit2allow veya setsebool ile gerekli izinleri ayarlayın. Geçici olarak sudo setenforce 0 ile permissive moda alıp test edebilirsiniz.
# SELinux durumunu kontrol etsestatusgetenforce
Firewalld: Gerekli servisler için portları açın.
# SSH, HTTP ve HTTPS servislerine kalıcı olarak izin versudofirewall-cmd--permanent--add-service={ssh,http,https}# Değişiklikleri uygulasudofirewall-cmd--reload# İzin verilenleri listelesudofirewall-cmd--list-all
SSH Güvenliği:/etc/ssh/sshd_config dosyasında en azından şunları yapın:
PermitRootLogin no
PasswordAuthentication no (SSH anahtarı kullanılıyorsa)
Gerekirse AllowUsers veya AllowGroups ile erişimi kısıtlayın.
sudo systemctl restart sshd
3. Web Sunucusu Kurulumu (Apache veya Nginx)
Seçenek A: Apache (httpd)
Seçenek B: Nginx
(Nginx için SSL yapılandırması genellikle ayrı yapılır).
4. Veritabanı Sunucusu Kurulumu (MariaDB)
5. PHP ve PHP-FPM Kurulumu
AlmaLinux 9 ve sonrası, AppStream deposu üzerinden farklı PHP sürümleri sunar (dnf module list php).
6. Web Sunucusu ve PHP-FPM Entegrasyonu
Apache ile:
Gerekli modüllerin (proxy, proxy_fcgi) yüklü ve aktif olduğundan emin olun.
/etc/httpd/conf.d/ altında sanal ana bilgisayar yapılandırmanızı oluşturun.
PHP isteklerini PHP-FPM'e yönlendirmek için <FilesMatch> veya ProxyPassMatch kullanın (genellikle Unix soketi /run/php-fpm/www.sock üzerinden):
Gerekirse SELinux boolean'ını ayarlayın: sudo setsebool -P httpd_can_network_connect 1 (Eğer TCP soketi kullanılıyorsa) veya dosya izinlerini/bağlamlarını kontrol edin.
sudo systemctl restart httpd
Nginx ile:
/etc/nginx/conf.d/ altında sunucu bloğu (server { ... }) yapılandırmanızı oluşturun.
SELinux bağlamlarını kontrol edin ve gerekirse düzeltin:
Bu adımlar, AlmaLinux üzerinde temel bir LAMP (Linux, Apache, MariaDB, PHP) veya LEMP (Linux, Nginx, MariaDB, PHP) yığını kurmak için bir başlangıç noktasıdır. Her adımın detayları ve ek yapılandırma seçenekleri ilgili bölümlerde daha ayrıntılı olarak ele alınmıştır.
# Web içeriği için doğru bağlamı ayarla
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/example.com(/.*)?"
sudo restorecon -Rv /var/www/example.com