【问题标题】:Correct path to run python script with php from cgi-bin folder使用 cgi-bin 文件夹中的 php 运行 python 脚本的正确路径
【发布时间】:2011-06-22 15:55:40
【问题描述】:

我想从我的网络服务器上的 cgi-bin 目录运行 python 脚本“test.py”。 cgi-bin 目录位于“www/cgi-bin/”。 python 脚本位于该目录中。我正在执行的 php 代码位于 'www/html/website/index.php'。

这里的正确路径是什么 ------> exec('path');

TYVM

编辑: 我的 python 脚本已经 chmod +x'd 并且是可执行的(我已经测试过)

【问题讨论】:

  • 为什么要通过 PHP 运行 Python CGI 脚本?这是一件非常非正统的事情......

标签: php python cgi-bin


【解决方案1】:

假设 PHP 脚本与“www”目录位于同一目录中。

<?
    exec('./www/cgi-bin/test.py'); 
?>

或者不使用 chmoding,你可以通过 Python 运行它

<?
    exec('python ./www/cgi-bin/test.py'); 
?>

【讨论】:

  • 嗨,我尝试了发布的这两种解决方案,但它们都不起作用……这是我用于 python 脚本的源代码。 code #! /usr/bin/python f=open("./testtesttest", 'w') f.write("testing testing 1 2 3") f.close()这只是为了测试目的..
  • @user583507 您的 PHP 脚本在文件系统中的什么位置?在 linux 命令行中执行“pwd”命令。
  • @user583507 python 脚本的绝对路径是什么?你为什么给我你网站的绝对路径?没看懂题主,解释一下。我知道两个脚本,/var/www/cgi-bin 中的 PHP 脚本和 python 脚本。 (请回答我所有的问题以便快速回答)
  • 所以在 index.php 脚本中使用 exec('python /var/www/cgi-bin/test.py');exec('/var/www/cgi-bin/test.py');。如果这些都不起作用,请转到命令行并输入python /var/www/cgi-bin/test.py,然后让我知道您输入后的内容。
  • @user583507 好吧,给我点个赞吧。你的服务器很奇怪,我忍不住。
【解决方案2】:

然后,您的 PHP 代码将在 www/html/website/ 目录中执行。您需要上两个目录(到达www/ 目录),然后下到cgi-bin/ 子目录。所以这应该有效:

exec('../../cgi-bin/test.py');

请注意,这依赖于当前工作目录是 PHP 脚本目录。情况可能并非总是如此,特别是如果 PHP 脚本中的某些内容显式更改了当前工作目录,或者只是如果该 PHP 脚本包含在不同的脚本中。所以最好使用绝对路径(例如将基目录的绝对路径放入配置文件中)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-12
    • 2012-05-11
    • 2014-03-27
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    相关资源
    最近更新 更多