BOARD

문제 해결

PHP chmod 함수 사용 시 파일 권한 설정 오류 해결 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 0회 작성일 26-09-12 19:03

본문

문제 증상

PHP의 chmod() 함수를 사용하여 파일이나 디렉토리의 권한을 변경할 때, intval($mode, 8) 방식을 사용하면 의도한 권한 값이 아닌 잘못된 권한이 적용되는 문제가 발생할 수 있습니다. 이는 문자열로 된 모드 값이 정수 변환 과정에서 정확한 8진수 모드로 처리되지 않기 때문입니다.

해결 방법

문자열 형태의 권한 모드(예: '0644')를 8진수로 정확하게 변환하려면 intval() 대신 octdec() 함수를 사용해야 합니다. octdec() 함수는 8진수 문자열을 10진수 정수로 변환하여 chmod() 함수가 올바른 권한을 적용할 수 있도록 돕습니다.

코드 적용 예시

다음은 octdec() 함수를 사용하여 .htaccess 파일의 권한을 안전하게 설정하는 예시입니다.

$mode = '0644';
$file = 'data/.htaccess';

if (file_exists($file)) {
    chmod($file, octdec($mode));
}

적용 후 점검

코드를 적용한 후에는 서버의 터미널에서 ls -l 명령어를 입력하거나 FTP 클라이언트의 파일 속성 창을 통해 해당 파일의 권한이 의도한 값(예: 644)으로 정확히 변경되었는지 확인하십시오.

복구 방법

설정 변경 전 기존 파일 권한을 기록해 두거나, 문제가 발생할 경우 chmod() 함수를 사용하여 권한을 이전 상태로 수동 복구하십시오. 권한 복구 시에도 동일하게 octdec() 함수를 사용하는 것이 안전합니다.

댓글목록

등록된 댓글이 없습니다.