Sunucular-Apache

Bu bölüm hem Unix hem de Windows için PHP'nin Apache ile birlikte kullanıldığı sistemler hakkında notlar ve ipuçları içeriyor.

PHP'nin Unix altında Apache ile Kurulumu

8. satırdaki configure komutuna ekleyebileceğiniz argümanların listesini Konfigürasyon ayarlarının tam listesi bölümünde bulabilirsiniz.

Örnek 2-5. Kurulum Talimatları (Apache Modül Sürümü)

1.  gunzip apache_1.3.x.tar.gz
2.  tar xvf apache_1.3.x.tar
3.  gunzip php-x.x.x.tar.gz
4.  tar xvf php-x.x.x.tar
5.  cd apache_1.3.x
6.  ./configure --prefix=/www
7.  cd ../php-x.x.x
8.  ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
9.  make
10. make install
11. cd ../apache_1.3.x
12. PHP 3 için: ./configure --activate-module=src/modules/php3/libphp3.a
     PHP 4 için: ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install

Bu adım yerine httpd binary dosyasını varolan binary dosyasının yerine kopyalamayı
da tercih edebilirsiniz. Bunu yapmadan önce sunucunuzu durdurmayı unutmayın.

15. cd ../php-x.x.x
16. PHP 3 için: cp php3.ini-dist /usr/local/lib/php3.ini
    PHP 4 için: cp php.ini-dist /usr/local/lib/php.ini

  PHP ayarlarını değiştirmek için .ini dosyanızı düzenleyebilirsiniz. Bu dosyanın
  farklı bir yerde saklanmasını istiyorsanız, 8.adımda --with-config-file-path=/path
  kullanın.
  
17. httpd.conf ya da srm.conf dosyanızı açın ve ekleyin:
      
     PHP 3 için:   AddType application/x-httpd-php3 .php3
     PHP 4 için:   AddType application/x-httpd-php .php
 
  Buraya istediğiniz uzantıyı ekleyebilirsiniz. .php bizim önerdiğimiz şeklidir. Bunların
  arasına .html dahil istediğiniz uzantıyı yazabilirsiniz.
  
18. Apache sunucusunu normal şekliyle başlatın. (Sunucuyu durdurmalı ve yeniden
başlatmalısınız, sunucuya HUP ya da USR1 sinyali göndermek yeterli değildir)

Apache kurulumunuz ve kullandığınız Unix türevine bağlı olarak, sunucuyu durdurmanın ve yeniden başlatmanın farklı yolları bulunabilir. Aşağıda sunucuyu yeniden başlatmak için kullanılan alışılmış komutlar yer alıyor. Buradaki /path/to/ değerini kendi sisteminize uyacak biçimde değiştirmeyi unutmayın.

1. Çeşitli Linux ve SysV türevleri
/etc/rc.d/init.d/httpd restart

2. apachectl uygulaması kullanılarak:
/path/to/apachectl stop
/path/to/apachectl start

3. httpdctl ve httpsdctl (OpenSSL kullanarak), apachectl ye benzer şekilde:
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. mod_ssl ya da başka bir SSL sunucu kullanıyorsanız, sunucuyu elle başlatabilirsiniz:
/path/to/apachectl stop
/path/to/apachectl startssl

5. SuSE 7.2 için:
rcapache restart

apachectl ve http(s)dctl binary dosyalarının yerleri sıklıkla farklılık gösterebilir. Sisteminiz locate ya da whereis veya which komutlarına sahipse, bunları kullanarak web sunucunuzun kontrol dosyalarına ulaşabilirsiniz.

PHP'nin Apache modülü olarak derlenmesine dair birkaç örnek verirsek:

./configure --with-apxs --with-pgsql

Bu yöntem libphp4.so paylaşım kütüphanesini yaratacak ve Apache'ın httpd.conf düzenleyerek modülün yüklenmesi için gerekli LoadModule satırını ekleyecektir. PostgreSQL desteği libphp4.so içine gömülecektir.

./configure --with-apxs --with-pgsql=shared

Bu yöntem yine libphp4.so kütüphanesini derleyecektir, ama bu sefer PHP'ye php.ini dosyasına yazılarak ya da dl() fonksiyonu kullanılarak eklenecek halde çalıştırılabilecek pgsql.so dosyasını da üretecektir.

./configure --with-apache=/path/to/apache_source --with-pgsql

