php - linux下通过PHP网页运行C编译程序

标签 php c shell-exec

我的 page.php 文件现在看起来像这样:

    <?php

    $cmd = './foo < input.txt > output.txt';

    $result = shell_exec($cmd);

    echo system('date'); //just to see change when refreshing the page

    ?>

每当我在 shell 中键入相同的命令时,它都能完美运行(带有示例输入的 input.txt 文件已准备就绪)。

我的想法是使用 php 创建一个接口(interface)来与 input.txt 文件通信,然后与 output.txt 文件通信以将结果返回到页面上。 但是,首先,我需要确保我可以运行我的程序。

我编译过

    gcc -Wall -o foo foo.c

foo 可执行文件与 page.php 位于同一目录中。

我已尝试对所有文件(page.php、input.txt 和 foo)设置 777 权限

网站已启动并正在运行,当我刷新页面时日期发生变化,但目录中没有 output.txt。

我试过了

    $cmd = 'ls -la';

    $result = shell_exec($cmd);

    echo $result;

它按预期工作,显示正确目录的内容。

最佳答案

可能导致此类问题的一件事是,如果 Apache 没有对 output.txt 应该所在的 目录 的写入权限。执行 ls -l ../ 以查看您是否确实拥有必要的权限。我还会附和出结果,因为这可能会让您对正在发生的事情有更多的了解。

关于php - linux下通过PHP网页运行C编译程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8875259/

相关文章:

php - apache 用户无法运行 sox 命令

php - 在 php 中进行 AES 加密,然后使用 Javascript (cryptojs) 解密

php - yii-boostrap 不加载 css 或 js 文件

php - 提交到MySQL,但if语句导致问题

c - for循环计数器中的数组下标运算符

c++ - GTK3 :How to receive input value from entry/input box?

php - sudo: 不存在 tty 且未指定 askpass 程序使用 shell_exec 时

php - 如何在 php shell_exec 中运行多个 ffmpeg 任务

php - woocommerce_thankyou 接到了 4 次电话

C - 无法释放分配的内存