【发布时间】:2019-02-03 12:48:06
【问题描述】:
例如,我有一个hello.sh CGI bash 脚本,我想在脚本中做这样的事情:
m=$(python pythonscript.py)
echo $m
我试过了,但是m 在echo 之后是空白的
【问题讨论】:
-
有各种各样的可能是错误的。一方面,
python可能不在您的 Web 服务器的PATH中。如果python恰好在PATH中,则pythonscript.py文件可能不在您的Web 服务器正在寻找的位置。也可能是python pythonscript.py没有返回任何输出。 -
感谢@RedCricket。我已经为 python 修复了 PATH,我可以为 pythonscript.py 修复什么环境变量以便 webserver 可以看到它?
-
在我自己的共享主机体验中,我可以直接通过 CGI 运行 Python 脚本。你可能想看看我的帖子here,尤其是 cgiappserver-prod.cgi 文件。请注意,即使它具有 .cgi 扩展名,它也完全使用 Python。您可能会发现关于 CGI 错误报告的第一行很有用。
-
这取决于您使用的网络服务器。我只知道如何配置apache。如果您使用的是 apache,则
pythonscript.py需要位于DocumentRoot目录中。您可以通过指定pythonscript.py的完整路径来避免担心DocumentRoot...类似于$(python /user/me/my_python_scripts/pythonscript.py) -
请注意,将脚本放在 DocumentRoot 中会带来安全问题,因为最终用户可能会看到脚本的文本。请考虑 Mike 的建议,因为这样会更安全。