首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lighttpd + PHP + FCGI

Lighttpd + PHP + FCGI
EN

Stack Overflow用户
提问于 2009-08-30 07:13:20
回答 3查看 7.4K关注 0票数 3

我对Lighttpd、PHP和CGI有问题。

我使用OpenSUSE.10。

我已经构建了lighttpd (版本1.4.23)和php (版本5.3.0)。

这是lighttpd构建命令行:

代码语言:javascript
复制
./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构建命令行:

代码语言:javascript
复制
./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:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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的命令行:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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 +OpenSUSE的成功经验?

2)为什么产卵失败?

例如,我想使用这样的index.php来测试我的web服务器:

代码语言:javascript
复制
<? php
phpinfo();
?>

P.S.:

如果我移除

代码语言:javascript
复制
$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):

代码语言:javascript
复制
<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解释器存在问题。

是的,backports是可用的离子SUSE或Ubuntu,但它们也不工作。

我认为这是操作系统的问题。

我有嵌入式设备:

代码语言:javascript
复制
CPU: AMD AU1000 (MIPS platform, not x86)
RAM: 64 MB
HDD: 120 GB
LAN: ethernet controller

交叉编译器为该设备构建应用程序:

代码语言:javascript
复制
mipsel-linux-gcc

所以,我已经为MIPS目标构建了Lighttpd和php,并将它们复制到这个设备上.服务器开始正常工作。我可以从莫兹拉看到index.php!

我不知道为什么Lighttpd+PHP不能在PC上工作。

决定:我在这个问题上得分。

EN

回答 3

Stack Overflow用户

发布于 2009-09-07 09:06:44

如果我删除

$SERVER“== "127.0.0.1:443”{ server.document-root = "/home/gosh/Desktop/web_server“ssl.engine =”启用“ssl.pemfile =”/home/gosh/Desktop/web_server/Litttpd.pem“

"/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成功启动,火狐显示index.html

这可能是另一个问题,这里只涉及SSL和Logfiles。这些日志文件存在吗?关于SSL密钥文件的信息在哪里?

我一般更喜欢使用预制包。SuSE或Ubuntu是否没有可用的支持端口?

票数 1
EN

Stack Overflow用户

发布于 2009-08-30 16:34:13

不确定,但大多数安装指南说,您应该在您的php.ini末尾添加此内容。

代码语言:javascript
复制
cgi.fix_pathinfo = 1
票数 0
EN

Stack Overflow用户

发布于 2010-01-10 17:41:40

在ubuntu上,我注意到php-cgi二进制文件的路径设置没有使用真正的二进制名称,ubuntu安装php5-cgi作为默认配置尝试指向php-cgi,因此您得到了上面的错误。我自己猜了几分钟。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1353311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档