Ubuntu Server를 운영할때 특정 웹어플리케이션을 설치 또는 실행하는 과정에서 다음의 오류가 난다면?
Warning: SAFE MODE Restriction in effect
이는 PHP.INI에서 SAFE MODE가 활성화되어 있는 경우 실제 현재 실행되는 PHP파일과 이 파일에서 함수로 생성되는 PHP파일의 소유주가 다를 경우 나타나는 오류메시지 입니다. Ubuntu는 기본적으로 Apache2를 웹서버를 사용하고 있는데, 웹파일들은 Apache2의 계정으로 구동, 작성됩니다. 보안을 위해서 시스템 사용자명을 사용하지 않는데, 문제는 SFTP나 SSH로 시스템에 로그온 하여 파일을 전송하거나, 작성한 경우 로그온한 사용자명과 그룹으로 파일의 소유주가 생성되어 Apache2의 기본 소유주인 www-data와 달라진다는 것에 있습니다.
가령, nooree라는 계정명으로 SFTP나 SSH에 접속하여 파일을 전송, 작성하면 소유주와 그룹은 각각 nooree nooree가 됩니다. 물론 브라우징 및 실행에는 아무런 문제가 업습니다만, 문제는 어떤 파일, 예로 make_dir.php라는 파일이 소유주와 그룹이 nooree nooree일 때 이 파일을 실행하여 어떤 파일을 작성할때, 가령 sample.txt를 작성하면, 소유주와 그룹은 www-data www-data가 되어 버립니다. 이런 경우 위의 오류메시지가 나오므로 이런경우 PHP.INI에서 Safe mode를 Off하거나(보안상 비추천), sample.txt 또는 해당 디렉토리의 소유주와 그룹을 nooree nooree와 같이 실행되는 PHP의 파일소유주와 그룹과 동일하게 강제로 변경해 주면 됩니다.