php - 从 PHP 编译 C,尝试执行 'cc1' 时出现执行错误

标签 php c gcc exec shell-exec

我正在尝试使用 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/

相关文章:

javascript - 序列化 JSON 对象以通过 AJAX 发送

常量的 C 字符串连接

c - 如果文件指针在 C 中返回 NULL,我如何确定文件不存在或访问权限不存在?

c - 在 C 中操作字符串

gcc - CUDA 与我的 gcc 版本不兼容

c - 非常简单的错误;我可能忘记了分号

c - 关于gcc编译的x86_64代码和C代码优化

php - 允许通过 javascript 访问 iframe 内容

使用 AJAX 检索表单时,Javascript 表单提交 PreventDefault 不起作用

PHP Web 服务优化和测试方法