Lighttpd + PHP + FCGI

3 Cevap php

Ben Lighttpd, PHP ve CGI ile bir sorunum var.

I OpenSUSE.10 kullanın.

Ben lighttpd (sürüm 1.4.23) ve php (versiyon 5.3.0) inşaatı var.

Bu lighttpd'nin yapı komut hatları:

./configure --prefix=/home/gosh/Desktop/web_server/lighttpd_native_installed --without-zlib --enable-ssl --enable-openssl --with-openssl=/home/gosh/Desktop/web_server/openssl_native_installed --with-openssl-includes=/home/gosh/Desktop/web_server/openssl_native_installed/include --with-openssl-libs=/home/gosh/Desktop/web_server/openssl_native_installed/lib --without-pcre --with-zlib --without-bzip2

make
make install

Bu php yapı komut hatları:

./configure --prefix=/home/gosh/Desktop/web_server/php_native_installed --without-iconv --disable-libxml --disable-dom --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear --enable-fastcgi --enable-force-cgi-redirect

make
make install

Bu php, php-cgi-v:

gosh@suse:~/Desktop/web_server> /home/gosh/Desktop/web_server/php_native_installed/bin/php -v
PHP 5.3.0 (cli) (built: Aug 30 2009 03:56:22) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
gosh@suse:~/Desktop/web_server> /home/gosh/Desktop/web_server/php_native_installed/bin/php-cgi -v
PHP 5.3.0 (cgi-fcgi) (built: Aug 30 2009 03:55:55)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
gosh@suse:~/Desktop/web_server> 

Bu lighttpd.conf olduğunu:

server.document-root = "/home/gosh/Desktop/web_server"

server.port = 81

mimetype.assign = (
  ".html" => "text/html", 
  ".txt" => "text/plain",
  ".jpg" => "image/jpeg",
  ".png" => "image/png" 
)

index-file.names = ( "index.php" )

server.modules = (
                   "mod_fastcgi",
                   "mod_accesslog"
                 )

accesslog.filename   = "/home/gosh/Desktop/web_server/lighttpd_access0.log"
server.accesslog     = "/home/gosh/Desktop/web_server/lighttpd_access000.log"

fastcgi.debug = 1
fastcgi.server = ( 
                    ".php" => 
                    (( 
                        "bin-path" => "/home/gosh/Desktop/web_server/php_native_installed/php-cgi -c /home/gosh/Desktop/web_server/php.ini",
                        "socket" => "php.socket" 
                    )),
                    ".html" => 
                    (( 
                        "bin-path" => "/home/gosh/Desktop/web_server/php_native_installed/php-cgi -c /home/gosh/Desktop/web_server/php.ini",
                        "socket" => "php.socket" 
                    ))
                 )

$SERVER["socket"] == "127.0.0.1:443" {
    server.document-root = "/home/gosh/Desktop/web_server"
    ssl.engine = "enable"
    ssl.pemfile = "/home/gosh/Desktop/web_server/lighttpd.pem"

    server.errorlog      = "/home/gosh/Desktop/web_server/lighttpd_error.log"
    server.accesslog     = "/home/gosh/Desktop/web_server/lighttpd_access1.log"
    accesslog.filename   = "/home/gosh/Desktop/web_server/lighttpd_access2.log"
}

Bu lighttpd başlatmak için komut satırı:

sudo /home/gosh/Desktop/web_server/lighttpd_native_installed/sbin/lighttpd -f /home/gosh/Desktop/web_server/lighttpd.conf -m /home/gosh/Desktop/web_server/lighttpd_native_installed/lib

Ve nihayet, lighttpd'nin lighttpd_error.log oluşturur:

2009-08-30 04:44:01: (log.c.172) server started 
2009-08-30 04:44:01: (mod_fastcgi.c.1365) --- fastcgi spawning local 
    proc: /home/gosh/Desktop/web_server/php_native_installed/php-cgi -c /home/gosh/Desktop/web_server/php.ini 
    port: 0 
    socket php.socket 
    min-procs: 4 
    max-procs: 4 
2009-08-30 04:44:01: (mod_fastcgi.c.1390) --- fastcgi spawning 
    port: 0 
    socket php.socket 
    current: 0 / 4 
