Mac OS X Lion 10.7.2에서 Apache를위한 ~ / Sites /의 기호 링크에 액세스하는 방법 Symlinked ln -s ~/path/to/the/source/directory/ ~/Sites/source-link-here 이제 GET 요청을

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>
...

아파치에게 심볼릭 링크 된 디렉토리에 액세스 할 수 있도록 알리는 방법과 로컬 호스트에서 발생한 요청에 대해서만 아파치에게 알리도록하려면 어떻게해야합니까?

도움을 주시면 감사하겠습니다.

친애하는

로버트



답변

여기에 내가하려는 일을 정확히 수행하는 방법을 알아 내려고 할 때 쓴 블로그 게시물 이 있습니다.

  1. 시스템 프리 프레즌스 —> 공유 —> 웹 공유 활성화로 이동하여 MAC에서 웹 공유를 활성화하십시오.
  2. / private / etc / apache2 / users에있는 username.conf 파일을 편집하고“FollowSymLinks”지시문을 추가하십시오.

    <디렉토리 "/ Users / yourUserName / Sites /">
        옵션 인덱스 MultiViews FollowSymLinks
        AllowOverride 없음
        주문 허용, 거부
        모두 허용
    </ Directory>
    
  3. /private/etc/apache2/httpd.conf 파일을 편집하고 다음과 같이“# Virtual hosts”아래 행이 주석 처리되지 않았는지 확인하십시오.

    /private/etc/apache2/extra/httpd-vhosts.conf 포함
    
  4. /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>
    
  5. / etc / hosts 파일을 편집하여 맨 위에 추가하십시오 :

    127.0.0.1 MyWebSite.local
    
  6. 코드 디렉토리를 Sites 디렉토리에 링크하기 위해 Symlink를 만드십시오.

    ln -s ~ / 코드 / MyWebSite ~ / Sites / MyWebSite
    
  7. 아파치 다시 시작


답변

실제로 Emjay의 답변에서 첫 두 단계와 아파치 재시작이 필요합니다. 다음은 나를 위해 일한 것입니다.

  1. 사용 웹 공유 로 이동하여 MAC에이 시스템 Prefrences -> 공유 -> 확인이 가능 웹 공유를

  2. username.conf에있는 파일을 편집 /private/etc/apache2/users하고 FollowSymLinks 지시문을 추가하십시오 .

    <Directory "/Users/yourUserName/Sites/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    
  3. 아파치 설정 확인

    sudo apachectl -t

  4. 아파치를 다시 시작

    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

  1. conf에서 DocumentRoot 문자열을 찾아 값을 기억하십시오. <Directory "docroot here">...</Directory>옵션 문자열에 대한 섹션 내용을 확인하십시오 . 옵션 누락-문자열 추가 Options FollowSymLinks, 존재하지만 FollowSymLinks를 따르지 않은 경우 :이 매개 변수를 추가하여 smth와 유사하게하십시오 Options Indexes FollowSymLinks. 구성을 수정 한 후 Apache를 다시 시작하십시오. 시험 결과, 여기에 쓰십시오

  2. 아파치 문서 읽기


답변

때로는 다음과 같은 경우에 발생합니다.

  • 원본 폴더가 NTFS 파일 시스템에 있습니다
  • 이미 생성 된 폴더를 사용중인 경우 다른 소유자 (이전 소유자 또는 설치)와 다른 권한을 가진 폴더를 사용하는 경우

ext4 파일 시스템에 새 폴더를 만들고에 대한 심볼릭 링크를 만들어이 문제를 해결했습니다 /var/www.