Takip et

Apache Web Kök Dizinini Ubuntu 16.04’te Yeni Bir Konuma Taşıma

Apache Web Kök Dizinini Ubuntu 16.04’te Yeni Bir Konuma Taşıma Bir web sunucusunun kalbi, web sitenizin dosyalarının bulunduğu web kök dizinid

Apache Web Kök Dizinini Ubuntu 16.04’te Yeni Bir Konuma Taşıma

Bir web sunucusunun kalbi, web sitenizin dosyalarının bulunduğu web kök dizinidir. Varsayılan olarak, Apache web sunucusu Ubuntu sistemlerinde /var/www/html dizinini web kök dizini olarak kullanır. Ancak, çeşitli nedenlerle bu varsayılan konumu değiştirmek isteyebilirsiniz. Bu nedenler arasında disk alanı yönetimi, güvenlik endişeleri, daha iyi organizasyon veya web içeriğiniz için ayrı bir depolama birimi kullanma ihtiyacı sayılabilir. Bu teknik makalede, Ubuntu 16.04 işletim sisteminde çalışan bir Apache web sunucusunun web kök dizinini adım adım yeni bir konuma nasıl taşıyacağınızı ayrıntılı olarak ele alacağız.

Bu süreç, dikkatli planlama ve uygulama gerektiren kritik bir işlemdir. Yanlış yapılandırma, web sitenizin erişilemez hale gelmesine veya güvenlik açıklarına yol açabilir. Bu nedenle, adımları dikkatlice takip etmek ve herhangi bir değişiklik yapmadan önce her zaman yedek almak hayati önem taşır.

Neden Web Kök Dizinini Taşımalısınız?

Web kök dizinini taşımanın birden fazla pratik nedeni vardır:

* Disk Alanı Yönetimi: Sunucunuzun ana diski (genellikle /) dolmaya başladığında, web sitenizin dosyalarını daha fazla alana sahip ayrı bir diske veya bölüme taşımak gerekebilir. Bu, özellikle büyük medya dosyaları veya çok sayıda kullanıcı tarafından üretilen içerik barındıran siteler için geçerlidir.
* Güvenlik: Web dosyalarını, işletim sistemi dosyalarından ayrı bir konuma taşımak, potansiyel güvenlik ihlallerinin etkisini sınırlayabilir. Örneğin, web dizininin kısıtlı bir kullanıcı altında çalıştırılması veya farklı bir dosya sisteminde izole edilmesi, saldırı yüzeyini azaltabilir.
* Organizasyon ve Bakım: Bazı yöneticiler, tüm web sitelerini belirli bir yapı altında (örneğin, /srv/www veya /data/web) toplamak isteyebilirler. Bu, birden fazla web sitesi barındırırken yönetimi kolaylaştırabilir.
* Yüksek Performanslı Depolama: Web sitenizin statik içeriğini veya veritabanı dosyalarını daha hızlı bir depolama birimine (örneğin, bir SSD) taşımak, site performansını artırabilir.

Önkoşullar

Bu rehbere başlamadan önce aşağıdaki maddelere sahip olduğunuzdan emin olun:

* Ubuntu 16.04 işletim sistemi yüklü ve çalışan bir sunucu.
* Apache2 web sunucusu yüklü ve yapılandırılmış.
* sudo ayrıcalıklarına sahip bir kullanıcı hesabı.
* Temel Linux komut satırı bilgisi.
* Taşımak istediğiniz web içeriğinin mevcut konumu hakkında bilgi. (Varsayılan olarak /var/www/html.)

Mevcut Apache Yapısını Anlama

Apache, web kök dizinini birden fazla yerde tanımlayabilir. Genellikle, bu tanım sanal host yapılandırma dosyalarında bulunur.

* Varsayılan Web Kök Dizini: Ubuntu’da Apache’nin varsayılan web kök dizini /var/www/html‘dir.
* Yapılandırma Dosyaları:
* apache2.conf: Ana Apache yapılandırma dosyasıdır. DocumentRoot ve yönergeleri burada genel olarak tanımlanabilir, ancak genellikle sanal host dosyalarında özelleştirilir.
* sites-available/: Bu dizin, sunucunuzdaki her bir sanal host için yapılandırma dosyalarını içerir. Örneğin, varsayılan sanal host için 000-default.conf dosyası bulunur. Etkin sanal hostlar, sites-enabled/ dizinine sembolik bağlantılar aracılığıyla bağlanır.
* apachectl -S Komutu: Bu komut, Apache’nin tüm sanal host yapılandırmalarını ve DocumentRoot ayarlarını listelemenizi sağlar. Bu, hangi sanal hostun hangi dizini kullandığını hızlıca anlamak için çok faydalıdır.

