2

我想用 PHP 设置 Lighty 在我的开发环境中使用 3 个不同的域名:

  1. example1.domain.com
  2. example2.domain.com
  3. example4.domain.com

我已经使用 Homebrew 安装了 PHP 5.4 和 Lighty,我的目标是在开发过程中使用类似 Rails 的解决方案来启动/停止 Web 服务器。本质上,我想要:

$ rails s

表现得像:

$ lighttpd -D -f lighttpd.conf

我已经让服务器运行,并指向 localhost:8000,但由于某些资产以上述域为前缀,因此某些资产无法正确加载。

所以对于我的问题,我如何正确配置具有上述域的虚拟主机的 Lighty?

这是我当前的 Lighty 配置:

server.bind = "0.0.0.0"
server.port = 8000
server.document-root = CWD + "/public"
server.errorlog = CWD + "/lighttpd.error.log"
accesslog.filename = CWD + "/lighttpd.access.log"

index-file.names = (
  "index.php",
  "index.html",
  "index.htm",
  "default.htm"
)

server.modules = (
  "mod_fastcgi",
  "mod_accesslog",
  "mod_rewrite"
)

fastcgi.server = (
  ".php" => ((
    "bin-path" => "/usr/local/bin/php-cgi",
    "socket" => CWD + "/php5.socket"
  ))
)

mimetype.assign = (
  ".css"        =>  "text/css",
  ".gif"        =>  "image/gif",
  ".htm"        =>  "text/html",
  ".html"       =>  "text/html",
  ".jpeg"       =>  "image/jpeg",
  ".jpg"        =>  "image/jpeg",
  ".js"         =>  "text/javascript",
  ".png"        =>  "image/png",
  ".swf"        =>  "application/x-shockwave-flash",
  ".txt"        =>  "text/plain"
)

# Making sure file uploads above 64k always work when using IE or Safari
# For more information, see http://trac.lighttpd.net/trac/ticket/360
$HTTP["useragent"] =~ "^(.*MSIE.*)|(.*AppleWebKit.*)$" {
  server.max-keep-alive-requests = 0
}

# Vhost settings
$HTTP["host"] =~ "example[0-9]+.domain.com" {
  server.document-root = CWD + "/public"
  server.errorlog = CWD + "/lighttpd.error.log"
  accesslog.filename = CWD + "/lighttpd.access.log"
}
4

2 回答 2

3

我有 2 个想法,您可以使用类似的东西mod_simple_vhost或在主配置中设置根文档目录。

所以,像:

    $HTTP["host"] =~ "^example([0-9])\.domain\.com$" {
        server.document-root = CWD + "/example%1/"
    }

或使用mod_simple_vhost,这是一个示例配置:

    server.modules += ( "mod_simple_vhost" )

    simple-vhost.server-root   = CWD + "/"
    simple-vhost.document-root = $HTTP["host"] + "/"
    simple-vhost.default-host  = "domain.com"

这将把页面放在,比如说,example1.domain.com/CWD/example1.domain.com/。如果这不起作用,请尝试simple-vhost.document-root = CWD + "/" + $HTTP["host"] + "/"

但是,如果您遇到 DNS 问题,请编辑主机文件并添加域,或者配置您的名称服务器。

于 2013-04-26T09:34:05.400 回答
0

如果它们都使用与主服务器配置相同的设置,则无需配置任何虚拟主机。您应该能够将域添加到您的主机文件中,以便将它们定向回您的计算机,而不是指向真正的 domain.com。在 mac 和 linux 上的 /etc/hosts 或 Windows 上的 C:\Windows\System32\drivers\etc\hosts 中添加:

127.0.0.1   example1.domain.com
127.0.0.1   example2.domain.com
127.0.0.1   example3.domain.com
于 2013-04-24T18:38:35.070 回答