- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我对 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 来测试我的网络服务器:
<? php
phpinfo();
?>
附言:
如果我删除
$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 上可用,但它们也不起作用。
我认为是操作系统问题。
我有嵌入式设备:
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上运行。
决定:我对这个问题打分。
最佳答案
If I remove
$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
这可能是一个不同的问题,这里只涉及 SSL 和日志文件。这些日志文件是否存在?有关 SSL key 文件的信息在哪里?
我通常更喜欢使用预构建包。是否没有可用于 SuSE 或 Ubuntu 的向后移植?
关于php - Lighttpd + PHP + FCGI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1353311/
是否可以根据自定义请求 header 有条件地配置 Lighttpd? 可以通过 IP 地址(和其他变量)这样做: $HTTP["remoteip"] == "0.0.0.0" { // D
我在让 mod_proxy 将流量正确转发到在同一台机器上运行的不同网络服务器时遇到问题,以获取预定义的子文件夹。理想情况下,domain.com/docs 应该转发到 127.0.0.1:3000,
今天我在我的 ubuntu 服务器上安装了 fail2ban。在此之后,我必须添加以下 .conf 我在 githunb 上的 fail2ban 获得:/etc/config/filter.d/lig
我试图将 mimetype.assign = ( ".webapp"=> "application/x-web-app-manifest+json") 添加到我的 lighty conf 文件中,但在
我有一个指向文档根目录的 lighttpd-Setup /var/www .但是,我想要 URL other/指向 /some/other/dir .我正在使用以下配置执行此操作: $HTTP["ur
我在并行子目录中有很多项目,它们都有 etc/lighttpd.conf 文件。文件非常简单;它们只包含一个如下所示的指令: url.rewrite-once = ("^/project(.*)$"=
DeviceA 充当反向代理,并应按如下方式转发请求: 192.168.1.10/DeviceB ==> 192.168.1.20/index.html 192.168.1.10/DeviceC ==
我有一个在 AWS EC2 实例上运行的 lighttpd 服务器。它可以在端口 80(或任何其他端口,如果我更改/etc/lighttpd/lighttpd.conf 中的 server.port)
我正在使用 Lighttpd 在 Play 框架中配置负载均衡器 1.4.30 . 我在 lighttpd-inc.conf 中给出了如下条目。 $HTTP["host"] =~ "http://10
为了减轻 Apache 的负载,人们经常建议使用 lighttpd 来提供静态内容。 例如http://www.linux.com/feature/51673 在此设置中,Apache 通过 mod_
我想使用 lighttpd 作为开发服务器,类似于用于 Rails 的 WEBrick,或用于 Django 的 manage.py runserver。 (这适用于 PHP 和学习 Javascri
我正在尝试将 Lighttpd 配置为充当反向代理。我想要有多个 URL 代理到不同端口上的不同服务器,无论是在同一台计算机上还是在本地网络内。 例如: //静止的/ socket /ajax Lig
我正在尝试将 lighttpd 配置为将流量代理到一个代理服务器的一个相对路径,并将流量代理到另一个代理服务器的另一路径。 例如: http://mydomain.com/ proxies to 12
我有一个 Lighttpd(1.4.28) 网络服务器,在 Centos 5.3 和 PHP 5.3.6 上以 fastcgi 模式运行。 服务器本身是具有 1gb 内存的四核,用于记录视频平台的观看
最初我想在我的 url (lighttpd) 中添加尾随/ 这可能与有关 url.redirect = ( "^(.*[^/])$" => "$1/" ) 现在我需要排除一些扩展名,如 .tx
我正在尝试这样做: https://dummiesite.com --> http://dummiesite.com 和 http://dummiesite.com --> http://new.du
我要编译 lighttpd。我想知道是否有显示选项数组的命令,如果我选择默认值,程序将被编译? ./configure 事实上,我在 ./configure --help 中看到其中一些是默认的,但我
我试图为 lighttpd 创建我自己的模块,几分钟后我发现这一切都在 c 中!我需要 map 和我用 C++ 制作的其他一些类(class)。所以我遇到了http://redmine.lighttp
如何设置 lighttpd 以使环境变量可用于生成的进程? 我有一个通过 CGI 作为 URL 调用的可执行文件(例如 http://.../cgi-bin/executable.bin )。 可执行
(是的,我知道有关 lighttpd 的问题更适合 SF,但我认为这里更容易被问到,因为它主要与安全策略有关。) 我们计划在我的大学里建立一个小型网络服务器,这样人们就可以获得一些网络空间来放置网页等
我是一名优秀的程序员,十分优秀!