Örneğin, mevcut DocumentRoot ayarınızı kontrol etmek için:

sudo apachectl -S

Bu komutun çıktısında, DocumentRoot satırlarını arayın. Varsayılan olarak şöyle bir çıktı görebilirsiniz:

VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server your_server_ip (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost your_server_ip (/etc/apache2/sites-enabled/000-default.conf:1)
                 DocumentRoot: "/var/www/html"

Bu çıktı, 000-default.conf dosyasının /var/www/html dizinini DocumentRoot olarak kullandığını gösterir.

Taşıma Planlaması

Taşıma işlemine başlamadan önce aşağıdaki noktaları göz önünde bulundurun:

1. Yeni Konum Seçimi: Web içeriğiniz için yeni bir dizin seçin. Bu dizin genellikle /srv/www, /opt/web veya hatta kullanıcı ev dizininin altında bir yer olabilir (örneğin, /home/kullanici_adi/public_html). Seçtiğiniz konumun yeterli disk alanına sahip olduğundan emin olun. Bu rehberde örnek olarak /srv/www/yeni_sitem konumunu kullanacağız.
2. Yedekleme Stratejisi: Herhangi bir kritik işlemi yapmadan önce, mevcut web içeriğinizin ve Apache yapılandırma dosyalarınızın tam bir yedeğini alın. Bu, herhangi bir sorun durumunda geri dönebilmenizi sağlar.

Adım Adım Kılavuz

Şimdi, Apache web kök dizinini yeni bir konuma taşıma adımlarını ayrıntılı olarak inceleyelim.

1. Yedekleme

Yedekleme, bu sürecin en kritik adımıdır. Hem web içeriğinizi hem de Apache yapılandırma dosyalarınızı yedeklemelisiniz.

* Web İçeriğini Yedekleme:
Mevcut web içeriğinizin bir kopyasını alın. Varsayılan olarak /var/www/html dizinindedir.

sudo cp -R /var/www/html /var/www/html_yedek

Veya bir tar arşivi oluşturabilirsiniz:

sudo tar -czvf /root/web_icerigi_yedek_$(date +%Y%m%d).tar.gz /var/www/html

* Apache Yapılandırmasını Yedekleme:
Apache’nin tüm yapılandırma dizinini yedekleyin.

sudo cp -R /etc/apache2 /etc/apache2_yedek

Veya bir tar arşivi oluşturabilirsiniz:

sudo tar -czvf /root/apache_yapilandirma_yedek_$(date +%Y%m%d).tar.gz /etc/apache2

Bu yedekler, herhangi bir sorunla karşılaşmanız durumunda sunucunuzu önceki durumuna geri döndürmenizi sağlayacaktır.

2. Apache’yi Durdurma

Dosyaları taşımadan ve yapılandırmayı değiştirmeden önce Apache hizmetini durdurmak önemlidir. Bu, dosya kilitlenmelerini önler ve tutarlı bir taşıma sağlar.

sudo systemctl stop apache2

Apache’nin durduğunu kontrol etmek için:

sudo systemctl status apache2

Çıktıda Active: inactive (dead) görmelisiniz.

3. Yeni Web Kök Dizinini Oluşturma ve İçeriği Taşıma

Şimdi, web içeriğiniz için yeni dizini oluşturun ve mevcut içeriği bu yeni konuma taşıyın.

* Yeni Dizini Oluşturma:
Örnek olarak /srv/www/yeni_sitem dizinini oluşturalım.

sudo mkdir -p /srv/www/yeni_sitem

* Web İçeriğini Taşıma:
Mevcut web içeriğinizi (/var/www/html) yeni oluşturduğunuz dizine taşıyın.

sudo mv /var/www/html/* /srv/www/yeni_sitem/

Bu komut, /var/www/html içindeki tüm dosyaları ve dizinleri yeni konuma taşır. Eğer /var/www/html dizininin kendisini taşımak isterseniz (örneğin, yeni konumda html adında bir dizin olarak), komut şöyle olurdu:

sudo mv /var/www/html /srv/www/yeni_sitem

Bu durumda DocumentRoot ayarınız /srv/www/yeni_sitem/html olacaktır. Biz ilk senaryoyu tercih ederek /srv/www/yeni_sitem içine doğrudan dosyaları taşıdık.

4. Yeni Dizin İçin İzinleri Ayarlama

Apache’nin yeni web kök dizinine erişebilmesi ve dosyaları okuyabilmesi için doğru dosya sahipliği ve izinleri ayarlamanız gerekir. Apache genellikle www-data kullanıcısı ve grubunda çalışır.

* Sahipliği Ayarlama:
Web içeriğinizin yeni dizininin sahipliğini www-data kullanıcısına ve grubuna atayın.

sudo chown -R www-data:www-data /srv/www/yeni_sitem

* İzinleri Ayarlama:
Dizinler için genellikle 755 (okuma, yazma, çalıştırma sahibi için; okuma ve çalıştırma grup ve diğerleri için) ve dosyalar için 644 (okuma ve yazma sahibi için; okuma grup ve diğerleri için) izinleri önerilir.

sudo find /srv/www/yeni_sitem -type d -exec chmod 755 {} \;
    sudo find /srv/www/yeni_sitem -type f -exec chmod 644 {} \;

Bu komutlar, yeni web kök dizinindeki tüm dizinlere 755 ve tüm dosyalara 644 izinlerini uygular. Bu, Apache’nin içeriği sunabilmesi için yeterli izinleri sağlar ancak gereksiz yazma izinlerini kısıtlayarak güvenliği artırır.

5. Apache Yapılandırmasını Güncelleme

Şimdi, Apache’ye web içeriğinin yeni konumunu bildirmelisiniz. Bu genellikle sanal host yapılandırma dosyalarında yapılır.

* Sanal Host Yapılandırma Dosyasını Düzenleme:
Varsayılan sanal host dosyasını (genellikle 000-default.conf) düzenleyeceğiz. Eğer özel bir sanal host kullanıyorsanız, o dosyayı düzenlemelisiniz.

sudo nano /etc/apache2/sites-available/000-default.conf

Bu dosya içinde, DocumentRoot yönergesini ve bloğunu yeni web kök dizininize işaret edecek şekilde değiştirin.

Örnek olarak, varsayılan dosya şöyle görünebilir:


        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        
    

Bu satırları yeni konuma göre güncelleyin:


        ServerAdmin webmaster@localhost
        DocumentRoot /srv/www/yeni_sitem

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        
    

Değişiklikleri kaydedin ve düzenleyiciden çıkın (Nano’da Ctrl+O, Enter, Ctrl+X).

* apache2.conf Dosyasını Kontrol Etme (İsteğe Bağlı):
Bazı durumlarda, ana apache2.conf dosyasında da genel bir bloğu bulunabilir. Eğer özel bir durumunuz yoksa, genellikle bu dosyayı değiştirmenize gerek kalmaz. Ancak, kontrol etmekte fayda vardır.

sudo nano /etc/apache2/apache2.conf

Bu dosya içinde, /var/www/ veya /var/www/html ile ilgili bir yönergesi olup olmadığını kontrol edin ve gerekirse yeni konumunuza güncelleyin. Genellikle varsayılan olarak şu şekilde bir blok bulunur:


        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    

Eğer yeni dizininiz /var/www/ altında değilse (ki bizim örneğimizde /srv/www/yeni_sitem), bu bloğun yeni dizininizi kapsamadığını unutmayın. Bu durumda, ya yeni dizininizi kapsayacak genel bir bloğu eklemeli ya da sanal host dosyasındaki bloğunun yeterli olduğundan emin olmalısınız. Çoğu senaryoda, sanal host dosyasındaki bloğunu güncellemek yeterlidir.

6. Apache Yapılandırmasını Test Etme

Apache’yi yeniden başlatmadan önce yapılandırmanızın sözdizimi açısından doğru olduğundan emin olun.

sudo apache2ctl configtest

Eğer her şey yolundaysa, çıktı olarak Syntax OK görmelisiniz. Herhangi bir hata mesajı alırsanız, yapılandırma dosyanızdaki değişiklikleri dikkatlice kontrol edin.

7. Apache’yi Başlatma

Yapılandırma testi başarılı olduktan sonra, Apache hizmetini başlatabilirsiniz.

sudo systemctl start apache2

Apache’nin başarıyla başladığını kontrol edin:

sudo systemctl status apache2

Çıktıda Active: active (running) görmelisiniz.

8. Web Sitesini Test Etme

Son olarak, web tarayıcınızı kullanarak web sitenizin IP adresine veya alan adına erişerek taşıma işleminin başarılı olup olmadığını kontrol edin. Web sitenizin içeriğinin yeni konumdan doğru bir şekilde sunulduğundan emin olun.

Eğer herhangi bir sorunla karşılaşırsanız, Apache hata günlüklerini kontrol edin:

sudo tail -f /var/log/apache2/error.log

Bu günlük dosyası, “Forbidden”, “Not Found” gibi hataların nedenini anlamanıza yardımcı olabilir.

AppArmor ile Çalışma

Ubuntu 16.04, sistem kaynaklarına programların erişimini sınırlamak için AppArmor kullanır. Apache’nin yeni web kök dizininize erişimini sağlamak için AppArmor profilini güncellemeniz gerekebilir. Eğer Apache yeni dizine erişemediği için “Forbidden” hataları alıyorsanız, bu adım genellikle gereklidir.

* AppArmor Durumunu Kontrol Etme:

sudo aa-status

Bu komut, yüklü ve etkin AppArmor profillerini gösterir. usr.sbin.apache2 profilini listede görmelisiniz.

* AppArmor Profilini Güncelleme:
Apache’nin AppArmor profili /etc/apparmor.d/usr.sbin.apache2 konumunda bulunur. Bu dosyayı düzenleyerek yeni web kök dizininize erişim izni vermelisiniz.

sudo nano /etc/apparmor.d/usr.sbin.apache2

Dosyanın içinde, DocumentRoot‘unuzla ilgili mevcut girdileri arayın. Genellikle şöyle bir satır bulunur:

/var/www/html/ r,
    /var/www/html/ rwk,

Bu satırların altına, yeni web kök dizininiz için benzer satırları ekleyin:

# Yeni web kök dizini için erişim izinleri
    /srv/www/yeni_sitem/ r,
    /srv/www/yeni_sitem/ rwk,

* r: okuma izni
* w: yazma izni (eğer web uygulamanızın dosya yüklemesi gibi işlemleri varsa gerekli olabilir)
* k: kilit izni (genellikle veritabanı veya diğer uygulamalar için)
*: dizin ve altındaki tüm dosyalar ve dizinler için geçerli.

Değişiklikleri kaydedin ve dosyadan çıkın.

* AppArmor Profilini Yeniden Yükleme:
Değişikliklerin etkili olması için AppArmor profilini yeniden yüklemeniz gerekir:

sudo systemctl reload apparmor

Ardından Apache’yi yeniden başlatın ve web sitenizi tekrar test edin.

sudo systemctl restart apache2

Ek Hususlar ve İpuçları

Sembolik Bağlantılar (Symbolic Links)

Web kök dizinini taşımak yerine, eski /var/www/html dizininden yeni konuma bir sembolik bağlantı oluşturmak da bir alternatiftir. Bu yöntem, Apache yapılandırma dosyalarını değiştirmekten kaçınmanızı sağlar ancak sembolik bağlantıların yönetimi bazen karmaşık olabilir.

1. Mevcut html dizinini taşıyın:

sudo mv /var/www/html /srv/www/yeni_sitem

Bu durumda yeni web kök dizininiz /srv/www/yeni_sitem/html olacaktır.

2. Sembolik bağlantıyı oluşturun:

sudo ln -s /srv/www/yeni_sitem/html /var/www/html

Bu yöntemde, Apache hala /var/www/html‘ye bakıyor gibi görünür, ancak aslında içerik yeni konumdan sunulur. Ancak, Apache yapılandırmasındaki yönergelerinin yine de gerçek yolu (yani /srv/www/yeni_sitem/html) işaret etmesi gerekebilir veya FollowSymLinks seçeneğinin etkin olması gerekir.

Birden Fazla Web Sitesi

Eğer sunucunuzda birden fazla web sitesi barındırıyorsanız, her bir sanal host için ayrı bir yapılandırma dosyası (/etc/apache2/sites-available/site1.conf, /etc/apache2/sites-available/site2.conf vb.) olacaktır. Her bir web sitesinin web kök dizinini taşımak için, ilgili sanal host yapılandırma dosyasını düzenlemeniz ve DocumentRoot ile yönergelerini güncellemeniz gerekecektir.

Güvenlik İpuçları

* En Az Ayrıcalık Prensibi: Apache’nin web içeriğine erişimi için her zaman en az ayrıcalık prensibini uygulayın. www-data kullanıcısının yalnızca okuma iznine ihtiyacı olan yerlerde yazma izni vermeyin.
* .htaccess Dosyaları: AllowOverride yönergesi, .htaccess dosyalarının nasıl işleneceğini kontrol eder. AllowOverride None güvenlik için en iyisidir, ancak WordPress gibi bazı uygulamalar AllowOverride All gerektirebilir.
* Dizin Listeleme: Options -Indexes yönergesini kullanarak dizin listelemeyi devre dışı bırakın. Bu, ziyaretçilerin bir dizinde index.html veya benzeri bir dosya olmadığında dizin içeriğini görmesini engeller.

Günlük Dosyaları

Apache varsayılan olarak günlük dosyalarını (error.log, access.log) /var/log/apache2/ dizinine yazar. Web kök dizinini taşımanız, günlük dosyalarının konumunu etkilemez. Ancak, günlük dosyalarını da başka bir konuma taşımak isterseniz, sanal host yapılandırma dosyalarındaki ErrorLog ve CustomLog yönergelerini güncellemeniz gerekir.

Sorun Giderme (Troubleshooting)

Taşıma işlemi sırasında veya sonrasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:

* “Forbidden” veya “403” Hatası:
* Neden: Apache’nin yeni web kök dizinine erişim izni yok.
* Çözüm: chown ve chmod komutlarıyla dosya sahipliğini ve izinlerini kontrol edin (www-data:www-data ve 755/644). AppArmor profilini kontrol edin ve güncelleyin. Apache yapılandırma dosyasındaki bloğunun yeni yolu doğru bir şekilde belirttiğinden ve Require all granted yönergesinin olduğundan emin olun.
* “Not Found” veya “404” Hatası:
* Neden: DocumentRoot yönergesi yanlış bir yolu işaret ediyor veya web içeriği doğru taşınmamış.
* Çözüm: Sanal host yapılandırma dosyasındaki DocumentRoot yönergesinin yeni ve doğru yolu işaret ettiğinden emin olun. Web içeriğinizin gerçekten yeni dizinde olduğundan emin olun.
* Apache Başlamıyor:
* Neden: Yapılandırma dosyasında sözdizimi hatası var.
* Çözüm: sudo apache2ctl configtest komutunu çalıştırın ve hata mesajlarını düzeltin. Apache’nin hata günlüklerini (/var/log/apache2/error.log) kontrol edin.
* Boş Sayfa veya Yanlış İçerik:
* Neden: Tarayıcı önbelleği, yanlış sanal hostun sunulması veya DNS sorunları.
* Çözüm: Tarayıcı önbelleğini temizleyin veya farklı bir tarayıcı/gizli pencere kullanın. Eğer birden fazla sanal hostunuz varsa, doğru yapılandırma dosyasını düzenlediğinizden ve doğru alan adıyla eriştiğinizden emin olun. DNS kayıtlarınızın doğru IP adresini işaret ettiğini kontrol edin.

Sonuç

Apache web kök dizinini Ubuntu 16.04’te yeni bir konuma taşımak, dikkatli bir planlama ve adım adım uygulama gerektiren bir işlemdir. Bu rehberde açıklanan adımları izleyerek, web sitenizin içeriğini güvenli ve etkili bir şekilde yeni bir konuma taşıyabilirsiniz. Her zaman yedekleme yapmayı, Apache yapılandırmasını doğru bir şekilde güncellemeyi ve AppArmor gibi güvenlik mekanizmalarını göz önünde bulundurmayı unutmayın. Herhangi bir sorunla karşılaştığınızda, Apache günlük dosyaları ve apache2ctl configtest komutu, sorunun kaynağını bulmada en iyi dostlarınız olacaktır. Bu süreç, sunucunuzun performansını, güvenliğini ve yönetilebilirliğini artırmak için önemli bir adımdır.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version