Lighttpd将html页面映射到php(将html页面作为php执行)
有时您需要将旧的 html 文件作为 php 页面运行,特别是当您从 Apache Web 服务器迁移时。要将 html 页面视为 php,您需要使用fastcgi.map-extensions指令将多个扩展映射到同一个 fastcgi 服务器。
例如:
任务:将 html 映射到 php
fastcgi.map-extensions = ( ".html" => ".php" )
任务:将旧的 .php3 文件映射到 php
fastcgi.map-extensions = ( ".php3" => ".php" )
但是,当您映射 .html 文件时,您需要禁用mod_compress,它会进行输出压缩并减少网络负载。它可以提高 Web 服务器的整体吞吐量。此模块默认压缩 .html 文件。您有两个选择:
a) 删除模块
b) 从 (mod_compress) 中跳过 .html 文件
打开 Lightttpd 配置文件:
# vi /etc/lighttpd/lighttpd.conf
找出 compress.cache-dir 和 compress.filetype 指令并注释掉(或删除这些行):
接下来,找出 mod_compress server.modules 行并注释掉。
# compress.cache-dir = "/tmp/lighttpd/cache/compress/"
# compress.filetype = ("text/plain", "text/html")
接下来通过添加指令来扩展 map.html:
fastcgi.map-extensions = ( ".html" => ".php" )
最后您的配置应该如下所示(您的 fastcgi 指令可能看起来略有不同):
fastcgi.map-extensions = ( ".html" => ".php" )
fastcgi.server = ( ".php" =>
((
"bin-path" => "/usr/bin/php",
"socket" => "/tmp/php.socket",
"max-procs" => 2,
"idle-timeout" => 20,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "4",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"
),
"broken-scriptfilename" => "enable"
))
)
保存并关闭文件。重新启动lighttpd服务器:
# /etc/init.d/lighttpd restart
花了30多分钟才解决这个小问题。最后以下命令给了我答案:
$ lynx http://localhost/test.html
它正在将 test.html 下载为 .gz 文件。我立即意识到服务器正在使用 mod_compress 压缩文件 (test.html),然后将文件传输到客户端。因此我禁用了 mod_comress,重新启动了服务器,然后就好了!