Apache에서 ~ / Sites 내의 sym-linked 디렉토리에 대한 액세스를 허용해야합니다. 나는 이와 같은 디렉토리를 Symlinked
ln -s ~/path/to/the/source/directory/ ~/Sites/source-link-here
이제 GET 요청을 실행할 때마다 403 응답이 표시됩니다.
curl http://localhost/~username/source-link-here/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /~username/source-link-here
on this server.</p>
...
아파치에게 심볼릭 링크 된 디렉토리에 액세스 할 수 있도록 알리는 방법과 로컬 호스트에서 발생한 요청에 대해서만 아파치에게 알리도록하려면 어떻게해야합니까?
도움을 주시면 감사하겠습니다.
친애하는
로버트
답변
여기에 내가하려는 일을 정확히 수행하는 방법을 알아 내려고 할 때 쓴 블로그 게시물 이 있습니다.
- 시스템 프리 프레즌스 —> 공유 —> 웹 공유 활성화로 이동하여 MAC에서 웹 공유를 활성화하십시오.
-
/ private / etc / apache2 / users에있는 username.conf 파일을 편집하고“FollowSymLinks”지시문을 추가하십시오.
<디렉토리 "/ Users / yourUserName / Sites /"> 옵션 인덱스 MultiViews FollowSymLinks AllowOverride 없음 주문 허용, 거부 모두 허용 </ Directory>
-
/private/etc/apache2/httpd.conf 파일을 편집하고 다음과 같이“# Virtual hosts”아래 행이 주석 처리되지 않았는지 확인하십시오.
/private/etc/apache2/extra/httpd-vhosts.conf 포함
-
/private/etc/apache2/extra/httpd-vhosts.conf 파일을 편집하고 다음을 추가하십시오.
<VirtualHost * : 80> <디렉토리 /Users/yourUserName/Sites/MyWebSite.com> 옵션 + FollowSymlinks + SymLinksIfOwnerMatch AllowOverride All </ Directory> DocumentRoot / 사용자 / 사용자 이름 / 사이트 / MyWebSite ServerName MyWebSite.local </ VirtualHost>
-
/ etc / hosts 파일을 편집하여 맨 위에 추가하십시오 :
127.0.0.1 MyWebSite.local
-
코드 디렉토리를 Sites 디렉토리에 링크하기 위해 Symlink를 만드십시오.
ln -s ~ / 코드 / MyWebSite ~ / Sites / MyWebSite
-
아파치 다시 시작
답변
실제로 Emjay의 답변에서 첫 두 단계와 아파치 재시작이 필요합니다. 다음은 나를 위해 일한 것입니다.
-
사용 웹 공유 로 이동하여 MAC에이 시스템 Prefrences -> 공유 -> 확인이 가능 웹 공유를
-
username.conf
에있는 파일을 편집/private/etc/apache2/users
하고 FollowSymLinks 지시문을 추가하십시오 .<Directory "/Users/yourUserName/Sites/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
-
아파치 설정 확인
sudo apachectl -t
-
아파치를 다시 시작
sudo apachectl 다시 시작
이제 Apache는 Sites
디렉토리 아래의 심볼릭 링크를 제공합니다 .
답변
403 forbidden
오류 가 발생했습니다. 내 문제를 해결 한 것은에서 httpd-vhosts.conf
아래 구성을 바꿨습니다.
<Location "/modulename">
Order allow,deny
Allow from all
</Location>
와
<Location "/modulename">
Require all granted
</Location>
모든 위치 태그에 대해 동일했습니다. 권한 문제가 해결되었습니다.
답변
Options FollowSymLinks
적절한 컨테이너에 대한 httpd.conf
-
conf에서 DocumentRoot 문자열을 찾아 값을 기억하십시오.
<Directory "docroot here">...</Directory>
옵션 문자열에 대한 섹션 내용을 확인하십시오 . 옵션 누락-문자열 추가Options FollowSymLinks
, 존재하지만 FollowSymLinks를 따르지 않은 경우 :이 매개 변수를 추가하여 smth와 유사하게하십시오Options Indexes FollowSymLinks
. 구성을 수정 한 후 Apache를 다시 시작하십시오. 시험 결과, 여기에 쓰십시오 -
아파치 문서 읽기
답변
때로는 다음과 같은 경우에 발생합니다.
- 원본 폴더가 NTFS 파일 시스템에 있습니다
- 이미 생성 된 폴더를 사용중인 경우 다른 소유자 (이전 소유자 또는 설치)와 다른 권한을 가진 폴더를 사용하는 경우
ext4 파일 시스템에 새 폴더를 만들고에 대한 심볼릭 링크를 만들어이 문제를 해결했습니다 /var/www
.