2024-04-20 12:11:46 发布
网友
我正在尝试制作一个web应用程序来管理我的Mercurial存储库。 我希望这样,当我告诉它加载存储库X时:
问题是,我想:获取hgweb脚本,修改它,然后运行它。 但我不想:获取hgweb脚本,修改它,将其写入一个文件并重定向到那里。 我使用Apache运行httpd进程。在
您可以在PHP中运行shell脚本。有各种各样的方法来实现这一点,而且有些主机没有提供适当的权限,这一切都有很好的文档记录php.net网站. 也就是说,最简单的方法就是简单地将命令放在反勾中。所以,要解压缩文件,我可以说:
`unzip /path/to/file`
因此,如果您的python脚本可以从命令行环境中运行(或者您可以修改它以便运行),那么这似乎是首选方法。在
Ryan Ballantyne发布了正确的答案(我投了赞成票)。反勾号运算符是执行shell脚本的方法。在
最简单的解决方案可能是修改hgweb脚本,使其本身不“包含”到存储库的路径。相反,将其作为命令行参数传递。这意味着您不必担心在任何地方修改和编写hgweb脚本。你要做的就是:
//do stuff to get location of repository from MySQL into variable $x //run shell script $res = `python hgweb.py $x`;
至于你的疑问,不,你不太可能让php执行一个修改过的脚本,不管它是磁盘上的文件,映射到ram的虚拟文件,还是类似的东西。在
听起来你可能是想用一根小树枝敲打一根铁路道钉。如果您要根据存储在MySQL中的用户权限过滤访问权限,您是否查看了现有的HG解决方案,以确保没有比hgweb更适用的解决方案?它真的是专为做好一件事而构建的,而且这超出了它的正常范围。在
我建议将apache的本机身份验证作为一种更方便的方法来控制对存储库的访问,然后在不修改脚本的情况下为repo提供服务。在
您可以在PHP中运行shell脚本。有各种各样的方法来实现这一点,而且有些主机没有提供适当的权限,这一切都有很好的文档记录php.net网站. 也就是说,最简单的方法就是简单地将命令放在反勾中。所以,要解压缩文件,我可以说:
因此,如果您的python脚本可以从命令行环境中运行(或者您可以修改它以便运行),那么这似乎是首选方法。在
Ryan Ballantyne发布了正确的答案(我投了赞成票)。反勾号运算符是执行shell脚本的方法。在
最简单的解决方案可能是修改hgweb脚本,使其本身不“包含”到存储库的路径。相反,将其作为命令行参数传递。这意味着您不必担心在任何地方修改和编写hgweb脚本。你要做的就是:
至于你的疑问,不,你不太可能让php执行一个修改过的脚本,不管它是磁盘上的文件,映射到ram的虚拟文件,还是类似的东西。在
听起来你可能是想用一根小树枝敲打一根铁路道钉。如果您要根据存储在MySQL中的用户权限过滤访问权限,您是否查看了现有的HG解决方案,以确保没有比hgweb更适用的解决方案?它真的是专为做好一件事而构建的,而且这超出了它的正常范围。在
我建议将apache的本机身份验证作为一种更方便的方法来控制对存储库的访问,然后在不修改脚本的情况下为repo提供服务。在
相关问题 更多 >
编程相关推荐