我想用php自动扫描上传的文件以查找病毒。在早期版本的ubuntu中有一个叫做php-clamavlib的扩展,但在Natty上我得到了以下错误信息:
E: 无法找到软件包php5-clamavlib
难道没有任何扩展可用了吗?我该怎么做才能实现这个功能呢?
E: 无法找到软件包php5-clamavlib
难道没有任何扩展可用了吗?我该怎么做才能实现这个功能呢?
aptitude install zlib1g-dev php5-dev
aptitude purge clamav clamav-base clamav-data clamav-docs clamav-freshclam libclamav6
下载最新的ClamAV,然后进行编译和安装:
wget http://downloads.sourceforge.net/clamav/clamav-0.98.4.tar.gz
tar xzf clamav-0.98.4.tar.gz
cd clamav-0.98.4
./configure
make
make install
ldconfig
useradd clamav
mkdir /usr/local/share/clamav
chown clamav /usr/local/share/clamav
cp /usr/local/etc/freshclam.conf.sample /usr/local/etc/freshclam.conf
/usr/local/etc/freshclam.conf
,将注释行中的Example
取消注释。然后进行更新。freshclam
clamscan somefile
下载最新的PHP-ClamAV,然后进行编译和安装:
wget https://launchpad.net/php-clamav/trunk/0.15.7/+download/php-clamav_0.15.7.tar.gz
tar xzf php-clamav_0.15.7.tar.gz
cd php-clamav_0.15.7
phpize
./configure --with-clamav
make
make install
echo "extension=clamav.so" > /etc/php5/conf.d/clamav.ini
service apache2 restart
php-clamav
。这将比上述方法更好。php-clamav
tarball。
如果您还没有安装php5-dev
和clamav
,请使用sudo apt-get
进行安装。
解压tarball,进入php-clamav-xxxx目录,并按照以下步骤安装php-clamav模块(改编自INSTALL
):
phpize ./configure --with-clamav make cp modules/clamav.so /usr/local/lib/php/extensions/ (重新启动Apache) service httpd restart
php-clamav
。这个为什么从Aptitude中删除了呢? - Marcus Downingphp-config --extension-dir
来找到系统中的扩展所在位置。 - Marcus Downing/etc/php5/apache2/conf.d
,文件内容为:extension=clamav.so
,以启用该扩展。 - Marcus Downing
/var/lib/clamav
读取病毒数据库,这是apt
clamav软件包的默认设置,但在您的回答中,数据库路径是/usr/local/share/clamav
。 请确保删除/var/lib/clamav
下的数据(apt purge命令无法完成此操作),然后可以选择创建一个链接:sudo ln -s /usr/local/share/clamav /var/lib/clamav
,或者修改PHP的clamav.ini文件,添加clamav.dbpath=/usr/local/share/clamav
。 - NeverEndingQueue/var/lib/clamav
目录下的数据,您将继续使用旧的病毒数据来运行您的PHP! 如果您删除了数据,但没有配置新的链接或路径,当运行php -i
时,您可能会遇到LibClamAV Error: cl_load(): No such file or directory: /var/lib/clamav
错误。 - NeverEndingQueue