首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ClamAV发生错误socket_connect():无法连接[13]:权限被拒绝?

ClamAV发生错误socket_connect():无法连接[13]:权限被拒绝?
EN

Stack Overflow用户
提问于 2019-09-09 13:40:52
回答 1查看 2.6K关注 0票数 0

My : Centos 7,使用laravel 5.8,php 7.1:

我使用Clamav.php at:https://github.com/kissit/php-clamav-scan扫描文件的病毒:

更改套接字文件的设置:

代码语言:javascript
运行
复制
private $clamd_sock = "/var/run/clamd.scan/clamd.sock";

这是我用laravel编写的简单代码:

代码语言:javascript
运行
复制
    $clamav = new Clamav();
    echo "Testing a bad file...\n";
    if($clamav->scan("/var/www/html/test/storage/logs/clamav_test.txt")) {
        echo "YAY, file is safe!\n";
    } else {
        echo "BOO, file is a virus.  Message: " . $clamav->getMessage() . "\n";
    }

我通过url:https://www.hostinger.com/tutorials/how-to-install-clamav-centos7在centos 7上安装了clamav

我的背景是:

代码语言:javascript
运行
复制
sudo setsebool -P daemons_enable_cluster_mode 1

并将用户apache添加到clamscan组中。

代码语言:javascript
运行
复制
sudo usermod -a -G clamscan apache

我检查了exist文件套接字:

代码语言:javascript
运行
复制
[root@ip-172-31-2-17 centos]# ls -l /var/run/clamd.scan/
total 0
srw-rw-rw-. 1 clamscan clamscan 0 Sep 19 20:49 clamd.sock

但它会发生错误:

socket_connect():无法连接13:权限被拒绝

如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-19 23:08:54

试试这个解决方案,它对我有用。

代码语言:javascript
运行
复制
chmod 755 /var/run/clamd.scan

我试过和码头。

supervisord.conf:

代码语言:javascript
运行
复制
[supervisord]
nodaemon=true

[program:httpd]
redirect_stderr=true
command=/usr/sbin/httpd -DFOREGROUND
process_name = httpd

[program:clamd]
directory=/
command=clamd -c /etc/clamd.d/scan.conf &
autostart=true
autorestart=true

Dockerfile:

代码语言:javascript
运行
复制
FROM centos:7

# Install Apache
RUN yum -y update
RUN yum -y install httpd httpd-tools

# Install EPEL Repo
RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
 && rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

# Install PHP
RUN yum -y install php71w php71w-bcmath php71w-cli php71w-common php71w-gd php71w-intl php71w-ldap php71w-mbstring \
    php71w-mysql php71w-pear php71w-soap php71w-xml php71w-xmlrpc

RUN yum -y install git

RUN yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd wget

RUN yum -y install php71w-devel gcc make
RUN yum -y groupinstall "Development tools"

#RUN wget https://datapacket.dl.sourceforge.net/project/php-clamav/0.15/php-clamav_0.15.7.tar.gz
#RUN tar -xvzf php-clamav_0.15.7.tar.gz && cd php-clamav-0.15.7 && phpize && ./configure && make && make install

RUN sed -E -i -e '/<Directory "\/var\/www\/html">/,/<\/Directory>/s/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf
RUN sed -E -i -e 's/DirectoryIndex (.*)$/DirectoryIndex index.php \1/g' /etc/httpd/conf/httpd.conf

RUN sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
RUN sed -i 's+#LocalSocket /var/run/clamd.scan/clamd.sock+LocalSocket /var/run/clamd.scan/clamd.sock+g' /etc/clamd.d/scan.conf

RUN cat /etc/clamd.d/scan.conf | grep clamd.sock

RUN sed -i -e "s/^Example/#Example/" /etc/freshclam.conf
RUN freshclam

RUN chmod 755 /var/run/clamd.scan

RUN yum -y install supervisor
RUN yum -y install mc

COPY supervisord.conf /etc/supervisord.conf
EXPOSE 80
CMD ["/usr/bin/supervisord"]

CMD ["supervisord", "-n"]

index.php

代码语言:javascript
运行
复制
<?php
require 'Clamav.php';
$sock = "/var/run/clamd.scan/clamd.sock";
if (file_exists($sock)){
    echo "";
}else{
    echo "$sock not found";
}

$clamav = new Clamav(array('clamd_sock' => $sock));

if($clamav->scan("/var/www/html/scan.txt")) {
    echo "YAY, file is safe\n";
} else {
    echo "BOO, file is a virus.  Message: " . $clamav->getMessage() . "\n";
}

?>

请参阅这里

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57855237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档