Ana içeriğe geç

💾 Apache Web Root Taşıma – Ubuntu 20.04 Üzerinde DocumentRoot Değiştirme Rehberi

Bu rehberde Apache’nin varsayılan web kök dizinini yeni bir depolama birimine nasıl taşıyacağınızı öğreneceksiniz.
İçerik hem güvenlik hem de ölçeklenebilirlik odaklı optimize edildi ve kısa, anlaşılır adımlara bölündü.


🧠 Bu Rehberde Ne Öğreneceksiniz?

  • Mevcut DocumentRoot konumunu nasıl bulacağınızı,
  • Dosyaları yeni dizine doğru biçimde nasıl aktaracağınızı,
  • Apache VirtualHost yapılandırmalarını nasıl güncelleyeceğinizi,
  • Apache’yi test edip yeniden başlatmayı,
  • Eski dizini güvenle kaldırmayı öğreneceksiniz.

⚙️ 1. Mevcut Web Root Konumunu Bulma

Önce aktif VirtualHost dosyalarında DocumentRoot satırlarının nerede olduğunu bulalım.

grep -R "DocumentRoot" /etc/apache2/sites-enabled

➡ Bu komut, etkin sitelerde kullanılan tüm DocumentRoot yollarını listeler.


📂 2. Dosyaları Yeni Konuma Kopyalama

  • Eski konum örneği:

/var/www/rabisu.cloud

  • Yeni hedef konum örneği:

/mnt/harici_depolama


sudo rsync -av /var/www/rabisu.cloud/ /mnt/harici_depolama
  • ➡ -a izinleri korur, -v ayrıntılı çıktı verir.
  • ➡ Kaynak dizinin sonundaki / çok önemlidir. Dizin içeriğini taşır.

🛠️ 3. Apache HTTP VirtualHost Dosyasını Güncelleme

1. HTTP (80) yapılandırmasını aç:


sudo nano /etc/apache2/sites-enabled/rabisu.cloud.conf
  • Aşağıdaki gibi düzenle:

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName rabisu.cloud
ServerAlias www.rabisu.cloud

DocumentRoot /mnt/harici_depolama

ErrorLog $&#123;APACHE_LOG_DIR&#125;/error.log
CustomLog $&#123;APACHE_LOG_DIR&#125;/access.log combined
</VirtualHost>

<Directory /mnt/harici_depolama>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
  • ➡ Directory bloğu Apache’nin yeni dizine erişebilmesi için gereklidir.

🔐 4. SSL (HTTPS) VirtualHost Dosyasını Güncelleme

1. HTTPS yapılandırmasını aç:


sudo nano /etc/apache2/sites-enabled/rabisu.cloud-le-ssl.conf

2. DocumentRoot bölümünü değiştir:


<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName rabisu.cloud
ServerAlias www.rabisu.cloud

DocumentRoot /mnt/harici_depolama

ErrorLog $&#123;APACHE_LOG_DIR&#125;/error.log
CustomLog $&#123;APACHE_LOG_DIR&#125;/access.log combined
</VirtualHost>
</IfModule>

🔄 5. Apache Yapılandırmasını Test Etme ve Yeniden Başlatma

  • Önce sözdizimi hatası var mı kontrol edelim:

sudo apachectl configtest
  • Beklenen çıktı:

Syntax OK
  • Şimdi Apache’yi yeniden yükle:

sudo systemctl reload apache2

🗑️ 6. Eski Web Root Dizinini Silme

  • Yeni dizin doğru şekilde çalışıyorsa eski dosyaları silebilirsin:

sudo rm -Rf /var/www/rabisu.cloud
  • ➡ Dikkat: Bu işlem geri alınamaz.

❓ Sıkça Sorulan Sorular (SSS)

1. rsync yerine cp kullansam olur mu? Olabilir, fakat cp izinleri ve sahiplik bilgilerini tam korumaz. Apache çalışmayabilir. rsync -a bu yüzden tercih edilir.

2. Directory bloğu zorunlu mu? Evet. Apache varsayılan olarak sadece /var/www/ altında çalışacak şekilde ayarlıdır. Yeni konum için izin tanımlamazsan site hata verir.

3. İşlem sırasında site yayını kesilir mi? Yalnızca Apache reload sırasında 1 saniyelik bir kesinti olabilir.

4. Yeni kök dizin olarak harici disk kullanmak güvenli mi? Doğru izinler verildiğinde tamamen güvenlidir ve ölçeklenebilirliği ciddi şekilde artırır.

5. SSL yapılandırmasını düzenlemezsem ne olur? HTTP çalışır ama HTTPS eski dizine bakmaya devam ettiği için 404 veya bozuk görünüm hatası alırsın.


🏁 Sonuç

Bu rehberle Apache web kök dizinini yeni bir depolama birimine taşıyarak sisteminizi daha esnek, düzenli ve ölçeklenebilir hale getirdiniz. Böyle işlemleri çok daha hızlı yönetmek için Rabisu Bulut platformunu kullanabilirsiniz.