【发布时间】:2018-11-18 09:44:48
【问题描述】:
我正在尝试在我的 Android 手机中创建服务器。我无法从我的 PHP 代码中执行任何 shell 脚本。
代码如下:
//index.php
<?php
$output=shell_exec("sdcard/htdocs/myscript.sh 2>&1");
if(!$output){
echo "Failed";
}else{
echo $output;
}
?>
//myscript.sh
cd sdcard/htdocs/images
ls -t1 | head -n 1
脚本在终端模拟器中运行良好。我也尝试更改脚本文件的权限,但没有奏效。我不知道它是否需要超级用户权限才能在 PHP 代码中执行 shell 脚本。
整个代码用于返回在 images 目录中创建的最后一个文件的文件名。
需要建议以使此代码正常工作。还有其他方法可以执行所需的工作吗?
【问题讨论】:
-
您的 PHP 配置中是否启用了
shell_exec()? -
安全模式已关闭,php.ini 中 disable_functions 右侧没有任何内容
-
您可能想尝试另一个提供更多诊断功能的程序执行功能,例如exec()。但是,您的相对路径表明该脚本托管在
/mnt或类似位置,这是放置脚本的一个奇怪的地方......我敢打赌它只是找不到脚本,因为路径无效。
标签: php linux apache terminal server