PHP의 ftp_site() 함수는 FTP 서버에 SITE 명령을 전송하는 함수입니다. SITE 명령은 서버마다 지원 범위가 다르며, 주로 파일 권한(chmod) 변경이나 그룹 멤버십 설정 같은 운영체제(OS) 고유의 기능을 처리할 때 사용됩니다.
문법(Syntax)
ftp_site(conn, command);
매개변수(Parameters)
conn − FTP 연결 리소스를 나타냅니다.
command − 실행할 SITE 명령입니다. 이 명령은 서버마다 다를 수 있으며, 파일 권한 변경이나 그룹 멤버십 관리와 같은 OS 특화 기능을 수행하는 데 사용됩니다.
반환값(Return)
ftp_site() 함수는 명령이 성공적으로 실행되면 TRUE를, 실패하면 FALSE를 반환합니다.
예제(Example)
다음은 ftp_site() 함수를 사용하여 파일 권한을 777로 변경하는 예제입니다 −
<?php
$ftp_server = "192.168.0.4";
$ftp_user = "username";
$ftp_pass = "gfhgfj236k";
$conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($conn, $ftp_user, $ftp_pass);
if (ftp_site($conn, "chmod 777 myfile.txt")) {
echo "명령이 성공적으로 실행되었습니다!";
} else {
echo "명령 실행에 실패했습니다!";
}
// 연결 종료
ftp_close($conn);
?>
예제 설명
위 코드는 다음과 같은 순서로 동작합니다.
1단계:
ftp_connect()로 지정된 FTP 서버(192.168.0.4)에 접속합니다. 접속에 실패하면die()가 호출되어 스크립트가 종료됩니다.2단계:
ftp_login()으로 사용자 이름과 비밀번호를 통해 로그인합니다.3단계:
ftp_site()로chmod 777 myfile.txt명령을 전송하여 myfile.txt 파일의 권한을 읽기·쓰기·실행 모두 허용으로 변경합니다.4단계: 결과에 따라 성공 또는 실패 메시지를 출력하고, 마지막에
ftp_close()로 FTP 연결을 닫습니다.
참고 사항
SITE 명령은 표준 FTP 프로토콜의 일부이지만, 실제로 지원되는 명령은 FTP 서버 소프트웨어와 운영체제에 따라 달라집니다.
파일 권한 변경 외에도 서버에서 제공하는 다양한 SITE 명령이 있으므로, 사용 중인 서버의 문서를 확인하는 것이 좋습니다.
보안상 민감한 정보인 FTP 비밀번호는 코드에 직접 하드코딩하지 말고, 환경 변수나 별도의 설정 파일로 관리하는 것이 안전합니다.