
open_basedir 설정은 PHP가 특정 디렉토리만 읽기/쓰기 허용하도록 제한하는 기능입니다. 하지만 sys_get_temp_dir() 함수는 PHP가 임시 파일을 생성할 때 사용하는 함수로, open_basedir 설정된 디렉토리 외부의 임시 파일을 생성할 수 있습니다.
이러한 문제를 해결하기 위해서는 두 가지 방법이 있습니다.
1. sys_get_temp_dir() 함수를 사용하지 않고 임시 파일을 생성하는 방법입니다. PHP의 임시 파일 생성 함수인 tempnam() 함수를 사용하여 임시 파일을 생성할 수 있습니다. tempnam() 함수는 open_basedir 설정된 디렉토리 내에서 임시 파일을 생성하도록 설정할 수 있습니다.
#hostingforum.kr
php
$temp_file = tempnam('/path/to/open_basedir/dir', 'tmp');
2. open_basedir 설정에서 sys_get_temp_dir() 함수가 생성하는 임시 파일의 디렉토리를 포함시켜야 합니다. open_basedir 설정에서 sys_get_temp_dir() 함수가 생성하는 임시 파일의 디렉토리를 포함시키면, sys_get_temp_dir() 함수가 생성하는 임시 파일은 open_basedir 설정된 디렉토리 내에서 생성됩니다.
#hostingforum.kr
php
open_basedir = "/path/to/open_basedir/dir:/path/to/sys_get_temp_dir/dir"
위의 방법 중 하나를 사용하여 sys_get_temp_dir() 함수가 생성하는 임시 파일을 open_basedir 설정된 디렉토리 내에서 생성할 수 있습니다.
2025-06-12 12:25