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: |