Fedora/Centos public_html konfigürasyonu
Apache web server kurulum sonrası yazdığınız html ya da php kodunu /var/www/html/ dizini altında çalıştırmanıza izin verir. Bu dizini proje dizininiz olarak tanımlamak IDE ya da editörünüzde yazma/kaydetme sırasında hata almanıza neden olur. Sebebi oturum açtığınız kullanıcı hesabınızın bu dizine yazma izninin bulunmamasıdır. Genellikle bazı Linux kullanıcıları bu dizine genel bir yazma izni vererek zaman kaybetmeden çalışmayı tercih eder. Ancak aslında buna gerek yoktur. Linux geliştiricileri bunu zaten bizim için düşünmüş ve kullanıma sunmuştur. Şimdi nasıl yapacağımıza bakalım.
Yapacağımız şey home dizinimiz altında public_html isimli bir dizin oluşturarak içindekileri /var/www/html dizininde çalışıyormuş gibi home dizinimizden çalıştırmamızı sağlayacak.
İşlem için root yetkisi gerektiğinden önce root “su” komutu ile olmamız gerekiyor. Ardından Apache konfigürasyon dosyasında aşağıdaki satırı bularak değiştirmemiz gerekiyor. Yıllardır nano alışkanlığından vazgeçemememiş biri olarak işlemi nano komutu ile yapacağım.
Aşağıdaki satır kullanıcı dizini yani public_html’i devre dışı bırak anlamına gelecek şekilde çalışıyor.
Bu nedenle bu satırın önündeki # yorum işaretini kaldırıyor ve kodumuzu aşağıdaki gibi güncelliyoruz.
Ardından aşağıdaki komutun önündeki devre dışı bırak anlamına gelen # işaretini kaldırıyoruz.
Ve komutumuz aşağıdaki gibi artık çalışabilir hale geliyor.
public_html dizini için gerekli yapılandırmayı Apache için sağlamış oluyoruz.
Dosyanın güncellenmiş hali aşağıdaki görüntüdeki gibi olmalı.
Şimdi işlemi nano ile yaptıysak yaptığımız değişiklikleri CTRL+O sonra ENTER yaparak kaydediyoruz. Ardından CTRL+X ile userdir.conf’u kapatıyoruz.
Apache’nin güncellediğimiz konfigürasyon dosyası ile çalışabilmesi için restart edilmesi gerekiyor. Aşağıdaki komutla servisi restart ediyoruz.
Eğer selinux sisteminizde aktif durumdaysa aşağıdaki komutlarla izin vermemiz gerekecek. Siz de benim gibi daha önce selinux’u devre dışı bıraktıysanız bu adımı geçebilirsiniz.
Selinux aktifse aşağıdaki komuttaki gibi 2 paketi kuruyoruz.
Ardından sırasıyla aşağıdaki iki komut ile public_html dizinimize izin veriyoruz.
Sıra dizinimizi home dizini altında oluşturmaya geldi.
Komutu ile kullanıcı dizininize geldiniz ve aşağıdaki gibi klasörü oluşturdunuz.
Komutları ile yazma iznimizi vermiş oluyoruz.
Artık public_html dizinine attığımız çalışmaları çalıştırabilir durumda olmalıyız.
Daha önce http://localhost/ şeklinde eriştiğimiz sayfamıza artık public_html üzerinden erişmek için aşağıdaki adresi kullanmamız gerekiyor.
http://localhost/~kullanıcıadınız
Test için public_html dizininde bir test dosyası oluşturuyor ve sonuca bakıyoruz. Direkt olarak public_html dizinine kaydedeceğiniz aşağıdaki .php komutu ile yapılandırmayı test edebilirsiniz.
Artık yazma izinlerine ihtiyacınız olmasa da test dosyasını nano ile aşağıdaki komutla oluşturabilirsiniz.
nano /home/omer/public_html/info.php
Yine kaydetmek için CTRL+O ve çıkmak için CTRL+X komutlarını kullanacağız.
http://localhost/~kullanıcıadınız/info.php
Eğer aşağıdaki adres satırımıza yukarıda belirttiğimiz gibi public_html dizininden çağırdığımız info.php dosyasının görüntüsü sizde de aşağıdaki gibiyse işlem tamam demektir.
Keyifli Linuxlar!
Kaynaklar: Apache.org Server World Info
dediğiniz işlemi yaptım ancak halen sistem
/var/www/html üzerinden çalışıyor
http://localhost/~test/info.php
Forbidden
You don’t have permission to access /~test/info.php on this server.
hatanın çözümü klasör oluştururken root çıkış yapılırsa sorun olmuyor ve en sonrasında apache yeniden başlatınca
[fedora@www ~]$ mkdir public_html
[fedora@www ~]$ chmod 711 /home/fedora
[fedora@www ~]$ chmod 755 /home/fedora/public_html
[fedora@www ~]$ vi ./public_html/index.html
son olarak aklıma kalan bir nokta bunda direk dosya adını yazamayınca işlem yapmıyor klasör listeleme olmuyor bundan olursa daha pratik olur saygılar..
Merhaba, sırasıyla aşağıdaki şekilde izinleri düzenlediğinizde klasörleri de görüntüleyebiliyor olmalısınız.
# chmod 711 /home/fedora/
# chown fedora:fedora /home/fedora/public_html/
# chmod 755 /home/fedora/public_html
# systemctl restart httpd
Sanırım biraz daha özenli olmalıyım. Geri bildiriminiz için teşekkürler 🙂