我遇到的问题是,当我尝试从php复制某些文件时,我得到失败的响应,但实际上是复制了该文件。这是一个问题,因为我记录了一条错误消息并在脚本失败时退出脚本,但脚本还有很多工作要做。
我尝试了两种不同的复制方式:
if(!copy("/var/www/html/smicadmin.properties", "/etc/conf/".$new_dir."/smicadmin.properties"))
if(shell_exec("cp $src $dest")==null)
我已将'conf'标记为SELinux允许apache写入它:
chcon -R -t httpd_sys_script_rw_t /etc/conf
有没有人知道为什么会发生这种情况以及如何解决这个问题?
答案 0 :(得分:1)
shell_exec将返回一个字符串,即此程序的输出。如果它返回一些“blablabla”并且你比较为null则它将是假的。
使用exec函数
http://www.php.net/manual/en/function.exec.php
并将return_var与零进行比较 - 如果成功则等于零,如果失败则为其他值。
答案 1 :(得分:0)
请尝试以下命令:
//http://es2.php.net/manual/en/function.passthru.php
passthru("cp $src $dest, $result");
var_dump($results);
或
//http://es2.php.net/manual/en/function.system.php
system("cp $src $dest", $retval);
var_dump($retval);