Apache Virtual Host Oluşturucu
Apache için yeni virtual host oluşturan, yapılandıran ve aktifleştiren otomatik script.
Yayınlanma: 05.04.2024
Detaylı Bilgi
Bu script, Apache web sunucusu için yeni bir virtual host oluşturur, yapılandırır ve aktifleştirir. Birden fazla web sitesini aynı sunucuda barındırmak için kullanılır.
Script Ne İşe Yarar?
Bu script, Apache virtual host kurulumunu otomatikleştirir:
- Document root dizinini oluşturur
- Dizin izinlerini ayarlar
- Virtual host yapılandırma dosyası oluşturur
- Test index.html dosyası oluşturur
- Site'i aktifleştirir
- Apache'yi yeniden yükler
Neden Kullanmalısınız?
Virtual host oluşturma, web sunucu yönetimini kolaylaştırır:
- Hızlı Kurulum: Manuel yapılandırma yerine otomasyon
- Standart Yapılandırma: Best practice ayarları
- Zaman Tasarrufu: Tek komutla kurulum
Nasıl Kullanılır?
Adım Adım Kullanım Kılavuzu
1. Scripti Çalıştırın
sudo chmod +x create_vhost.sh
sudo ./create_vhost.sh
2. Soruları Yanıtlayın
Script size şu soruları soracak:
- Domain adı (örn: example.com)
- Document root (varsayılan: /var/www/example.com)
3. DNS Yapılandırması
Domain'inizi sunucu IP'sine yönlendirin.
Gereksinimler
Gereksinimler
- Apache: Apache web sunucusu kurulu olmalı
- Root Yetkisi: Script root olarak çalıştırılmalı
Kullanım Senaryoları
Kullanım Senaryoları
1. Yeni Web Sitesi Kurulumu
Yeni bir web sitesi için virtual host oluşturun.
2. Çoklu Site Yönetimi
Birden fazla web sitesini aynı sunucuda barındırın.
Örnekler
Kullanım Örnekleri
Örnek 1: Temel Kullanım
sudo ./create_vhost.sh
# Domain: example.com
# Document root: (Enter - varsayılan kullanılır) Kod
#!/bin/bash
# Apache Virtual Host Creator
if [ "$EUID" -ne 0 ]; then
echo "Please run as root"
exit 1
fi
read -p "Enter domain name: " DOMAIN
read -p "Enter document root (default: /var/www/$DOMAIN): " DOCROOT
DOCROOT=${DOCROOT:-/var/www/$DOMAIN}
mkdir -p "$DOCROOT"
chown -R www-data:www-data "$DOCROOT"
cat > "/etc/apache2/sites-available/${DOMAIN}.conf" << EOF
<VirtualHost *:80>
ServerName $DOMAIN
ServerAlias www.$DOMAIN
DocumentRoot $DOCROOT
<Directory $DOCROOT>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog \${APACHE_LOG_DIR}/${DOMAIN}-error.log
CustomLog \${APACHE_LOG_DIR}/${DOMAIN}-access.log combined
</VirtualHost>
EOF
# Create index file
cat > "$DOCROOT/index.html" << EOF
<!DOCTYPE html>
<html>
<head>
<title>Welcome to $DOMAIN</title>
</head>
<body>
<h1>$DOMAIN is working!</h1>
</body>
</html>
EOF
a2ensite "${DOMAIN}.conf"
systemctl reload apache2
echo "✓ Virtual host created successfully!"
echo "Document root: $DOCROOT"
echo ""
echo "Add to /etc/hosts for local testing:"
echo "127.0.0.1 $DOMAIN"
Kullanım
sudo chmod +x create_vhost.sh
sudo ./create_vhost.sh
# Domain adını girin
# Document root belirtin (opsiyonel)
Sorun Giderme
Sorun Giderme
Problem: "a2ensite: command not found"
Çözüm: Apache kurun:
sudo apt-get install apache2