EnderUnix Software Development Team

                                                  Apache Web Sunucusunda Virtual Hosting  .htaccess ve

                                                         Dizin Eriimi Kstlama Konfigurasyonu (FreeBSD)

 

 

Giris

17 Mart 2001

   Apache web sunucusunda  Virtual Hosting  , Tek bir Apache web sunucusu zerinden birden fazla domain(web alan) iin hizmet vermek amac ile kullanlr. Bu dkmanda isme gre (Name -based) virtual hosting konfigurasyon yaplacktr . Tm web alanlar iin web sunucusunda tek bir ip adresi kullanlacaktr. IP ye gre (IP -based) konfigurasyonda yaplar ama bunun iin her web alann(domain) iin ayr ayr ip adresi tanmlanmaldr. Bu durumda isme gre konfigurasyon yapmak daha mantkldr (en azndan ben yle dnyorum :)) ).
Genel Notlar
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
[email protected]
   17 Mart, 2001

Apache kurulumu
 

Eer Apache yi kurmadysanz. Ksa yoldan portlardan kuralm

#cd /usr/ports/www/apache13

#make install

komutunu verdiinizde apache yi FreeBSD sizin iin kuracaktr. Burada php ssl gibi destekler verilmemistir. Bu destekleri verecekseniz Apache yi vereceginiz destege gore kurmanz gerekmektedir. Burada bu modullerin nasl kurulacag anlatlmayacaktr.

 

Virtual Hosting (Sanal Alan) Konfigurasyonu:
Diyelimki www.enderunix.org , www.yenigul.net ve  www.bsdlive.org siteleri  iin
virtual hosting yapacagz.

ncelike  tm bu alanlar iin  mutlaka dns kayd yaplmas lazm ve dns sunucuda bu alanlarn ip adresi olarak apache web suncusunun ip adresi verilmelidir.  burada apache web sunucusun ip adresi  olarak 195.1.2.4 verilecektir
 
  Sras ile enderunix.org www.bsdlive.org iin Virtual Hosting bilgilerini yazalm .FreeBSD de apache yi portlardan kurdugunuzda httpd.conf dosyas /usr/local/etc/apache dizini altndadr.

# 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>
ServerAdmin [email protected]
DocumentRoot /usr/local/www/data/domains/enderunix
ServerName www.enderunix.org
Script Alias  /cgi-bin "/usr/local/www/data/enderunix/cgi-bin"

ErrorLog /var/log/error_enderunix.org
TransferLog /var/log/access_log_enderunix.org
</VirtualHost>

# www.bsdlive web alan 16 Mart 2001 de olusturuldu (yenigul)

<VirtualHost 195.1.2.4>
ServerAdmin [email protected]
DocumentRoot /usr/local/www/data/domains/bsdlive
ServerName www.bsdlive.org

Script Alias  /cgi-bin "/usr/local/www/data/bsdlive/cgi-bin"
ErrorLog /var/log/error_bsdlive
TransferLog /var/log/access_log_bsdlive
</VirtualHost>

imdi Yukardaki ifadelerin ne demek oldugun aklayalm.

NameVirtualHost  195.1.2.4:80

fadesindeki;

195.1.2.4: Apache web sunucusunun ip adresi (IP  Gerek degil Oylesine bir IP verdim) ve 80 ile de httpd port u belirtilmitir . Bu ifadeyi httpd.conft bir defa yazmanz yeterlidir.

# ile balayan ksmlar sadece aklama ksmdr, olup olmamas konfigurasyonu etkilemez .

<VirtualHost 195.1.2.4>

Bu ksmdaki ip adresi web sunucusunun ip adresi  olmal
ServerAdmin  [email protected] ifadesi ile  Bu web alannn yetkili kiisinin e-mail adresini belirtir.

DocumentRoot  /usr/local/usr/local/www/data/domains/enderunix

fadesi ile www.enderunix.org adresinin dosyalarnn bulundugu yeri belirttik.

ServerName  www.enderunix.org

Adndan da anlalaca gibi Web alann ad belirtildi.

Script Alias  /cgi-bin   "/usr/local/www/data/enderunix/cgi-bin"
ifadesi ile http://www.enderunix.org/cgi-bin adresine ulasmak istediklerinde bu domaina ait cgi-bin dizinin  "/usr/local/www/data/enderunix/cgi-bin" dizini oldugunu belirtir.

ErrorLog /var/log/error_enderunix.org

Bu ifade ilede bu web alanndaki hatalar(dosyalarn bulunamamas , CGI hatalar)   /var/log dizini altindaki  error_yenigul.net dosyasna yazlr.

TransferLog  /var/log/access_log_enderunix.org

