UbuntuにApacheサーバーをインストールしたところ、すべてうまくいって開始ページにアクセスできます。ただし、/var/www/testにある別のページを作成したいと考えています。アドレス経由でアクセスできるようにしたいのです。http://xxx.xxx.xxx.xxx/テストディレクトリを作成し、HTML ファイルを挿入して、構成を次のように変更しました。
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/test>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
しかし残念なことに、このページにアクセスしようとすると、「見つかりません。要求された URL はこのサーバー上に見つかりません」というエラーが発生します。
Apache/2.4.29 (Ubuntu) サーバー
ここで何が間違っているのでしょうか?
答え1
URL空間とディスク上のファイルの対応はApacheのドキュメントルート<VirtualHost>
ディレクティブ。メインファイルまたは設定ファイルに次のような行がある場合:
DocumentRoot /var/www/html
(おそらく でこれが設定されているでしょう/etc/apache2/sites-enabled/000-default.conf
)、サーバーに を要求するたびにhttp://example.com/path/to/file.html
、ファイル の内容が取得されます/var/www/html/path/to/file.html
。
あなたの場合、(おそらく) と呼ばれるファイルをindex.html
に置きました/var/www/test
が、サーバーは を検索しています/var/www/html/test/index.html
。
のディレクトリ追加したセクションでは、 の権限とその他のオプションのみが指定され/var/www/test
、サーバーの検索パスには含まれません。また、ディレクトリ オプションは継承されるため、ディレクトリは/var/www/test
からオプションを継承します/var/www
(同じオプションを再度指定する必要はありません)。
答え2
まず、ウェブサイトのすべてのディレクトリに新しいブロックを作成する必要はありません<Directory>
。次に、名前を指定せずに新しいファイルにアクセスしようとしている場合は、それがインデックスファイルであることを確認してください。たとえば、ファイルを作成し/var/www/test/index.html
、ディレクティブを作成しますDirectoryIndex index.html
(使用方法の詳細な例と情報については、ここhttp://localhost/test
) を実行してから、または(ここでは、ディレクトリを指すディレクティブをhttp://localhost/test/index.html
構成していると想定しています) を介してブラウザからアクセスしようとします。DocumentRoot
/var/www