Bu bölümde, PHP'nin Unix platformlarında Apache kurulumlarına özgü bilgilere ve ipuçlarına yer verilmiştir. Apache 2 ile ilgili bilgiler ve ipuçları ayrı bir sayfada verilmiştir.
Aşağıda, 10. şıkta kullanacağınız configure betiğinin temel yapılandırma seçeneklerini eklerde bulabilirsiniz. Eklentilere özgü yapılandırma seçenekleri ise eklentilerin kılavuzdaki belgelerinde bulunabilir. Örneklerde yazılımların sürüm numaraları, belgeyi sürüm numarasına bağlı kılmamak için 'xxx' ile gösterilmiştir. Siz bu çarpıların yerine kurduğunuz paketlerin sürüm numaralarını yazacaksınız.
Örnek 1 - PHP'nin Paylaşımlı Apache Modülü olarak kurulumu
1. gunzip apache_xxx.tar.gz 2. tar -xvf apache_xxx.tar 3. gunzip php-xxx.tar.gz 4. tar -xvf php-xxx.tar 5. cd apache_xxx 6. ./configure --prefix=/usr --enable-module=so 7. make 8. make install 9. cd ../php-xxx 10. Artık PHP'yi yapılandırabilirsiniz. Burada PHP'yi eklentileri etkinleştiren çeşitli seçeneklerle özelleştirebilirsiniz. Olası seçeneklerin listesini almak için ./configure --help komutunu çalıştırabilirsiniz. Bu örnekte Apache 1 için MySQL destekli basit bir yapılandırmaya yer verilmiştir. Ayrıca, apxs komutunun bulunduğu yer de buradakinden farklı olabilir. ./configure --with-mysql --with-apxs=/usr/bin/apxs 11. make 12. make install Kurulumdan sonra yapılandırmanızı değiştirmek isterseniz son üç adımı yinelemek yeterlidir. Yeni modülün etkili olması için tek ihtiyacınız Apache'yi yeniden başlatmaktır. Apache'nin yeniden derlenmesine gerek yoktur. Aksi özellikle belirtilmedikçe 'make install' ile phpize gibi çeşitli PHP araçları, PEAR, PHP CLI ve bir takım başka şeylerin de kurulumu yapılır. 13. php.ini dosyanızı yapılandırın: cp php.ini-development /usr/local/lib/php.ini PHP seçeneklerini ayarlamak için .ini dosyanızı düzenleyebilirsiniz. .ini dosyanızın başka bir yerde durmasını istiyorsanız, 10. şıkta --with-config-file-path=/başka/bir/yer seçeneği ile dosyanız için başka bir yer belirtebilirsiniz. php.ini-dist yerine php.ini-production (dağıtımın standart .ini dosyası yerine önerilen yapılandırmalar dosyasını) kullanmayı tercih ederseniz, değişiklik listesini okumayı ihmal etmeyin, çünkü bunlar PHP'nin davranışını etkileyecektir. 14. PHP modülünün yüklenmesi için httpd.conf dosyasını düzenlemelisiniz. LoadModule yönergesinin değeri PHP modülünün sistemdeki yerini göstermelidir. Yukarıdaki 'make install' bunu sizin yerinize yapmıştır ama emin olmak için siz yine de bir bakın. LoadModule php5_module libexec/libphp5.so 15. httpd.conf'un AddModule bölümünde ClearModuleList yönergesinin altına şunu ekleyin: AddModule mod_php5.c 16. Apache'ye belli dosya uzantılarını PHP uzantıları olarak ele almasını söyleyin. Örneğin, .php uzantılı dosyaları Apache'nin PHP dosyaları olarak ele almasını isteyebiliriz. Başka uzantıları da buraya ekleyebilirsiniz. Bunları aralarında boşluk bırakarak aynı satıra yazabilirsiniz. Biz örnek olsun diye .phtml uzantısını ekledik. AddType application/x-httpd-php .php .phtml PHP kaynak kodlarını renklendirilmiş olarak göstermek için .phps uzantısını da yapılandırmanıza ekleyebilirsiniz. Bu, şöyle yapılır: AddType application/x-httpd-php-source .phps 17. Artık Apache'yi başlatabilirsiniz. Bunun için Apache'yi her zaman ki gibi başlatmanız yetecektir. (Sunucunun bir HUP veya USR1 sinyali kullanılarak yeniden yüklenmemesi için sunucunuzu yeniden başlatmadan önce durdurmalısınız.)
PHP'yi bir duruk nesne olarak da kurabilirsiniz:
Örnek 2 - PHP'nin Duruk Apache Modülü olarak kurulumu
1. gunzip -c apache_1.3.x.tar.gz | tar xf - 2. cd apache_1.3.x 3. ./configure 4. cd .. 5. gunzip -c php-5.x.y.tar.gz | tar xf - 6. cd php-5.x.y 7. ./configure --with-mysql --with-apache=../apache_1.3.x 8. make 9. make install 10. cd ../apache_1.3.x 11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a (Bu satırda bir hata yok! libphp5.a'nın henüz mevcut olmadığının farkındayız. PHP derlenince mevcut olacak.) 12. make (Artık httpd çalıştırılabilirini Apache bin dizinine kopyalayabilirsiniz. Apache'yi ilk defa kuruyorsanız bu komuttan sonra "make install" komutunu da verin.) 13. cd ../php-5.x.y 14. cp php.ini-development /usr/local/lib/php.ini 15. PHP seçeneklerini ayarlamak için artık /usr/local/lib/php.ini dosyasını düzenleyebilirsiniz. httpd.conf veya srm.conf dosyasını açıp şunu ekleyin: AddType application/x-httpd-php .php
Kullandığınız Unix türevine ve Apache kurulumuna bağlı olarak, sunucuyu durdurmanın ve yeniden başlatmanın çeşitli yolları vardır. Aşağıda farklı Unix/Apache kurulumları için sunucuyu yeniden başlatırkan kullanılabilecek komutlara yer verilmiştir. /bir/yer/ yerine bu uygulamaların dosya sistemindeki yerlerini yazınız.
Örnek 3 - Apache'yi yeniden başlatmak için örnek komutlar
1. Çeşitli Linux ve SysV türevleri için: /etc/rc.d/init.d/httpd restart 2. apachectl betiği ile: /bir/yer/apachectl stop /bir/yer/apachectl start 3. httpdctl ve httpsdctl (OpenSSL kullanarak), apachectl gibidir: /bir/yer/httpsdctl stop /bir/yer/httpsdctl start 4. mod_ssl veya başka bir SSL sunucu kullanıyorsanız, elle durdurup başlatmanız gerekebilir: /bir/yer/apachectl stop /bir/yer/apachectl startssl
apachectl
and http(s)dctl
çalıştırılabilirlerinin yerleri sık sık değişir. Sisteminizde
locate, whereis,
which gibi araçlar kuruluysa bunların yerlerini bu
araçları kullanarak öğrenebilirsiniz.
PHP'yi Apache için derlerken kullanılabilecek farklı yapılandırma örnekleri:
./configure --with-apxs --with-pgsql
Bu yapılandırmayla, Apache'nin httpd.conf dosyasında LoadModule yönergesi ile Apache'ye yüklenebilecek şekilde bir libphp5.so paylaşımlı kütüphanesi oluşturulacak, PostgreSQL desteği bu kütüphaneye gömülü olacaktır.
./configure --with-apxs --with-pgsql=shared
Bu yapılandırmayla, Apache için bir libphp5.so
paylaşımlı kütüphanesi oluşturulacak fakat önceki örnekten farklı olarak
PostgreSQL desteği için pgsql.so adında ayrı bir
paylaşımlı kütüphane oluşturulacaktır. PHP'ye PostgreSQL desteğini,
eklentiyi php.ini içinde bir extension
yönergesinde
belirterek veya doğrudan bir betik içinde dl()
işlevini kullanarak verebilirsiniz.
./configure --with-apache=/bir/yer/apache_kaynak_paketi --with-pgsql
Bu yapılandırmayla, bir libmodphp5.a kütüphanesi, mod_php5.c diye bir dosya ve bunlara eşlik eden bazı dosyalar oluşturulacak ve bunlar Apache kaynak ağacının altında src/modules/php5 dizinine kopyalanacaktır. Bundan sonra Apache --activate-module=src/modules/php5/libphp5.a seçeneği kullanılarak derlendiğinde Apache libphp5.a kütüphanesini oluşturacak ve onu httpd çalıştırılabiliri ile duruk olarak ilintileyecektir. PostgreSQL desteği de doğrudan httpd çalıştırılabiliri içinde olacaktır. Böylece sonuçta tek bir httpd çalıştırılabiliri Apache ve PHP'nin tamamını içerecektir.
./configure --with-apache=/bir/yer/apache_kaynak_paketi --with-pgsql=shared
Yukarıdakinden farklı olarak PostgreSQL desteği, doğrudan sonuncu httpd çalıştırılabiliri içinde değil, ayrı bir pgsql.so paylaşımlı kütüphanesiyle php.ini dosyası üzerinden veya doğrudan dl() işlevi kullanılarak PHP'ye yüklemek suretiyle elde edilecektir.
PHP'yi derlemek için seçtiğiniz her yolun getirileri olacağı gibi götürüleri de olacaktır. Paylaşımlı nesne olarak derlemek, Apache'yi ayrı olarak derleyip, PHP ile ilgili hiçbir şey için Apache'yi tekrar derleme ihtiyacı duymamak demektir. PHP'yi Apache içinde (duruk yöntem) derlerseniz PHP daha çabuk yüklenecek ve daha hızlı çalışacaktır. Bu konularda daha ayrıntılı bilgi edinmek için Apache'nin » DSO desteği sayfasına bakınız.
Bilginize:
Apache'nin öntanımlı httpd.conf dosyası şöyle bir bölümle gelmektedir:
BuradaUser nobody Group "#-1"Group
satırı, Group nogroup veya Group daemon gibi bir satırla değiştirilmedikçe, PHP dosyaları açamayacaktır.
Bilginize:
--with-apxs=/bir/yer/apxs seçeneğini kullanırken apxs'in kaynak paketindeki yerini değil, sisteminizde kurulu olduğu yeri belirtmeye dikkat edin.