orenoblog

エンジニアになりたいExcel方眼紙erの物語

php-clamavのdbpathを探してみる

php-clamav 0.15.7をmake installして利用した所、ClamAVのデータベースファイルが無いと怒られたので対処方法を残します。

extension=clamav.so
$ php -r "phpinfo();"|grep clam
/etc/php.d/clamav.ini,
LibClamAV Error: cl_load(): Can't get status of /var/lib/clamav
PHP Warning:  cl_load: failed : error code 11 (Can't get file status)
 in Command line code on line 1
PHP Warning:  Load database during PHP_MINFO_FUNCTION failed : error code : -1 (
Unknown error code)
 in Command line code on line 1
clamav
  • ソースディレクトリ内をgrepしてみると・・・

php.iniにclamav.dpbathが定義されていない場合は/var/lib/clamavClamAVのデータベースディレクトリとして参照するみたいです

[php-clamav-0.15.7]$ grep '/var/lib/clamav' *
clamav.c:    STD_PHP_INI_ENTRY("clamav.dbpath", "/var/lib/clamav", PHP_INI_ALL,
  • 対処方法

今回ClamAVのデータベースディレクトリは/var/clamavでしたのでこのようになります。

extension=clamav.so
clamav.dbpath=/var/clamav
  • 確認

問題なくロードされました。やったね。

/etc/php.d/clamav.ini,
clamav
php-clamav version => 0.15.7
libclamav version => 0.98
clamav.dbpath => /var/clamav => /var/clamav
clamav.keeptmp => 0 => 0
clamav.load_db_on_startup => 0 => 0
clamav.maxfiles => 10000 => 10000
clamav.maxfilesize => 26214400 => 26214400
clamav.maxreclevel => 16 => 16
clamav.maxscansize => 104857600 => 104857600
clamav.tmpdir => /tmp => /tmp