Bu yöntem libmodphp4.a kütüphanesini, mod_php4.c dosyasını ve bunlara eşlik eden birkaç dosyayı yaratıp Apache kaynak kod ağacı içindeki src/modules/php4 klasörüne kopyalayacaktır. İkinci adımda Apache'ı derlediğinizde --activate-module=src/modules/php4/libphp4.a dosyası yaratılacak ve statik olarak httpd binary dosyasına bağlanacaktır. Sonuç olarak Apache'ın ve PHP'nin tümünü içeren bir httpd dosyası elde edilecektir.

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

Bir önceki ile aynıdır, yalnızca PostgreSQL desteğinin sondaki httpd dosyasının içine gömülmesinin yerine, pgsql.so kütüphanesi ayrıca yaratılacak ve bu kütüphaneyi php.ini ile ya da dl() fonksiyonu ile birlikte kullanmanız mümkün olacak.

PHP'yi hangi yolla derleyeceğinize karar verirken, her yöntemin avantajları ve dezavantajları olduğunu gözönünde bulundurun. Paylaşım nesnesi olarak derlemek, Apache'yi ayrıca derleyebileceğiniz anlamına gelir, ve size PHP'yi her derlediğinizde Apache'ı da yeniden derleme derdinden kurtarır. PHP'yi Apache'ın içine gömmek (statik yöntem) PHP'nin daha hızlı çalışması anlamına gelir. Daha fazla bilgi için Apache'ın DSO desteği sayfasını inceleyin.

PHP'nin Windows altında Apache 1.3.x ile Kurulumu

PHP'yi Windows altında Apache 1.3.x ile birlikte kurmak için iki yol vardır. Birincisi CGI binary (php.exe) kullanmak, ikincisi ise Apache modülünü sağlayan dll'yi kullanmaktır. Her iki durumda da Apache sunucusunu durdurup srm.conf ya da httpd.conf dosyasını düzenlemeniz ve Apache'ı PHP ile çalışacak şekilde ayarlamanız gereklidir.

PHP'yi Apache altında kurmanın farklı yöntemleri olsa da, bu yöntemler yeni başlayan birisinin uygulayabileceği kadar basittir. Konfigürasyon seçenekleri için Apache dokümantasyonunu inceleyebilirsiniz.

PHP zip paketini Elle Kurulum Adımları bölümünde anlatıldığı gibi c:\php\ klasörüne açtıysanız, CGI binary ayarlamasını yapmak için aşağıdaki satırları Apache konfigürasyon dosyanıza eklemeniz gereklidir:

İkinci satır httpd.conf dosyasının yeni sürümlerinde hazır olarak mevcuttur ancak başına devre dışı kalması için yorum işareti eklenmiştir. Dosyayı değiştirdikten sonra, sunucuyu yeniden başlatın. Bunu Apache bir Windows hizmeti olarak çalışıyorsa NET STOP APACHE komutunu izleyen NET START APACHE komutunu vererek yapabilirsiniz.

PHP'yi Apache modülü olarak kullanmak istiyorsanız, php4ts.dll dosyasını windows/system (Windows 9X/ME için) ya da winnt/system32 (Windows NT/2000/XP için) klasörlerine taşımayı unutmayın ve varolan eski dosyaların üzerine yazmaktan çekinmeyin. Daha sonra aşağıdaki iki satırı Apache conf dosyanıza ekleyin:

Not: Windows için Apache 1.3.22 de, öntanımlı konfigürasyon dosyası (httpd.conf-dist-win) öntanımlı olarak ClearModuleList direktifini içermektedir. Bu direktif kullanıldığında, AddModule listesine AddModule mod_php4.c satırının eklenmesi gerekmektedir, aksi takdirde PHP Apache modülü olarak kayıt edilmeyecektir.

Kaynak kod renklendirme özelliğini kullanmak için, basit bir PHP dosyası yaratın ve içine: <?php show_source ("original_php_script.php"); ?> satırını ekleyin. Renklendirmek istediğiniz dosyanın ismini original_php_script.php ile değiştirin (Windows altında .phps benzeri bir özellik olmadığı için bu renklendirme için tek yoldur).

Not: Win-Apache içersindeki yol tanımında kullanılan bütün ters bölü işaretleri, "c:\directory\file.ext" gibiler, "c:/directory/file.ext" de olduğu gib düz bölüye çevrilmelidir.