已关闭。此问题需要details or clarity。它目前不接受回答。
**希望改进此问题?**通过editing this post添加详细信息并阐明问题。
12天前关门了。
Improve this question的
我下载了(mdldec_linux_amd64)和(mdldec_linux_i386)
并将它们放置在cPanel / Files Manager / HTML文件夹中的某个位置
如何从Call.PHP调用这个程序?
我尝试下面这样的东西
shell_exec ("mdldec_linux_amd64 parameter1 parameter2");
字符串
有人能帮我一下吗?
2条答案
按热度按时间jk9hmnmh1#
不建议从php执行命令,这可能会带来安全问题。如果你没有选择,这里有两个例子:
您应该尝试使用要执行的文件的完整路径:
字符串
假设文件是/usr/local文件夹
您也可以使用exec并从执行的命令中获取最后返回的行。以及全部输出
型
并且您可能能够更好地调试并获得更多信息
blpfk2vs2#
使用shell_exec或类似的函数从PHP执行二进制文件是很清楚的,您的示例几乎就做到了。有一些注意事项和必要条件需要考虑:
1.文件权限:证明PHP进程拥有对二进制文件的执行权限。您可能需要
chmod +x mdldec_linux_amd64
或chmod +x mdldec_linux_i386
来授予执行权限。1.绝对路径:在shell_exec调用中使用二进制文件的绝对路径。如果您没有明确地通知PHP,它可能不知道在哪里找到您的二进制文件。例如,不是
"mdldec_linux_amd64 parameter1 parameter2"
,而是"/full/path/to/mdldec_linux_amd64 parameter1 parameter2"
。1.安全模式:检查PHP是否在安全模式下运行(这是php.ini中的配置)。如果是,那么二进制文件必须驻留在通过
safe_mode_exec_dir
设置指定的目录中。1.禁用功能:此外,确定
shell_exec
功能未被禁用。某些共享主机会停用具有潜在危险的功能。您可以在php.ini文件中的“disable_functions”指令中验证这一点。假设您的PHP设置允许您使用
shell_exec
,您的PHP代码将如下所示:字符串
将
/full/path/to/
替换为您上传文件的实际路径,将parameter1 parameter2
替换为您希望传递给程序的实际参数。使用像
shell_exec
这样的函数是危险的,因为它们允许PHP在服务器上执行任意命令。因此,仅在绝对必要时使用它们,并确保验证和清理所有输入,以防止潜在的安全隐患。