Apache Web Sunucusunda Virtual Hosting .htaccess ve Dizin Erişimi Kısıtlama Konfigurasyonu (FreeBSD)
|
||
|
||
Apache web sunucusunda Virtual Hosting , Tek bir Apache web sunucusu üzerinden birden fazla domain(web alanı) için hizmet vermek amacı ile kullanılır. Bu dökümanda isme göre (Name -based) virtual hosting konfigurasyon yapılacktır . Tüm web alanları için web sunucusunda tek bir ip adresi kullanılacaktır. IP ye göre (IP -based) konfigurasyonda yapılar ama bunun için her web alanını(domain) için ayrı ayrı ip adresi tanımlanmalıdır. Bu durumda isme göre konfigurasyon yapmak daha mantıklıdır (en azından ben öyle düşünüyorum :)) ). | ||
|
||
Bu dokumanin en guncel hali; http://www.enderunix.org/docs/apache.html
adresindedir. Aksi belirtilmedigi takdirde bu gibi dokumanlarin haklari kendilerini yazan yazarlarda saklidir. Bu dokuman da, parca parca ya da tamamen herhangi bir sekilde, yazarinin izni dahilinde dagitilabilir. Yazar, bu dokumani okuyanlarin ugrayacaklari herhangi bir zarardan oturu sorumluluk kabul etmez. Use at your own risk! Eger, herhangi bir konuda yardima ihtiyaciniz olursa, [email protected] ya da [email protected] adresine mail atabilirsiniz.! -- Ismail YENIGUL |
||
Apache kurulumu | ||
Eğer Apache yi kurmadıysanız. Kısa yoldan portlardan kuralım #cd /usr/ports/www/apache13 #make install komutunu verdiğinizde apache yi FreeBSD sizin için kuracaktır. Burada php ssl gibi destekler verilmemistir. Bu destekleri verecekseniz Apache yi vereceginiz destege gore kurmanız gerekmektedir. Burada bu modullerin nasıl kurulacagı anlatılmayacaktır.
|
||
Virtual Hosting (Sanal Alan) Konfigurasyonu: | ||
Diyelimki www.enderunix.org , www.yenigul.net ve www.bsdlive.org siteleri için virtual hosting yapacagız. Öncelike tüm bu alanlar için mutlaka dns
kaydı yapılması lazım ve dns sunucuda bu alanların ip adresi olarak apache web
suncusunun ip adresi verilmelidir. burada apache web sunucusun ip adresi
olarak 195.1.2.4 verilecektir # vi /usr/local/etc/apache/httpd.conf NameVirtualHost 195.1.2.4:80 # www.enderunix.org 17 Mart 001 de olusturuldu (yenigul) <VirtualHost 195.1.2.4> ErrorLog /var/log/error_enderunix.org # www.bsdlive web alanı 16 Mart 2001 de olusturuldu (yenigul) <VirtualHost 195.1.2.4> Script Alias /cgi-bin "/usr/local/www/data/bsdlive/cgi-bin" Şimdi Yukarıdaki ifadelerin ne demek oldugun açıklayalım. NameVirtualHost 195.1.2.4:80 İfadesindeki; 195.1.2.4: Apache web sunucusunun ip adresi (IP Gerçek degil Oylesine bir IP verdim) ve 80 ile de httpd port u belirtilmiştir . Bu ifadeyi httpd.conft bir defa yazmanız yeterlidir. # ile başlayan kısımlar sadece açıklama kısmıdır, olup olmaması konfigurasyonu etkilemez . <VirtualHost 195.1.2.4> Bu kısımdaki ip adresi web sunucusunun ip adresi olmalı DocumentRoot /usr/local/usr/local/www/data/domains/enderunix İfadesi ile www.enderunix.org adresinin dosyalarının bulundugu yeri belirttik. ServerName www.enderunix.org Adından da anlaşılacağı gibi Web alanın adı belirtildi. Script Alias /cgi-bin
"/usr/local/www/data/enderunix/cgi-bin" ErrorLog /var/log/error_enderunix.org Bu ifade ilede bu web alanındaki hatalar(dosyaların bulunamaması , CGI hataları) /var/log dizini altindaki error_yenigul.net dosyasına yazılır. TransferLog /var/log/access_log_enderunix.org Bu ifade ilede bu web alanına hangi ip lerden erişildiği hangi dosyalara bakıldığı gibi bilgilerin /var/log dizini altindaki (bizim kurulumda /www//var/log ) access_log.enderunix.org dosyasına yazılacağını belirtir. </VirtualHost> Evet Virtual Hosting mizin sonuna geldik sayılır ama bir sorun var !!! Bizim Apache Sunucumuzun IP adresi 195.1.2.4 idi .Diyelimki bu IP Bu sorunu çözmek için www.yenigul.net sunucunun adı olmasına
ragmen , bu alan içinde Virtual Hosting kaydı yapılmalıdır. # www.yenigul.net Web alanı kaydı <VirtualHost 195.1.2.4> ErrorLog /var/log/error_yenigul.net ve Virtual Hosting kismiyla ilgi son olarak bir de nasil CGI izni verilecegini gösterelim. Yukarida belirtiginiz enderunix.org <Directory " /usr/local/www/data/domains/enderunix/cgi-bin"> Options +ExecCGI </Directory> # /usr/local/sbin/apachectl restart komutunu verdigimizde CGI izinleri aktif hale gelecektir. |
||
.htaccess : | ||
.htaccess Apache Web sunucusu ile birlikte gelen ve Apache Web sunucu üzerindeki belirli dizinlere erişim için kullanıcı adı ve şifre sorgulaması yapmaya yarayan bir uygulamdır. Bu sayede özel dizinlere sadece sizin belirlediginiz kullanıcılar erişebilir.
httpd.conf dosyasını bir editörde açalım ve şu ifadeleri yazalım <Directory /usr/local/www/data/domains/enderunix.org/secure> AllowOverride AuthConfig ifadesi ile bu dizine erişim için httaccess kullanılması
gerektigini belirtiyoruz.. Evet /usr/local/www/data/domains/enderunix.org/secure dizini
altında AuthName "EnderUNIX Team Ozel bolgesi !!!" yazınız.. Biraz Açıklayalım . AuthName "EnderUNIX Team Ozel bolgesi !!!" AuthType Basic AuthUserFile /usr/local/www/data/domains/enderunix.org/secure/.htpasswd Yukarıdaki ifade ilede Kullanıcı adı ve şifrelerin saklandığı dosyanın TAM! yeri belirtiliyor. Evet Tam olarak dosyanın yeri belirtilmelidir. require valid-user .htaccess dosyası taman sıra .htpasswd dosyasını oluşturmaya geldi. # /usr/local/bin/htpasswd -c /usr/local/www/data/domains/enderunix.org/secure/.htpasswd yenigul Yukarıdaki komut ile /usr/local/www/data/domains/enderunix.org/securel/.htpasswd
dizini altında .httpasswd oluşturulur ve yenigul kullanıcısı eklenir. # /usr/local/bin/htpasswd /usr/local/www/data/domains/enderunix.org/secure/.htpasswd yakup şeklinde olmalıdır. htpasswd komutunu kullandıktan sonra apache yi restart yapmanıza gerek YOKTUR.! |
||
Dizinleri IP adresine veya Domain(alan) Adına göre kısıtlama: | ||
Bu kısımda kısıtlama yapılacak adresimiz
http://www.yenigul.net/intranet ve dosyalar /usr/local/www/data/intranet altında bulunsun - Sadece belirli IPlere erişimi verip diğerlerine yasak koymak için ,Örnegin 212.65.128 uzayındaki IP ler <Directory /usr/local/www/data/intranet> - Sadece belirli domainlere erişmi verip diğerlerine yasak koymak için ,Örnegin linux.org.tr <Directory /usr/local/www/data/intranet> - Sadece belirli IPlere yasak koyup diğerlerine izin vermek için ,Örnegin 195.1.2 uzayındaki IP ler <Directory /usr/local/www/data/intranet> - Sadece belirli domainlere yasak koyup digerlerine izin vermek için için ,Örnegin lamer.com domaini <Directory /usr/local/www/data/intranet> Yapılan değişikliklerin aktif olması için Dökumanımızın sonuna geldik. Sorunlarınızı ve önerilerinizi yukarıda belirttiğim e-mail adreslerinden biri ile bana ulaştırabilirsiniz. |
||
Kaynaklar: | ||
Apache Manual: |