我正在尝试使用 exec 和 Laravel 框架从 PHP 编译一个 C 程序。但我不认为这是问题所在,因为我可以毫无问题地从终端编译和执行 C 程序。如果你从 Laravel 5 的 tinker 那里知道,那么问题就出在 PHP 上。但是我找不到错误,我认为问题出在不同版本的 GCC 上,但为什么让我从终端编译。
当我从 PHP 执行此操作时出现此错误。如果我从终端编译,它可以工作,但从 php 编译不行。
$path = public_path("testing/cosas.out");
exec("gcc testing/pruebaC.c -o testing/from.out 2>&1",$output,$status);
dd($output,$status); //is like var_dump
我明白了!!
gcc: error trying to exec 'cc1': execvp: No such file or directory"
我检查了权限并且是正确的(事实上我在绝望中做了 chmod 777)。
我也尝试重新安装所有东西,但它不起作用。
最佳答案
问题是您的应用程序在通过浏览器调用时通过处理 Apache 实例的用户运行。如果这不是 root(或其他特权用户),则它可能没有访问权限。此外,这将可能指示应用程序尝试从哪个目录执行。
当您从 CLI 执行时,用户就是拥有终端实例的人(当然,除非 su'd
)。
关于php - 从 PHP 编译 C,尝试执行 'cc1' 时出现执行错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33293538/