如果位于 LightTPD 文件夹之外,LighTPD 和 PHP 将无法运行

如果位于 LightTPD 文件夹之外,LighTPD 和 PHP 将无法运行

我需要设置一个简单的 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_rootuser_dircgi.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在配置中使用),它就会起作用。

相关内容