2012-02-15 2 views
0

데이터 디렉토리를 웹 루트 외부로 이동하려고합니다. 내 데이터베이스에 파일 경로가 저장되어 있으며 저장된 경로를 변경하지 않고 symlink를 통해 파일을 리디렉션 할 수 있기를 원합니다. 될 것입니다Symlink를 사용하는 PHP/Linux Readfile 경로

/root/webroot/data/file.ext 

그리고 내 데이터베이스 경로 :뿐만 아니라 /root/webroot/data/file.ext

예, 현재 나는이 같은 구조를 가지고있다. 나는 웹 루트의 외부 데이터를 이동하고 싶습니다 그래서 내가 가진 :

/루트/웹 루트/데이터 루트/데이터에 리눅스 스타일의 심볼릭 링크
/root/data/file.ext 
/root/webroot/data -> root/data 

. 이 파일을 설정했지만, 이전에 저장된 경로 (/root/webroot/data/file.ext)에서 readfile을 실행하면 실패합니다. 나는.

readfile('/root/webroot/data/file.ext'); 

내가 돌아올 : :이 이렇게 나는이 경로를 해결하는 데 도움이 할 수있는 일이

Warning: readfile(/root/webroot/data/file.ext) [function.readfile]: failed to open stream: No such file or directory in [file] on line ... 

있습니까?

참고 : 폴더와 파일의 사용 권한은 모두 일치합니다. symlink의 심볼릭 링크는 루트입니다 : root, 루트가 생성되었지만 chown은 작동하지 않는 것 같습니다.

+0

사람이 더 어렵습니다. 'chown -h' –

+0

어리석은 질문이지만, 당신의 심볼릭 링크가 맞습니까? 나는. 당신은 cli에서 그것을 가로 지르는가? 위에서 작성한 내용을 보면 root/webroot/root/data에서 dir을 찾을 수있는 것처럼 보입니다. – Noodles

+1

데이터베이스를 업데이트하는 것이 더 쉽지 않을까요? –

답변

0

어디에서 스크립트를 실행하고 있습니까? . 당신은 최고의 슬래시없이 디렉토리를 호출하는 경우 :

다음
readfile('root/webroot/data/file.ext'); 

당신이 더 나은이 루트에 앉아 같은 디렉토리에서 실행되고 있는지 확인 그러나 당신은 웹 루트에서이 프로그램을 실행하고있는 경우, 당신은 업데이트해야합니다 readfile 경로는 다음과 같습니다.

readfile('data/file.ext'); 
+0

어이, 슬래시가 실제로 문제에 존재합니다 ... "루트"는/home/[사이트 이름]을 의미하기로되어 있습니다. 나는 문제를 업데이트했다. – garromark