从PHP中执行我的程序?

时间:2015-11-29 02:00:43

标签: php linux

这个让我走了。我一直在尝试启动一个我在PHP中编写的程序(在Raspbian系统服务器上)。我已经尝试了执行系统命令的常用函数,如system(),exec(),shell_exec()。这些用于系统命令,例如'date'或'ls'没有问题。 'php.ini'不会阻止这些(显然,因为它们可以使用某些命令)。没有错误被踢回(我启用了PHP错误日志)。这些函数被调用,返回和按下,没有明显的执行。

例如我在PHP代码中输入'system(“/ mnt / ramdisk / program”)'或'system(“./ program”)'或'system(“sudo / mnt / ramdisk / program”)'' 。如果我在其中放入一个返回变量,则返回为“1”。我检查了'PS -e'以查看该程序是否已生成。它不是。我已禁用所有std输出(当我手动运行此程序时,它会分叉到后台 - 并运行一段时间)。我已将目录(和程序本身)的权限设置为可由任何人执行(chmod 777)。就好像我打电话给比特桶。我错过了什么?

我开始尝试运行一个过于复杂的程序。当我写一个简单的程序,只输出一行并结束 - 它工作。因此系统在“阻止”我的程序时没有任何本质上的错误。我只需要解决大型程序向南的问题(stdout,stderr重定向?当C程序创建并输出到文件时会发生什么?如果C代码中的exit(1)类型函数返回由PHP exec()? - 等等。)。有很多我不理解不同调用的细微差别(system(),exec()等)。以及C程序中的文件I / O如何受到PHP内部调用的影响。

顺便说一句,一旦C程序启动,我真的不需要返回PHP。我真正想要做的是在浏览器上创建GUI馈送配置文件,然后由C程序使用(无需激活SSH终端即可启动它)。

1 个答案:

答案 0 :(得分:0)

按照以下命令检查禁用功能 echo ini_get("disable_functions");

但如果您使用共享托管system(); exec(); shell_exec();将被屏蔽。