Bu ifade ilede bu web alanna hangi ip lerden eriildii hangi dosyalara bakld gibi bilgilerin  /var/log dizini altindaki (bizim kurulumda /www//var/log ) access_log.enderunix.org dosyasna yazlacan belirtir.

</VirtualHost>
ifadesi ile Bu alan iin gerekli konfigurasyonun bittiini belirttik.

Evet Virtual Hosting mizin sonuna geldik saylr ama bir sorun var !!!

Bizim Apache Sunucumuzun IP adresi 195.1.2.4 idi .Diyelimki bu IP
www.yenigul.net isimli makinaya ait ve bu  adress .YENIGUL.NET web sunucu .
u anki konfigurasyonla  http://www.yenigul.net adresine girmek isteyen birisi www.yenigul.net yerine httpd.conf dosyasnda en stte bulunan web alanna gidecektir .Yani www.enderunix.org adresine eriecektir.

    Bu sorunu zmek iin www.yenigul.net sunucunun ad olmasna ragmen , bu alan iinde Virtual Hosting kayd yaplmaldr.
Aagdaki ifadeler yazlrsa bu sorun giderilmi olur.
 

# www.yenigul.net Web alan kayd

<VirtualHost 195.1.2.4>
ServerAdmin [email protected]
DocumentRoot /usr/local/www/data
ServerName www.yenigul.net

ErrorLog /var/log/error_yenigul.net
TransferLog /var/log/access_log_yenigul.net
</VirtualHost>

ve
# /usr/local/sbin/apachectl restart
 komutu ile deiiklikler aktif hale getirilir.
Bu  komut httpd.conf da yaplan her deiiklikten sonra altrlmaldr yoksa yaplanlar aktif olmaz.!

Virtual Hosting kismiyla ilgi son olarak bir de nasil CGI izni verilecegini gsterelim. Yukarida belirtiginiz enderunix.org

<Directory  " /usr/local/www/data/domains/enderunix/cgi-bin">

Options +ExecCGI

</Directory>
Yukardaki ifadeler ile enderunix.org sitesine ait olan cgi-bin dizinine cgi calistirma izni verdik.

# /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 eriim iin kullanc ad ve ifre sorgulamas yapmaya yarayan bir  uygulamdr. Bu sayede zel dizinlere sadece sizin belirlediginiz kullanclar eriebilir.


rnegin:    http://www.enderunix.org/secure adresine htaccess uygulayalm
 bu dizin  Apache Sunucusunda /www/htdocs/secure  olsun

httpd.conf  dosyasn bir  editrde aalm ve u ifadeleri yazalm

<Directory /usr/local/www/data/domains/enderunix.org/secure>
 AllowOverride AuthConfig
</Directory>

AllowOverride AuthConfig ifadesi ile bu dizine eriim iin httaccess kullanlmas gerektigini belirtiyoruz..
htaccess nerdemi olacak ? Tabiki  /usr/local/www/data/domains/enderunix.org/secure   !

Evet /usr/local/www/data/domains/enderunix.org/secure  dizini altnda
.httaccess dosyas oluturun (Evet Nokta var!  .htaccess) ve iine

AuthName  "EnderUNIX Team Ozel bolgesi !!!"
AuthType Basic
AuthUserFile  /usr/local/www/data/domains/enderunix.org/secure/.htpasswd
require valid-user

yaznz..

Biraz Aklayalm .

AuthName  "EnderUNIX Team Ozel bolgesi !!!"

yazldgnda Karnza kan Kullanc  ad ve ifre mensndeki Aklayc bilgidir.  Buraya istediinizi yazabilirsiniz.

AuthType Basic
bu ifadeyi deitirmeyin Burada Authentication (ok dndm ama Trkesi bir trl aklma gelmedi)  tr belirtiliyor

AuthUserFile  /usr/local/www/data/domains/enderunix.org/secure/.htpasswd

Yukardaki ifade ilede   Kullanc ad ve ifrelerin sakland dosyann TAM! yeri belirtiliyor. Evet Tam olarak dosyann yeri belirtilmelidir.

require valid-user
En son bu ifade ile  bu dizine .htpasswd dosyasnda kullanclarn   eriebilicei belirtiliyor.

.htaccess dosyas taman sra .htpasswd dosyasn   oluturmaya geldi.

# /usr/local/bin/htpasswd  -c  /usr/local/www/data/domains/enderunix.org/secure/.htpasswd   yenigul

Yukardaki komut ile  /usr/local/www/data/domains/enderunix.org/securel/.htpasswd dizini altnda .httpasswd oluturulur ve yenigul kullancs eklenir.
-c (creat) parametresi ile .htpasswd dosyas hi yoktan oluturulur. ikinci bir kullanc eklemek bu ifadeyi kullanmaynz. kinci kullanc ekleme

# /usr/local/bin/htpasswd   /usr/local/www/data/domains/enderunix.org/secure/.htpasswd   yakup

eklinde olmaldr. htpasswd  komutunu kullandktan sonra apache yi restart yapmanza  gerek YOKTUR.!

 

Dizinleri IP adresine veya Domain(alan) Adna gre kstlama:
Bu ksmda kstlama yaplacak adresimiz  http://www.yenigul.net/intranet   ve  dosyalar
 /usr/local/www/data/intranet altnda bulunsun

- Sadece belirli IPlere eriimi verip dierlerine yasak koymak iin ,rnegin 212.65.128 uzayndaki IP ler

<Directory  /usr/local/www/data/intranet>
 Order deny,allow
Allow from 212.65.128
Deny from All
</Directory>

- Sadece belirli domainlere erimi verip dierlerine yasak koymak iin ,rnegin linux.org.tr

<Directory  /usr/local/www/data/intranet>
 Order deny,allow
Allow from enderunix.org
Deny from All
</Directory>
 

- Sadece belirli IPlere yasak koyup dierlerine izin vermek iin ,rnegin   195.1.2  uzayndaki IP ler

<Directory  /usr/local/www/data/intranet>
 Order allow,allow
Allow from All
Deny from  195.1.2
</Directory>

- Sadece belirli domainlere yasak koyup  digerlerine izin vermek iin  iin ,rnegin lamer.com  domaini

<Directory  /usr/local/www/data/intranet>
 Order allow,deny
Allow from All
Deny from lamer.com
</Directory>

Yaplan deiikliklerin aktif olmas iin
# /www/bin/apachectl restart  komutunu veriniz..

Dkumanmzn sonuna geldik.

Sorunlarnz ve nerilerinizi yukarda belirttiim e-mail adreslerinden biri ile bana ulatrabilirsiniz.

Kaynaklar:
Apache   Manual:

http://httpd.apache.org/docs/