我正在尝试使用ls -l
在OpenBSD shell(uname -r: 6.4
)上运行一个简单的命令php 5.6
。
<?php
$output = shell_exec('ls -l');
echo "<pre>$output</pre>";
?>
没有以上代码的输出。在检查元素时只需pre
标签
那么,是什么导致了这个问题呢?我尝试使用
没有运气。这是什么原因? OpenBSD的Php版本或其他版本可能不支持System/shell_exec
。
谢谢!
答案 0 :(得分:1)
您没有提供足够的信息来确定答案,但是我的
猜测是您运行php
到php-fpm
,默认情况下是chroot
到/var/www
。由于shell_exec和系统首先调用/bin/sh
,因此您
很可能没有将其复制到var/www/bin/sh
,因此找不到您的shell。
之后,您还需要将二进制文件(在本例中为ls)复制到
您的chroot
和可能的库依赖关系(文件不需要
在/ bin下)。
希望这对说明有用,但请不要在 生产。