【问题标题】:Having issues running a script via cgi in lighttpd在 lighttpd 中通过 cgi 运行脚本时遇到问题
【发布时间】:2017-02-12 00:36:46
【问题描述】:

我的配置文件中有以下部分:

cgi.assign = ( ".sh" => "" )

$HTTP["url"] =~ "^/urlpath/" {
  $HTTP["querystring"] =~ "cams=on" {
    cgi.assign = ( "" => "/scriptpath/CamsOn" )
  }
  $HTTP["querystring"] =~ "cams=off" {
    cgi.assign = ( "" => "/scriptpath/CamsOff" )
  }
  url.redirect = ( "^/urlpath/" => "http://somewebsite" )
}

我已经加载了 cgi 模块:

server.modules              = (
                                "mod_redirect",
                                "mod_access",
                                "mod_cgi",
                                "mod_accesslog" )

现在“CamsOn”和“CamsOff”是shebanged shell 脚本。老实说,我以前做过这个并且可以正常工作,但是我的服务器崩溃了,我丢失了我的配置。出于某种原因,我一生都无法弄清楚如何让它发挥作用。我做了重定向,所以我不必实际创建“urlpath”页面。重定向在 $HTTP["url"] 片段中运行良好,我什至通过在内部嵌套重定向来测试查询字符串部分,该重定向只是将其带到 google.com; urlpath/?cams=on 相应地将我发送到谷歌。

我做错了什么?

更新:

我打算用

让它工作
$HTTP["url"] =~ "^/urlpath/" {
  $HTTP["querystring"] =~ "cams=on" {
    cgi.assign = ( "" => "/scriptpath/CamsOn" )
  }
  $HTTP["querystring"] =~ "cams=off" {
    cgi.assign = ( "" => "/scriptpath/CamsOff" )
  }
}

我认为重定向首先被解析,所以当地址更改时,它不再适合 URL 和查询字符串比较。我可以改变这个吗?这个想法是使 urlpath 动态并在 conf 文件中动态更新。这就是为什么我让重定向将您发送到另一个地址。这样我也不需要进行 html 编辑或创建其他文件夹。

【问题讨论】:

    标签: shell cgi sh lighttpd


    【解决方案1】:

    我做错了什么?

    a) 没有进行备份

    b) 没有进行备份

    c) 没有进行备份

    d) 没有查看您自己的 stackoverflow 帖子历史记录

    Can't figure out how to receive http requests using lighttpd

    如果您想减少在配置文件中编辑的位置数量,您可以为 lighttpd.conf 中的变量赋值并使用 lighttpd.conf 中的变量。见var.* https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_Configuration var.camsurlpath = "/urlpath/" $HTTP["url"] =~ "^" + var.camsurlpath { ... }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      • 2015-03-24
      相关资源
      最近更新 更多