2011-11-10 2 views
4

is_dir()이 dir 인 경우에도 false를 반환하는 이유는 무엇입니까?is_dir이 디렉토리 일 때라도 false를 반환합니까?

반환하지 오류

$path_mysql = '/var/lib/mysql/'; 
if(!is_dir($path_mysql)){ 
    echo 'error'; 
} 

반환 오류

$path_mysql = '/var/lib/mysql/domain.com/'; 
if(!is_dir($path_mysql)){ 
    echo 'error'; 
} 

/var/lib/mysql/domain.com/이 exsits을 수행하지만, is_dir()는 false를 돌려!? 그것은 /var/lib/mysql/domain.com/이 존재하는지 여부를 확인 할 수 있기 때문에 그 (권한 문제를) 할 수있는 충분한 권한이 없기 때문에

나는, 아마도 퍼티 및 WinSCP에

모두를 통해 디렉토리에 액세스 할 수
+0

사용 권한을 확인 했습니까? – gustavotkg

+0

'/ var/lib/mysql' 디렉토리는 일반적으로 mysql 사용자 만 읽을 수 있습니다. 아파치와 PHP는 그것들에 접근 할 수 없다. –

+0

'domain.com /'을 즉석에서 작성하는 경우 확인 전에 'clearstatcache()'를해야 할 수도 있습니다. – Jon

답변

4

를 얻을 수 있습니다.

확인 아마 권한이 PHP 스크립트를 실행하는 사용자에 대한 /var/lib/mysql/ 디렉토리의 실행 (목록) 권한 (아마 www-data의)

+0

어떻게 dir에 액세스 할 수 있습니까? 이진 파일을 백업해야합니다. – clarkk

+0

좋은 생각인지 모르겠습니다. 왜 MySQL 데이터베이스 백업에 mysqldump를 사용하지 않습니까? –

+0

mysqldump를 사용하여 바이너리 데이터 파일을 복사 할 수 있습니까? – clarkk

0

- MySQL의 데이터 DIRS가 MySQL 사용자가 소유합니다. 웹 서버에서이 테스트 스크립트를 실행하는 경우 웹 서버의 UID에 해당 디렉토리의 내용을 읽을 권한이 없으므로 is_dir은 false를 반환합니다.

관련 문제