Ubuntu의 Apache에서는 가상 호스트를 설정했지만 브라우저에서 “403 액세스 금지”오류가 계속 발생합니다. 로그에 ” 서버 구성에 의해 클라이언트가 거부되었습니다 : / home / remix / “.
온라인 솔루션을 찾고 디렉토리 액세스에 대한 많은 게시물 (모두 허용 등)을 찾았지만 이미 알고있는 한 이미 그랬습니다. 에서 아파치 – vhosts.conf 다음과 같은 코드가있다 :
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/opt/lampp/htdocs/"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/home/remix/"
ServerName testproject
ServerAlias testproject
<Directory "/home/remix/">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
나는 또한 추가했다
127.0.0.1 testproject
/ etc / hosts 파일에 추가하십시오.
또한 / home / remix / 폴더에는 index.html 파일이 포함되어 있으며 httpd.conf에서 가상 호스트가 활성화되어 있습니다.
내가 보지 못한 것이 있습니까?
편집 : 이것은 Apache error_log 항목입니다.
[Sat Aug 18 09:15:32.666938 2012] [authz_core:error] [pid 6587]
[client 127.0.0.1:38873] AH01630: client denied by server configuration: /home/remix/
답변
인증 구성을 변경하십시오.
<Directory /home/remix/>
#...
Order allow,deny
Allow from all
</Directory>
… 아파치 2.4 버전과 동일합니다.
<Directory /home/remix/>
#...
Require all granted
</Directory>
업그레이드 해야 할 다른 변경 사항에 대한 정보 는 업그레이드 개요 문서 를 검토하십시오 . Google (및이 사이트)에서 발견 한 대부분의 구성 예제 및 지원은 2.2를 참조하고 있습니다.
답변
디렉토리에 대한 권한을 확인하십시오. 예를 들어 자신 외에 다른 사람에 대한 액세스를 거부하도록 설정되어 있습니다.
$ ls -ld /home/remix
drwx------ 92 remix remix 4096 Aug 17 22:59 /home/remix
당신이 볼 경우 drwx------
정확하게,이 경우입니다. 다음을 실행하여 수정하십시오.
chmod a+x /home/remix
답변
httpd
서비스를 실행중인 사용자 가이 디렉토리에 액세스 할 수 있는지 확인하십시오 .
답변
“서버 구성에 의해 클라이언트가 거부되었습니다”는 Linux 서버 자체가 Apache가 아니라 파일에 대한 액세스를 금지 함을 의미합니다.
권한 / 소유권 / 그룹 멤버쉽 변경을 통해 액세스를 제공해도 문제가 해결되지 않으면 경로 원인은 ‘Selinux에서 Apache DocumentRoot 재배치’에 설명 된대로 적절한 SE Linux 컨텍스트가없는 폴더에 대한 액세스를 금지하는 SELinux 일 수 있습니다 .
setenforce 0
파일을 액세스 가능하게하여 SELinux를 일시적으로 비활성화 한 경우- SELinux를 다시 활성화
setenforce 0
하면 파일을 다시 액세스 할 수 없게됩니다.
그런 다음 파일 권한이 무엇이든 SELinux에 의해 액세스가 금지됩니다.
답변
사람들에게이 문제를 일으킬 수있는 또 하나의 간단한 (그러나 까다로운 문제)는 사용자 디렉토리가 / home / *에 있지 않을 때입니다.
제공된 userdir.conf는 다음과 같은 것을 포함합니다 : (하지만 Userdir : disabled)
$ cat /etc/httpd/conf.d/userdir.conf
<IfModule mod_userdir.c>
UserDir enabled
UserDir public_html
</IfModule>
<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
디렉토리 스펙은 ~ user == / home / user로 가정합니다. 사용자 홈 디렉토리가 실제로있는 디렉토리 스펙을 변경하거나 추가하십시오.
꽤 분명하지만 알아내는 데 시간이 걸렸습니다 !! 😛 DUH!
예를 들어 ~ user == / nethome / user
<Directory "/nethome/*/public_html">
AllowOverride All
Options MultiViews Indexes Includes FollowSymLinks
Require all granted
</Directory>
일반적으로 해당 디렉토리에 대한 더 많은 공개 권한 부여를 참조하십시오.