私は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を再ロードすると、
systemctl reload apache2
/ srvのディレクトリにアクセスできます。
また、以下を介してサイトが有効になっていることを確認してくださいa2ensite linuxvm232b
。systemctl reload apache2