2010-12-04 2 views
0

PHP로 심볼릭 링크를 만들고 싶습니다.PHP symlink() : 쓰기 권한이있는 폴더에서 권한이 거부되었습니다.

심볼릭 링크는 업로드 된 파일과 동일한 위치에 있어야합니다. 괜찮습니까?

실제 문제는 symlink()을 사용할 때 PHP가 쓸 수있는 디렉토리가 $_FILES 인 것과 동일한 디렉토리에서 권한 거부 오류가 발생한다는 것입니다.

내가 테스트 파일로 text.txt을 사용하여 테스트를 수행 한

하고 심볼릭 링크로 link은 :

symlink("repository/text.txt", "link");

PHP 스크립트는 content/folder/script.php에서 실행됩니다. 여기서 내가 뭘 잘못하고 있니? 심 링크에 파일 확장자가 필요한가요? 아니면 의심 스럽습니까?

+1

'link'에 절대 경로를 지정하지 않았다면 PHP는 현재 작업 디렉토리를 사용합니다. – ajreal

+0

그게 내 문제 였어. 아래의 goreSplatter의 게시물을 참조하십시오 .-) – Bojangles

답변

2

이 당신이

symlink("repository/text.txt", "link"); 

을 사용하고있는 코드가 그리고 당신의 스크립트는 심볼릭 링크가 스크립트에.

절대 경로를 사용하여 시도 실행 디렉토리에 생성됩니다 /var/www/scripts/script.php로 실행합니다.

+0

고맙습니다. 문제는 두 번째 논증 ('link')이 상대적인 것이지 절대적이지 않다는 것입니다. 모두'symlink ("repository/file.txt", "repository/link");로 수정되었습니다. – Bojangles