Bu bölüm PHP'nin Unix sistemlerde Lighttpd 1.4 ile kurulumu hakkında bilgiler ve ipuçları içerir.
Lütfen devam etmeden önce » Lighttpd redmine sitesini ziyaret edip Lighttpd'nin doğru düzgün nasıl kurulacağını öğreniniz.
PHP ve Lighttpd'ye bağlanmak için tercih edilen SAPI Fastcgi'dir. Fastcgi, PHP 5.3'te php-cgi'yi özdevinimli olarak sihirli bir şekilde etkin kılar. Fakat, eski sürümler için PHP'nin --enable-fastcgi ile derlenmesi gerekir. PHP'nin fastcgi için hazır olduğunu doğrulamak için php -v çıktısının PHP 5.2.5 (cgi-fcgi) içermesi gerekir. PHP 5.2.3 öncesinde, fastcgi, php çalıştırılabiliri üzerinde etkindi (php-cgi diye birşey yoktu).
Lighttpd'nin PHP'ye bağlanmasını ve fastcgi süreçlerini çatallamasını sağlamak üzere yapılandırmak için lighttpd.conf dosyasını düzenlemeniz gerekir. Fastcgi süreçlerine yerel sistemden bağlanmak için soketler tercih edilir.
Örnek 1 - lighttpd.conf'tan bir bölüm
server.modules += ( "mod_fastcgi" ) fastcgi.server = ( ".php" => (( "socket" => "/tmp/php.socket", "bin-path" => "/usr/local/bin/php-cgi", "bin-environment" => ( "PHP_FCGI_CHILDREN" => "16", "PHP_FCGI_MAX_REQUESTS" => "10000" ), "min-procs" => 1, "max-procs" => 1, "idle-timeout" => 20 )) )
bin-path
yönergesi lighttpd'nin fastcgi süreçlerini devingen
olarak çatallamasına izin verir. PHP kendi çocuklarını PHP_FCGI_CHILDREN
ortam değişkenine göre çatallayacaktır. PHP, PHP_FCGI_MAX_REQUESTS
değerinin aşılmasına sebep olan çocuk süreci öldürür. PHP'de
min-procs
ve max-procs
yönergelerinden genel
olarak kaçınılması gerekir. PHP kendi çocuklarını yönetir ve makine kodu
önbelleklerini APC gibi çocukları arasında paylaştırır.
min-procs
yönergesine 1'den büyük bir değer atanmışsa PHP
yanıtçılarının sayısı PHP_FCGI_CHILDREN değerinin katları olacaktır (2
min-procs * 16 çocuk eşittir 32 yanıtçı).
Lighttpd, fastcgi süreçlerinin çatallanmasını kolaylaştırmak için spawn-fcgi adında bir programla gelir.
Süreçleri spawn-fcgi kullanmaksızın çatallamak mümkünse de, biraz ağır kaldırma çalışmak gerekir. Gelen istekleri karşılamak için PHP'nin kaç çocuk çatallayacağı PHP_FCGI_CHILDREN ortam değişkeni ile belirlenir. PHP'nin her çocuğunun kaç isteklik yaşayacağını ise PHP_FCGI_MAX_REQUESTS belirler. Aşağıda, PHP yanıtçılarının çatallanmasına yardımcı olan basit bir bash betiği verilmiştir.
Örnek 2 - FastCGI Yanıtçılarının Çatallanması
#!/bin/sh # php-cgi çalıştırılabilirinin yeri PHP=/usr/local/bin/php-cgi # PID dosyasının yeri PHP_PID=/tmp/php.pid # Dinlenecek adres #FCGI_BIND_ADDRESS=10.0.1.1:10000 # Dinlenecek soket FCGI_BIND_ADDRESS=/tmp/php.sock PHP_FCGI_CHILDREN=16 PHP_FCGI_MAX_REQUESTS=10000 env -i PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN \ PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS \ $PHP -b $FCGI_BIND_ADDRESS & echo $! > "$PHP_PID"
Uygulamaları dengelemek için Fastcgi örnekleri çok sayıda uzak makineye çatallanabilir.
Örnek 3 - Uzak FCGI örneklerine bağlanmak
fastcgi.server = ( ".php" => (( "host" => "10.0.0.2", "port" => 1030 ), ( "host" => "10.0.0.3", "port" => 1030 )) )