如何在PHP / Laravel

时间:2016-08-02 15:13:29

标签: php python laravel

我想知道如何使用php代码运行python脚本。我尝试过不同的选项,比如

 $output = exec("python  /var/GAAutomationScript.py");

 $command = escapeshellcmd('/var/GAAutomationScript.py');
 $output = shell_exec($command);

但无法运行python脚本。我的申请是在Laravel。是否可以使用Laravel调度程序作业运行python脚本,例如使用工匠命令?

1 个答案:

答案 0 :(得分:0)

关于您的问题,有几件事要提:

  • 我强烈建议使用symfony/process而不是直接使用shell_exec。它已经在laravel中可用。您可以轻松检查命令是否成功,并以字符串格式等获取标准输出
  • 从Web应用程序运行Shell脚本时,用户权限很重要。例如,laravel Web用户为library(ggplot2) ggplot(Data, aes(x=Sq..Meters, y=PDXTotalFreqStpy)) + stat_summary(fun.y="mean", geom="line", aes(group=Sex,color=Sex)) ,而您的python脚本为www-data,例如,它将检查python脚本具有哪些权限。在此示例中,是否允许ubuntu.nbody以外的用户运行它。
  • 然后,如果您认为将777权限授予python脚本将摆脱权限问题,那也有风险。
  • 最后但并非最不重要的一点是,创建一个laravel控制台命令,添加将运行ubuntu中的python脚本的代码段。然后运行它并调试错误。一旦工作,您可以将其添加为laravel的cron jon。

See this了解有关调度工匠命令的信息。

您还可以避免创建artisan命令并直接添加shell,因为它内部使用symfony/processSee this供参考