我遇到一个问题,当我尝试从 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
有谁知道为什么会发生这种情况以及如何解决它?
答案1
答案是:
shell_exec 将返回一个字符串,即该程序的输出。如果它返回一些“blablabla”,并且您将其与 null 进行比较,则结果为 false。
使用函数 exec
http://www.php.net/manual/en/function.exec.php
并将 return_var 与零进行比较——如果成功,它将等于零,如果失败,则等于其他值。