无法通过 apache2 curl 文件主机

无法通过 apache2 curl 文件主机

我正在尝试使用 curl 从运行 apache2 的机器上下载文件。我的站点(000-default)配置如下:

<VirtualHost *:80>
    DocumentRoot /home/user/files/
    <Directory /home/user/files/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

我从同一网络上的另一台机器执行以下操作:

curl http://my-share/sample.text -o "test.txt"

然后我得到:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   301  100   301    0     0   4198      0 --:--:-- --:--:-- --:--:--  4239

但如果我 cat 文件的内容包含:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /sample.textconfig
on this server.</p>
<hr>
<address>Apache/2.2.16 (Debian) Server at my-share Port 80</address>
</body></html>

我可以顺利通过 ssh 连接到 my-share debian 服务器。为什么我无法访问该文件,是防火墙问题吗?

答案1

在日志中它只显示:文件不存在:/var/www/sample.text 。那么解决方案是让 www-data 用户以某种方式访问​​ /home/user/files 文件夹吗? – u123 2 小时前

我读得对吗?Apache 正在从 /var/www 目录读取,而您想从 /home/user/files 提供文件?如果确实如此,您可能需要重新检查 Apache 配置。

答案2

我的猜测是你的 apache 用户(通常像 www-data)没有该文件/home/user/files/sample.text或其中一个父目录的读取权限。

查看 apache 的错误日志可以帮助您查明所面临的问题。

相关内容