首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从PHP执行CGI文件?

如何从PHP执行CGI文件?
EN

Stack Overflow用户
提问于 2009-07-26 23:24:18
回答 3查看 940关注 0票数 0

我正在努力制作一个网络应用程序,它将为我管理我的变化莫测的存储库。我想要它,这样当我告诉它加载存储库X时:

  • 连接到MySQL服务器并确保X存在。
  • 检查用户是否允许访问存储库。如果上述情况属实,则从mysql服务器获取X的位置。
  • 运行包含存储库路径的hgweb脚本(python)。

问题是,我想:获取hgweb脚本,修改它,并运行它。但是我不想:获取hgweb脚本,修改它,将它写入一个文件并重定向到那里。我使用Apache运行httpd进程。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-26 23:52:09

发布了正确的答案(我投了反对票)。回勾操作符是执行shell脚本的方式。

最简单的解决方案可能是修改hgweb脚本,使其本身不包含到存储库的路径。相反,将其作为命令行参数传递。这意味着您不必担心在任何地方修改和编写hgweb脚本。你要做的就是:

代码语言:javascript
复制
//do stuff to get location of repository from MySQL into variable $x
//run shell script
$res = `python hgweb.py $x`;
票数 2
EN

Stack Overflow用户

发布于 2009-07-26 23:39:31

您可以在PHP中运行shell脚本。这样做有多种方法,而且由于一些主机没有提供适当的权限而变得复杂,所有这些都在php.net上得到了详细的记录。这就是说,最简单的方法就是简单地把你的命令放在后面。因此,要解压缩文件,我可以说:

代码语言:javascript
复制
`unzip /path/to/file`

因此,如果您的python脚本能够在命令行环境中运行(或者您可以修改它以运行),这似乎是首选的方法。

票数 2
EN

Stack Overflow用户

发布于 2009-07-26 23:45:22

就您的问题而言,如果不编写修改后的脚本,就不太可能获得php来执行修改后的脚本,无论是磁盘上的文件,映射为ram的虚拟文件,还是类似的东西。

听起来你可能是想用树枝敲打铁路钉。如果您正在基于存储在MySQL中的用户权限对访问进行过滤,那么您是否查看了现有的HG解决方案,以确保没有比hgweb更适用的东西?它确实是为做好一件事而建的,这是一件超出正常范围的事情。

我可能建议将apache的本机身份验证作为一种更方便的方法来控制对存储库的访问,然后只需在不修改脚本的情况下提供回购服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1185867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档