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.

nano /etc/httpd/conf.d/userdir.conf

Aşağıdaki satır kullanıcı dizini yani public_html’i devre dışı bırak anlamına gelecek şekilde çalışıyor.

Userdir disabled

Bu nedenle bu satırın önündeki # yorum işaretini kaldırıyor ve kodumuzu aşağıdaki gibi güncelliyoruz.

UserDir enabled kullaniciadiniz

Ardından aşağıdaki komutun önündeki devre dışı bırak anlamına gelen # işaretini kaldırıyoruz.

#UserDir public_html

Ve komutumuz aşağıdaki gibi artık çalışabilir hale geliyor.

UserDir public_html

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.

systemctl restart httpd

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.

dnf -y install checkpolicy policycoreutils-python-utils

Ardından sırasıyla aşağıdaki iki komut ile public_html dizinimize izin veriyoruz.

setsebool -P httpd_enable_homedirs on
restorecon -R /home

Sıra dizinimizi home dizini altında oluşturmaya geldi.

cd /home/kullancıadınız/

Komutu ile kullanıcı dizininize geldiniz ve aşağıdaki gibi klasörü oluşturdunuz.

mkdir public_html
chmod 755 -R /home/kullanıcıadınız/public_html

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.

<?php
phpinfo();
?>

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

<?php
phpinfo();
?>

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

Paylaş
4 Comments

Yorum Ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir