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

Etiketler

apache virtual host vhost web sunucu