如何在PHP/Laravel中运行Python脚本

rah*_*590 5 php python laravel

我想知道如何使用PHP代码运行python脚本.我尝试过不同的选择

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

 $command = escapeshellcmd('/var/GAAutomationScript.py');
 $output = shell_exec($command);
Run Code Online (Sandbox Code Playgroud)

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

Mih*_*nde 3

关于您的问题需要提及的一些事情:

  • 我强烈建议使用symfony/process而不是直接使用 shell_exec 。它已经在 Laravel 中可用。您可以轻松检查命令是否成功并获得字符串格式的标准输出等
  • 当您从 Web 应用程序运行 shell 脚本时,用户权限很重要。例如,laravel web 用户是www-data,你的 python 脚本是ubuntu.nbody,然后它会检查 python 脚本具有哪些权限。是否允许本示例以外的用户ubuntu运行它。
  • 那么如果你认为给 python 脚本赋予 777 权限就能解决权限问题,那么这也是一个风险。
  • 最后但并非最不重要的一点是,创建一个 laravel 控制台命令,添加将从symfony/process. 然后运行它并调试错误。一旦它起作用了,你就可以像 Laravel 的 cron jon 中一样添加它。

请参阅此内容以了解有关调度 artisan 命令的更多信息。

您还可以避免创建 artisan 命令并直接添加 shell,因为它内部使用symfony/process. 请参阅此参考