2010-02-07 5 views
8

쉘 액세스가없는 램프 스택의 공유 호스팅 패키지에 있습니다.403 웹 루트의 심볼릭 링크에서 금지됨

PHP의 symlink() 기능을 사용하여 심볼릭 링크를 만들 수 있습니다.

의 내 웹 루트가 나는 금지 (403)을 얻을 것입니다 이유는 내가 /home/www/user1/public/real_dir

라는 이름의 실제 디렉토리가 내가 real_dir

를 가리키는 /home/www/user1/public/fake_dir라는 이름의 심볼릭 링크를 생성한다고 가정 해 봅시다 /home/www/user1/public

입니다 가정 해 봅시다 www.mydomain.com/fake_dir에 액세스하려고 시도했지만 www.mydomain.com/real_dir에 액세스하려고 시도하지 않을 때?

PHP에서 파일을 만들 때 그 파일에 액세스 할 수 있기 때문에 권한상의 문제가 있어서는 안됩니다.

.htaccess (켜져 있었지만)에서 전환 FollowSymlinks을 껐다가 켜 봤지만 운이 없었습니다.

FollowSymlinks은 .htaccess 파일에서 덮어 쓸 수 없다고 정의 할 수 있습니까? 아니면 아파치에서 Symlinks로 작업 할 때 알아야 할 것이 있습니까?

답변

4

아파치는 파일 시스템의 디렉토리에 액세스 할 수 있도록 구성되어야합니다. 이는 시스템 관리자가 < 디렉토리> 지시어를 아파치 설정 파일 (httpd.conf)에 삽입하여 수행해야합니다.

실제 디렉토리가 웹 루트 내에 있으므로 액세스 할 수 있어야하지만 FollowSymLinks가 디렉토리에 대해 활성화되어 있지 않을 수도 있습니다.이 디렉토리는 < 디렉토리 지시문에 추가되어야합니다.

http://httpd.apache.org/docs/2.0/mod/core.html#directory

+0

그런 식으로 구성되어 있지 않고'FollowSymlinks'가 꺼져 있다면 (타겟이 웹 루트에도 있지만) symlink에 액세스하려고하면 403이 발생합니까? 이것이 이유입니까? –

+0

죄송합니다. 질문을 다시 읽었을 때 실제 디렉토리가 웹 루트에 있다는 것을 알았 기 때문에 액세스 할 수 있지만 FollowSymLinks는 활성화되지 않았을 수 있습니다. 이를 반영하여 답변을 업데이트했습니다. – Sam

+0

-1 이것은 여전히 ​​OP의 질문에 대한 답변이 아닙니다. OP는'FollowSymlinks' 옵션을 완벽하게 인식합니다. 그러나 그는'.htaccess'에서 이것을 설정하는 것이 httpd.conf에서 무효화 될 수 있는지 묻습니다. –

0

이 가능 SELinux 보안 문제를 참조하십시오.

cat/selinux/enforce 값이 1이면 0으로 설정 한 다음 아파치를 다시 시작하십시오.

+0

OP 질문에 첫 줄에 설명 된대로 OP에 셸 액세스 권한이 없습니다. –

관련 문제