【发布时间】:2012-10-22 16:17:49
【问题描述】:
我在 Apache/2.2.16 (Win32) 上运行 PHP 5.2.14,并且我有一个运行 shell 命令的脚本,在命令提示符下测试时效果很好,但在浏览器模式 (html) 下却不行。
脚本:
mybatfile.bat
REM ...
REM process some folder details
REM code which does not work in browser mode but works in cmd mode
C:/somfolder/bin/mysqldump -u abc -pabcdef --result-file="C:/Apache22/somfolder/DBbackup/DBbackup.%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%.sql" --dump-date --log-error="C:/Apache22/somfolder/DBbackup/DBbackup.%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%.log" dbname > dboutputresult.txt
REM process result of savedfile
calltobatfile.php
//process some folder information
$file = file_get_contents($folderroot."/exec/mybatfile.bat");
//var_dump($file);
$strarr = explode("\n", $file);
foreach($strarr as $line){
if(strlen($line)>1){
var_dump("line: ".$line."\n");
$output = shell_exec($line);
print_r($output);
}
}
//process result of savedfile additional information
任何帮助和建议表示赞赏。 呸呸呸
【问题讨论】:
-
网络服务器用户 ID 是否有权执行该批处理文件中正在执行的任何操作?从 cli 而不是从网络服务器工作通常是权限/路径问题。
-
感谢您的建议。这绝对是一个权限问题,因为它现在可以在使用文件夹权限进行调整后工作。
标签: php exec windows-shell shell-exec