我有一个 shell 脚本 (csh) - 我没有写它,所以现在无法更改它。该脚本对日志文件进行了大量解析,调用了 Perl 和 Tcl 等语言中的其他脚本,创建新文件并调用可执行文件。它可以从命令行顺利运行。
我希望能够从 HTML 表单运行脚本(我可以这样做),正常工作并将通常发送到终端的文本输出到 Web 浏览器。
我在 Ubuntu 10.10 上安装了 lighttpd 1.4.26。该脚本只需要从 HTML 中传递给它一个变量。
它不能正常工作。
- 我将 链接
10-cgi.conf
到conf-enabled
。这应该可以启用 CGI,看起来确实可以。 - 我注释掉了中的
server.username
和server.groupname
行lighttpd.conf
。这显然允许服务器以“root”身份运行脚本。 - 我创建了一个小脚本,它接受查询字符串,对其进行解析并调用真正有用的脚本。
以下是我遇到的问题:
我添加了它
pwd
,它打印出了正确的目录。但是,在使用“>”写入文件时,它实际上不会使用该路径。我需要为每个此类文件访问手动添加完整路径 - 为什么?没有定义 PATH,因此,诸如 、 、 等命令均不起作用
head
。tail
我grep
添加ifconfig
了硬编码的 PATH= ,似乎可以工作,但即便如此,某些命令仍然不起作用。我复制了与交互式 shell 中相同的 PATH。有长度限制吗?为什么没有 PATH?与所有这一切相关的是,当调用可执行文件时,它们似乎对自己的位置感到困惑,因为相对路径 ../../ 不再起作用。
我感觉这是一种用户权限或交互式与非交互式的问题。
需要注意的是,这项服务永远不会在网络上运行,只会在少数合格用户的小型设置中本地运行。实际上,安全性不是问题。