APACHE NEDİR? Güçlü, sağlam, yetenekli ve esnek bir http sunucusudur. Apache Software Foundation tarafından geliştirilir. ASF, Apache yazarları tarafından 1999'da yazılım için yasal bir şemsiye olması için oluşturulmuştur. Açık kaynak kodlu bir yazılımdır, lisansı ücretsizdir. Yazılım firmaları, kurumlara verdikleri hizmetten kazanç sağlarlar. 1995'ten beri geliştirilmektedir. Son sürümü 1.3.22'dir. Yapısal değişikliklerin yapılacağı Apache 2.0'ın geliştirilmesi hala devam etmektedir, beta aşamasındadır. Apache web sitesinin Türkiye yansısı http://apache.bilkent.edu.tr adresindedir. Sunucu Ekim 2001 Yüzde Apache 19279109 59.51 Microsoft 8895343 27.46 iPlanet 1319271 4.07 Internetteki web sitelerinin %60'ı Apache üzerinde çalışmaktadır. Apache, en yakın rakibi Microsoft'un web sunucularının 3 katı pazar payına sahiptir. Web sunucular arasındaki bu oran, son iki yıl içerisinde %1-2 civarında oynamalarla sabit kalmıştır. Ekim 2001 itibarıyla 19 milyonun üzerinde web sitesi Apache kullanmaktadır. APACHE'Yİ KİM KULLANIYOR? Web siteleri Apache üzerinde çalışan farklı sektörlerden birkaç kurum : Cumhurbaşkanlığı Turkcell Migros Garanti Bankası Sabah Gazetesi Sabancı Üniversitesi Orta Doğu Teknik Üniversitesi AGB Anadolu Ajansı Türkiye Odalar ve Borsalar Birliği İstanbul Menkul Kıymetler Borsası APACHE'Yİ KİM KULLANIYOR? Web siteleri Apache üzerinde çalışan farklı sektörlerden birkaç kurum : Oracle Mercedes-Benz Ericsson Amazon Compaq BBC Hewlett-Packard Icq Financial Times APACHE'NİN UPTIME ORTALAMASI Netcraft'ın 08/11/2000 itibarıyla en yüksek uptime'a sahip 40 sunucu sıralamasında : 27 tane Apache sunucu 12 tane iPlanet sunucu 1 tane ZServer sunucu En yüksek uptime'a sahip Apache sunucu 488 gündür çalışıyor. Uptimes Project verilerine göre, 2500+ kayıtlı Linux sunucunun ortalama uptime süresi : 67 gün 1200+ kayıtlı Windows sunucunun ortalama uptime : 16 gün APACHE'NİN AYARLANMASI Apache'nin kurulum sonrası tüm ayarları httpd. conf ayar dosyasından yapılmaktadır. Kurulu Apache'nizin olası httpd. conf yerleri : /etc/httpd/conf/httpd. conf /usr/local/apache/conf/httpd. conf /var/lib/httpd/conf/httpd. conf /home/httpd/conf/httpd. conf find. / -name 'httpd. conf' Apache'yi ayarlamak için kullanılabilecek grafik arayüzleri : Comanche http://www.comanche.org Mohawk http://eunuchs.org/linux/Mohawk Uzaktan kontrol, tek bir mohawk ile birçok Apache sunucusunda işlem yapabilme Ayarların yanı sıra, sunucuların gerçek zamanlı gözetlenmesi ve istatistiklerinin grafik raporlanması Webmin http://webmin.bilkent.edu.tr Türkçe Web tabanlı yönetim, herhangi bir işletim sisteminden bağlanılabilir Linuxconf http://www.solucorp.qa/linuxconf Bir Comanche ekran görüntüsü Bir Mohawk ekran görüntüsü httpd. conf dosyasının herhangi bir metin editörü ile ayarlanması DocumentRoot "/usr/local/apache/htdocs" DirectoryIndex index.html index.htm default.htm index. php StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 #Listen 8080 ServerAdmin dfisek@fisek.com.tr UserDir public_html (ör: http://www2. fisek.com.tr/ dfisek/) HostnameLookups Off #ErrorDocument 404 /missing.html APACHE'NİN MODÜLER YAPISI Apache'nin birçok fonksiyonu Apache "çekirdeğinin" üzerine modül olarak eklenmiştir, istenilen birçok özellik Apache'ye eklenebilir veya çıkarılabilir. Yöntem olarak Linux çekirdeğine benzetilebilir. Bu sayede Apache'nin bütünlüğü bozulmadan bağımsız olarak birçok programcı Apache'ye çeşitli işlevleri olan yüzlerce ek modül geliştirmiştir. Apache'nin "kayıtlı" modüllerinin listesine http://modules.apache. org adresinden ulaşılabilir. Apache'ye modüller iki şekilde eklenebilir. Derlenme aşamasında statik olarak eklenebilir ya da derlenmiş Apache'ye DSO olarak eklenebilir . Statik Modüller derleme aşamasında Apache binary'sine dahil edilirler. Derleme sonrası yeni modül eklenmesi için tüm Apache'nin tekrar derlenmesi gerekir. DSO Derleme aşamasında modüller DSO olarak derlenir. Apache'nin çalıştırılma sırasında ayar dosyasında belirtilen modüller Apache'ye eklenir. DSO modüller Apache tekrar derlenmeden, Apache'ye eklenebilir ve çıkarılabilir. Apache çalıştırılırken %20, çalışma sırasında ise %5 daha yavaş çalışır. Apache modüllerinden çeşitli örnekler : Midgard Modülü Kerberos Authentication Modülü Mod_snake Covalent McAfee Anti-Virüs Modülü SERVER SIDE SCRIPTING CGI CGI programları için Öntanımlı olarak /usr/local/apache/cgi-bin/ dizini kullanılır. CGI desteği için httpd. conf dosyasında aşağıdaki satırın aktif hale getirilmesi gerekir. #AddHandler cgi-script. cgi CGI programları sunucu üzerinde web sunucudan ayrı bir dış program olarak çalıştırıldıklarından güvenlik açısından her dizinde cgi çalıştırılmasına izin verilmemesi tavsiye edilir. SSI - SHTML Sunucunuzda SSI kullanılabilmesi içn httpd. conf dosyasında aşağıdaki satırların aktif hale getirilmesi gerekir. #AddType text/html. shtml #AddHandler server-parsed. shtml PHP PHP, Apache'ye hem modül olarak eklenebilmekte; hem de CGI olarak dışarıdan kullanabilmektedir. Yüksek performans ve güvenlik için modül olarak kullanılması tavsiye edilir. Modül olarak kullanıldığında herhangi bir html dizininde kolaylıkla kullanılabilir. PHP modülü Apache kaynak koduyla beraber gelmemektedir, http://tr. php. net adresinden alınabilir. Sunucunuzda PHP4 kullanılabilmesi içn httpd. conf dosyasında aşağıdaki satırların aktif hale getirilmesi gerekir. #AddType application/x-httpd-php. php #AddType application/x-httpd-php-source. phps Sunucunuzda PHP3 kullanılabilmesi içn httpd. conf dosyasında aşağıdaki satırların aktif hale getirilmesi gerekir. #AddType application/x-httpd-php3. php3 #AddType application/x-httpd-php3-source. phps ASP ASP, Apache kaynak kodu ile beraber gelmemektedir. Çeşitli ASP programlarından biri kullanılabilir. Apache :: ASP http://www.apache-asp.org Instant ASP http://www.halyconsoft.com Chili! soft ASP http://www.chilisoft.com/chiliasp/ Özellikle Unix platformlarında daha performanslı, güçlü ve esnek olduğundan PHP tercih edilmektedir. Java Servlet Java Servlet modülü Apache kaynak kodu ile beraber gelmemektedir. http://java.apache. org adresinden alınabilir. Sunucuda aynı zamanda Java Development Kit kurulu olmasına gerektirir. Inet-tr 99 Linux seminerleri içinde Özgür Cengiz Demir tarafından verilen Apache-JServ seminerinin notlarından yararlanılabilir. http://www.linux.org.tr/documents/konferanslar/inet-tr99/jserv.html -