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"Groupsatı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.