我需要设置一个简单的 Web 服务器,使用 PHPWindows XP许多不同的人会使用它进行本地测试。
我正在使用 LightTPD 1.4.30-4-IPv6-Win32-SSL 和 PHP 5.2。
到目前为止我已经创建了这个文件夹结构:
tools/
LightTPD/
htdocs/
PHP/
我将 PHP 设置为 CGI,将文档根目录设置为server_root + "/htdocs"
。它运行良好(好吧,它很慢,但我现在不想使用 FastCGI :) )。
我的问题是当我尝试将 htdocs 放在 LightTPD 文件夹之外时,如下所示:
htdocs/
tools/
LightTPD/
PHP/
我将文档根目录更新server_root + "/../../htdocs"
为静态 HTML 页面运行良好,PHP 页面停止工作(它们返回“未指定输入文件”)。我实际上只是更改了文档根目录,我没有更改 php.ini 或其他地方的任何内容。还请注意,我在 php.ini 中保留了所有doc_root
、user_dir
和cgi.force_redirect
的默认值,当 htdocs 在 LightTPD 内部时它可以工作,但当我将其移出时则不行。
知道它为什么会坏吗?
这是我的 lightTPD.conf:
server.modules = (
"mod_access",
"mod_accesslog",
"mod_alias",
"mod_cgi",
"mod_status",
)
include "variables.conf"
include "mimetype.conf"
# THIS WORKS
server.document-root = server_root + "/htdocs"
# THIS DOESN'T
#server.document-root = server_root + "/../../htdocs"
server.upload-dirs = ( temp_dir )
index-file.names = ( "index.php", "index.pl", "index.cgi", "index.cml",
"index.html", "index.htm", "default.htm" )
server.event-handler = "libev"
url.access-deny = ( "~", ".inc" )
$HTTP["url"] =~ "\.pdf$" {
server.range-requests = "disable"
}
static-file.exclude-extensions = ( ".php", ".pl", ".cgi" )
server.errorlog = server_root + "/logs/error.log"
######### Options that are good to be but not neccesary to be changed #######
dir-listing.activate = "enable"
#### CGI module
cgi.assign = ( ".php" => server_root + "/../PHP/php-cgi.exe" )
status.status-url = "/server-status"
status.config-url = "/server-config"
答案1
我无法告诉你原因,但 lighty 似乎不喜欢父级..
表示法。我刚刚测试了这一点,如果你指定完整路径(不必server_root
在配置中使用),它就会起作用。