2009-08-30 04:44:01: (mod_fastcgi.c.1087) the fastcgi-backend /home/gosh/Desktop/web_server/php_native_installed/php-cgi -c /home/gosh/Desktop/web_server/php.ini failed to start: 
2009-08-30 04:44:01: (mod_fastcgi.c.1091) child exited with status 2 /home/gosh/Desktop/web_server/php_native_installed/php-cgi -c /home/gosh/Desktop/web_server/php.ini 
2009-08-30 04:44:01: (mod_fastcgi.c.1094) If you're trying to run your app as a FastCGI backend, make sure you're using the FastCGI-enabled version.
If this is PHP on Gentoo, add 'fastcgi' to the USE flags. 
2009-08-30 04:44:01: (mod_fastcgi.c.1398) [ERROR]: spawning fcgi failed. 
2009-08-30 04:44:01: (server.c.928) Configuration of plugins failed. Going down. 

Benim questionis şunlardır:

1) Ubuntu veya OpenSUSE üzerine lighttpd + PHP + FastCGI başlatılması herkes başarılı bir deneyime sahiptir?

2) neden yumurtlama fcgi başarısız oldu?

Yani Benim web sunucusunu test etmek gibi index.php kullanmak istiyorum:

<? php
phpinfo();
?>

Dip not:

Ben kaldırırsanız

$SERVER["socket"] == "127.0.0.1:443" {
    server.document-root = "/home/gosh/Desktop/web_server"
    ssl.engine = "enable"
    ssl.pemfile = "/home/gosh/Desktop/web_server/lighttpd.pem"

    server.errorlog      = "/home/gosh/Desktop/web_server/lighttpd_error.log"
    server.accesslog     = "/home/gosh/Desktop/web_server/lighttpd_access1.log"
    accesslog.filename   = "/home/gosh/Desktop/web_server/lighttpd_access2.log"
}

lighttpd.conf dan, lighttpd'nin başarıyla başlar ve Firefox görüntüler index.html (ama index.php):

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Yabaaa!!!</title>
</head>

<body>
HELLO!!!
</body>
</html>

Update:

Yanıt için teşekkürler.

lighttpd_error.log tam fcgi ve PHP yorumlayıcısı ile ilgili bir sorun olduğunu söylüyor.

Evet, backports iyon SUSE veya Ubuntu vardır, ama onlar da işe etmeyin.

Ben işletim sistemi sorun olduğunu düşünüyorum.

Ben cihaz gömülü var:

CPU: AMD AU1000 (MIPS platform, not x86)
RAM: 64 MB
HDD: 120 GB
LAN: ethernet controller

Buils Cross derleyici bu cihaz için uygulamalar:

mipsel-linux-gcc

Yani, ben lighttpd.conf inşaatı var ve MIPS hedef için php, sunucu normalde çalışmaya başladım ... Bu aygıtına kopyalamış ve. Ben Mozilla index.php görebiliyordu!

Lighttpd + PHP PC'de neden çalışmıyor bilmiyorum.

KARAR: Ben sorunun üzerinde puan.

3 Cevap

Ben kaldırırsanız

$SERVER["socket"] == "127.0.0.1:443" { server.document-root = "/home/gosh/Desktop/web_server" ssl.engine = "enable" ssl.pemfile = "/home/gosh/Desktop/web_server/lighttpd.pem"

server.errorlog      = "/home/gosh/Desktop/web_server/lighttpd_error.log"
server.accesslog     = "/home/gosh/Desktop/web_server/lighttpd_access1.log"
accesslog.filename   = "/home/gosh/Desktop/web_server/lighttpd_access2.log"

}

from lighttpd.conf, lighttpd successfully starts and Firefox displays index.html

This might be a different problem, here only concerning SSL and Logfiles. Do these Logfiles exist? Where's the information about your key-file for SSL?

Ben genelde önceden oluşturulmuş-paketlerinin kullanımını tercih ediyorum. SuSE veya Ubuntu için hiçbir backports var mı?

emin değilim, ama çoğu kurulum kılavuzları u php.ini size sonunda bu eklemeniz gerektiğini söylüyorlar

cgi.fix_pathinfo = 1

Varsayılan yapılandırma dolayısıyla yukarıdaki hatayı alıyorum php-cgi işaret trys olarak ubuntu i php-cgi ikili için yol kurulum gerçek ikili adı kullanmak olmadığını fark var, ubuntu vardı php5-cgi yükleyin. O birkaç dakika benim için kendimi tahmin vardı.