执行exec的PHP脚本

标签 php exec

我正在编写一个 PHP 脚本来上传一个文件,该文件通过使用系统调用 fork()exec()execl 来执行其他 c 文件()。 不幸的是 execl() 函数没有工作。
更详细地说,PHP 脚本执行 exec() 函数为:

$output =shell_exec('./app/p1';
echo "<pre>$output</pre>"; ) 

执行p1是p1.c的可执行文件,p1.c程序调用execl()为:

execl("./p2", "./p2", "a.param","test.txt", NULL); 

执行p2,即p2.c的可执行文件。结果p1.c中的execl()没有执行,p2.c也没有执行。 有什么建议么。

最佳答案

shell_exec documentation 中所述,只有在 PHP 配置中禁用了 safe_mode 时才启用此功能。

要禁用它(仅适用于 PHP prior to 5.4 ),您必须在 php.ini 中包含以下行:

safe_mode = Off

另一个可能的问题可能来自当前路径。您正在使用相对路径(./app/p1./p2)调用二进制文件。您确定这些二进制文件在当前工作目录中吗?

要解决这个问题,只需在这两种情况下都使用文件的完整路径即可。

关于执行exec的PHP脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12965777/

相关文章:

php - Bootstrap 表使用连续数据从 MySQL 轮询更新

php - 捕获 FFMPEG 输出

c - c中的exec函数没有运行

python - PyQt5 : Object has no attribute 'exec_' with two main windows

javascript - 以不同的顺序输出数据

php - 如何在 PHP 中根据菜单/用户语言保留产品选项

php - 在 Laravel 中获取产品 ID

php - Symfony vich uploader 和学说可记录扩展问题?

java - 在 Java 中调用 Grep 会给出错误的结果,而在 shell 中调用 grep 会给出正确的结果

python - 'exec' 不适用于私有(private)方法 Python