3

Lighttpd、PHP、および CGI に問題があります。

私は OpenSUSE.10 を使用しています。

lighttpd (バージョン 1.4.23) と php (バージョン 5.3.0) をビルドしました。

これは lighttpd ビルド コマンド ラインです。

./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

これは php ビルド コマンド ラインです。

./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

これは 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> 

これは lighttpd.conf です:

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"
}

これは、lighttpd を開始するためのコマンド ラインです。

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

最後に、lighttpd は lighttpd_error.log を作成します。

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. 

私の質問は次のとおりです。

1) Ubuntu または OpenSUSE で lighttpd + PHP + FastCGI を起動した経験のある人はいますか?

2) fcgi の生成に失敗したのはなぜですか?

つまり、このような index.php を使用して Web サーバーをテストしたいと考えています。

<? php
phpinfo();
?>

PS:

外すと

$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 から、lighttpd が正常に起動し、Firefox に index.html が表示されます (index.php は表示されません):

<html>

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

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

アップデート:

回答ありがとうございます。

lighttpd_error.log は、FCGI と PHP インタープリターに問題があることを正確に示しています。

はい、バックポートは SUSE または Ubuntu で利用できますが、機能しません。

OSの問題だと思います。

私は組み込みデバイスを持っています:

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

このデバイス用のアプリをビルドするためのクロス コンパイラ:

mipsel-linux-gcc

そのため、MIPS ターゲット用の Lighttpd と php をビルドし、それらをこのデバイスにコピーすると、サーバーは正常に動作し始めました。Mozilla の index.php が表示されました。

Lighttpd+PHP が PC で動作しない理由がわかりません。

決定: 私は問題に点数をつけます。

4

3 に答える 3

1

削除した場合

$ 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から、lighttpdが正常に起動し、Firefoxがindex.htmlを表示します。

これは別の問題である可能性があります。ここではSSLとログファイルのみに関するものです。これらのログファイルは存在しますか?SSLのキーファイルに関する情報はどこにありますか?

私は通常、ビルド済みパッケージの使用を好みます。SuSEまたはUbuntuで利用できるバックポートはありませんか?

于 2009-09-07T09:06:44.580 に答える
0

確かではありませんが、ほとんどのインストール ガイドでは、これを php.ini の最後に追加する必要があると書かれています。

cgi.fix_pathinfo = 1
于 2009-08-30T16:34:13.090 に答える
0

ubuntuでは、php-cgiバイナリのパス設定が実際のバイナリ名を使用していないことに気付きました.ubuntu install php5-cgiは、デフォルト設定がphp-cgiを指そうとしているため、上記のエラーが発生します. 自分で数分間推測しました。

于 2010-01-10T17:41:40.770 に答える