Apache2 userdir이 사용 가능하지만 여전히 액세스 할 수 없음


9

Kubuntu 13.04 랩톱에서 아파치 서버를 설정하려고합니다. apache2 패키지를 설치 sudo a2enmod userdir; sudo service apache2 restart했지만 여전히 방문 할 때 http://localhost/~user다음과 같이 말합니다.

Forbidden

You don't have permission to access /~user on this server.

Apache/2.2.22 (Ubuntu) Server at localhost Port 80

에 의한 결과 tail /var/log/apache2/access.log

127.0.0.1 - - [02/Aug/2013:16:22:01 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:16:22:02 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /~kaiyin HTTP/1.1" 403 501 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:36:26 +0200] "GET /favicon.ico HTTP/1.1" 404 499 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:36:26 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /~kaiyin HTTP/1.1" 403 501 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"

에 의한 결과 tail /var/log/apache2/error.log

[Fri Aug 02 21:05:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:05:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:54 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:54 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /~kaiyin denied
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /~kaiyin denied
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico

사용자를위한 public_html디렉토리가 있습니까? 아파치를 실행하는 사용자에게 읽을 권한이 있습니까?
jordanm

@jordanm 예, 755로 설정했으며 777도 시도했습니다.
qed

답변:


8

public_html디렉토리 그래서 사용자가 아파치가 액세스 할 수 있습니다로 실행되는 것으로이 같은 사용 권한이 필요합니다 그것을 :

$ chmod -R 755 ~/public_html

여전히 작동하지 않습니까?

Apache 오류 로그를 보면 다음과 같은 줄이 나타날 수 있습니다.

[2013 년 8 월 2 일 금요일 21:06:59] [오류] [클라이언트 127.0.0.1] (13) 권한 거부 : / ~ kaiyin에 대한 액세스가 거부되었습니다.

이것은이 예제에서 Apache가 사용자의 디렉토리 (~ kaiyin)를 탐색 할 권한이 없음을 알려줍니다.

이 문제를 해결하는 방법?

Apache가 public_html아래에 있는 폴더에 액세스 할 수 있도록 Apache가 구성원 인 그룹에 대해 읽기 + 실행 비트가 설정되어 있는지 또는 다른 읽기 + 실행 비트가 사용자 디렉토리에 설정되어 있는지 확인해야 합니다.

/home
|-- [drwxr-x---]  /home/sam

/home/sam
|-- [drwxr-xr-x]  /home/sam/public_html

참고 문헌


나는 이미 그렇게했지만 403은 여전히 ​​금지되어 있습니다.
qed

@CravingSpirit-아파치 로그 ( /var/log/httpd/access.log) 및 ( /var/log/httpd/error.log)를 추가하여 추가 메시지가 있는지 확인합니다.
slm

게시물에 로그를 추가했습니다.
qed

@CravingSpirit-~ kaiyin`에 대한 액세스가 거부되었음을 알 수 있습니까? Apache 사용자는 사용자의 최상위 디렉토리에 액세스 할 수 없습니다. 액세스하려면 읽기 + 실행 권한이 필요합니다.
slm

2
실제로, 당신은 거의 확실히 755를 필요로하지 않습니다. 711 또는 710 그룹 www-data는 다음의 부모에 대해해야합니다 public_html. 파일 목록이 필요하지 않으면 public_html에서도 수행됩니다. 그렇지 않으면 Apache도 읽어야합니다 (711/710이 아닌 755/750).
CVn

1
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root

  <Directory /home/*/public_html>
    AllowOverride All
    Options MultiViews Indexes SymLinksIfOwnerMatch
    <Limit GET POST OPTIONS>
      # Apache <= 2.2:
      #Order allow,deny
      #Allow from all

      # Apache >= 2.4:
      Require all granted
    </Limit>
    <LimitExcept GET POST OPTIONS>
      # Apache <= 2.2:
      #Order deny,allow
      #Deny from all

      # Apache >= 2.4:
      Require all denied
    </LimitExcept>
  </Directory>
</IfModule>

의 설정이 올바른지 확인하십시오 /etc/apache2/mods-enabled/userdir.conf. 내 public_html을 chmodding 한 후 권한이 거부 된 후을 확인하기로 결정했습니다 userdir.conf. 이전 아파치 버전과 최신 버전에 대한 설정이 있음을 알았습니다. 최신 버전을 사용 중이므로 새로운 설정을 사용할 수 있었고 이제는 모두 정상적으로 작동합니다.


Apache <= 2.2 정보를 포함 해 주셔서 감사합니다. 그것이 작동하지 않는 이유입니다.
Wowfunhappy

0

또한 /etc/hosts파일을 사용 하여 임시 URL이 필요 없습니다. 테마 또는 플러그인 (있는 경우)에 전체 URL에 대한 참조가있는 경우 사이트가 올바른 형식으로 컨텐츠를 표시하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.