使用PHP和ClamAV扫描文件夹中的病毒?

4
我正在我的服务器上使用cPanel,它是一台Linux共享服务器。
我已经在cpanel上安装了clamAv杀毒软件并且可以通过从cpanel进入病毒扫描器选项卡来扫描服务器。
但我需要做的是在一个PHP文件中使用clamav。我尝试在PHP文件中使用以下代码,但当我从浏览器运行页面时,页面上没有任何消息(无论是OK消息还是其他消息)。
请问有人可以告诉我是否有遗漏的地方吗?
<?php

$output = 'myFolder';

$result = 'myFolder';

exec("clamscan '$filename'", $output, $result);

if ($result === 0) {
     echo 'everything ok :)';
}
?>

1
由于这是一个共享服务器,您可能没有权限启动可执行文件。 - Erwin
如果您有特定的原因需要此信息,请告知我们,以便我们更好地为您提供帮助。 - esqew
@pyerwin,你有什么替代方案吗?因为我允许用户上传文件到我的服务器,所以在允许文件放置在服务器之前,我需要对它们进行扫描。 - user3759758
@esqew,谢谢。我在上面的消息中已经说明了这样做的原因。 - user3759758
1个回答

3
你应该了解一下php-clamav,它提供了与ClamAV交互的本地PHP函数,特别是cl_scanfile(string $filename, string $virusname)调用。
从示例代码中可以看到:
$retcode = cl_scanfile($file, $virusname);
if ($retcode == CL_VIRUS) {
    echo "File path : ".$file."Return code : ".cl_pretcode($retcode)."Virus found name : ".$virusname; 
} else {
    echo "File path : ".$file."Return code : ".cl_pretcode($retcode); 
}

需要注意的是,php-clamav正常工作需要主机安装ClamAV。


在发布这个问题之前,我确实查看了php-clamav!我甚至尝试了这段代码$ret = cl_info(); echo $ret;来查看我的php页面中的clamav版本,但是我在我的php页面上什么也没有得到。只有一个白色的页面!所以我不知道缺少了什么! - user3759758
ClamAV已安装在cPanel中,因为正如我在问题中所说的那样,我可以从cPanel中进入病毒扫描器选项卡,并且它显示ClamAV已安装,我也可以从那里运行ClamAV。 - user3759758
@user3759758 仅仅因为你可以从控制面板使用ClamAV并不意味着它可以从PHP访问。唯一能给你详细信息的人是你的网络主机。与他们联系。 - esqew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接