Apache 不提供文件服务

Apache 不提供文件服务

我正在设置 Apache2 Web 服务器,由于某种原因,它不提供文件服务,因此我可以通过 Web 浏览器访问它们。
文档根目录设置正确,文件归 www-data 所有(与 apache 作为环境变量运行相同)。

如果我尝试通过 ....com/hello.txt 访问该文件,我会得到:

Not Found

The requested URL /hello.txt was not found on this server.
Apache/2.4.25 (Debian) Server at ....... Port 80

我的配置文件(删除了一些注释行):

<VirtualHost *:80>

    #serverName www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /srv/www/linuxvm232b/public

    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    #Include conf-available/serve-cgi-bin.conf

    <Directory "/srv/www/linuxvm232b/public">
        AllowOverride None
        Require all granted
    </Directory>

</VirtualHost>

原图

目录列表:

root@linuxvm232:/etc/apache2/sites-available# ll /srv/www/linuxvm232b/public/
total 14
drwxr-xr-x 2 www-data www-data 6   Mar 4   14:58 assets
-rwxr-xr-x 1 www-data www-data 0   May 11  21:10 hello.txt
-rwxr-xr-x 1 www-data www-data 907 Mar 4   14:58 index.html
drwxr-xr-x 2 www-data www-data 4 Mar 4 14:58 src
root@linuxvm232:/etc/apache2/sites-available#

原图

答案1

正如我从你的屏幕截图中看到的,你正在使用 /srv 目录来提供你的文件,据我所知,这不是 Debian 上的默认方式。

确保检查 /etc/apache2/apache2.conf 是否允许 apache 服务器访问 /srv 目录,因为在标准配置中,禁止访问该目录。

它应该是这样的注释条目:

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>

只需取消注释该块并重新加载 apache2 via, systemctl reload apache2 /srv 中的目录就应该能够访问。

另请确保已通过以下方式启用该网站a2ensite linuxvm232bsystemctl reload apache2

相关内容