방금 Ubuntu에 Apache 서버를 설치했는데 모든 것이 잘 진행되었으며 시작 페이지에 액세스할 수 있습니다. 그러나 /var/www/test에 있는 다른 페이지를 만들고 싶습니다. 주소를 통해 액세스하고 싶습니다.http://xxx.xxx.xxx.xxx/test. 디렉토리를 생성하고 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(우분투) 서버
내가 여기서 뭘 잘못하고 있는 걸까?
답변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