Linux işletim sistemi üzerinde bir web sunucusu kurmak, özellikle performans, güvenlik ve esneklik açısından büyük avantajlar sunar. Bu rehberde, Linux işletim sisteminde Apache veya Nginx kullanarak bir web sunucusunun nasıl kurulacağını ve yapılandırılacağını adım adım anlatacağız.
1. Gerekli Bileşenlerin Kurulumu
Öncelikle, kullanacağınız dağıtımın güncel olduğundan emin olun:
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # CentOS/RHEL
Ardından, ihtiyacınıza göre Apache veya Nginx sunucusunu yükleyebilirsiniz.
Apache Web Sunucusu Kurulumu
sudo apt install apache2 -y # Debian/Ubuntu
sudo yum install httpd -y # CentOS/RHEL
Apache’yi başlatın ve sistem başlangıcında çalışmasını sağlayın:
sudo systemctl start apache2 # Ubuntu/Debian
sudo systemctl enable apache2
sudo systemctl start httpd # CentOS/RHEL
sudo systemctl enable httpd
Sunucunun durumunu kontrol etmek için:
sudo systemctl status apache2 # Ubuntu/Debian
sudo systemctl status httpd # CentOS/RHEL
Nginx Web Sunucusu Kurulumu
Nginx kullanmayı tercih ediyorsanız:
sudo apt install nginx -y # Debian/Ubuntu
sudo yum install nginx -y # CentOS/RHEL
Sunucuyu başlatın:
sudo systemctl start nginx
sudo systemctl enable nginx
Durumunu kontrol edin:
sudo systemctl status nginx
Kurulum tamamlandıktan sonra, tarayıcınızı açarak http://sunucu-ip-adresi veya http://localhost adresine giderek sunucunun çalışıp çalışmadığını kontrol edebilirsiniz.
2. Güvenlik Duvarı Ayarları (Linux Firewall)
Web sunucusuna dışarıdan erişim sağlamak için güvenlik duvarı kurallarını güncellemelisiniz.
Apache İçin
sudo ufw allow 'Apache' # Ubuntu/Debian
sudo firewall-cmd --permanent --add-service=http # CentOS/RHEL
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Nginx İçin
sudo ufw allow 'Nginx Full' # Ubuntu/Debian
sudo firewall-cmd --permanent --add-service=http # CentOS/RHEL
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Güvenlik duvarı kurallarını listelemek için:
sudo ufw status # Ubuntu/Debian
sudo firewall-cmd --list-all # CentOS/RHEL
3. Sanal Host (Virtual Host) Yapılandırması
Birden fazla web sitesi barındırmak için sanal host (virtual host) yapılandırması yapmanız gerekir.
Apache İçin Virtual Host Ayarları
Örnek bir web sitesi için /var/www/example.com dizinini oluşturun:
sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www
Varsayılan konfigürasyon dosyasını oluşturun:
sudo nano /etc/apache2/sites-available/example.com.conf
Aşağıdaki içeriği ekleyin:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Yeni siteyi etkinleştirin:
sudo a2ensite example.com.conf
sudo systemctl restart apache2
Nginx İçin Virtual Host Ayarları
Konfigürasyon dosyasını oluşturun:
sudo nano /etc/nginx/sites-available/example.com
Şu içeriği ekleyin:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Dosyayı etkinleştirin:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo systemctl restart nginx
4. SSL Sertifikası Kurulumu (Let’s Encrypt)
HTTPS kullanarak güvenliği artırmak için Let’s Encrypt ücretsiz SSL sertifikasını kurabilirsiniz.
Öncelikle Certbot’u yükleyin:
sudo apt install certbot python3-certbot-apache -y # Apache için
sudo apt install certbot python3-certbot-nginx -y # Nginx için
SSL sertifikasını alın ve yapılandırın:
sudo certbot --apache # Apache için
sudo certbot --nginx # Nginx için
Yenileme işlemi için:
sudo certbot renew --dry-run
5. PHP ve Veritabanı Kurulumu (Opsiyonel)
PHP ve MySQL/MariaDB ile dinamik web siteleri çalıştırabilirsiniz.
PHP Kurulumu
sudo apt install php php-cli php-mysql php-xml php-curl -y # Ubuntu/Debian
sudo yum install php php-cli php-mysql php-xml php-curl -y # CentOS/RHEL
Apache’yi kullanıyorsanız:
sudo systemctl restart apache2
Nginx kullanıyorsanız PHP-FPM yükleyin:
sudo apt install php-fpm -y
sudo systemctl restart nginx
MariaDB (MySQL) Kurulumu
sudo apt install mariadb-server -y # Ubuntu/Debian
sudo yum install mariadb-server -y # CentOS/RHEL
MariaDB güvenlik ayarlarını yapın:
sudo mysql_secure_installation
6. Web Sunucusunun Test Edilmesi
Kurulumu test etmek için info.php dosyası oluşturabilirsiniz:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Tarayıcınıza http://sunucu-ip-adresi/info.php yazarak PHP’nin çalıştığını kontrol edebilirsiniz.
Bu kılavuzda Linux üzerinde Apache veya Nginx kullanarak bir web sunucusu kurma adımlarını öğrendiniz. Sunucunuzu güvenli ve optimize tutmak için düzenli olarak güncellemeler yapmayı unutmayın.
Eğer daha fazla destek veya ileri düzey yapılandırmalar hakkında bilgiye ihtiyacınız varsa, yorum yapabilir veya bana ulaşabilirsiniz!