[해결방법 총정리] Warning: URL file-access is disabled in the server configuration in
Warning: require_once() [function.require-once]: URL file-access is disabled in the server configuration in ...
Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in ...
Warning: getimagesize() [function.getimagesize.php]: URL file-access is disabled in the server configuration in ...
PHP(워드프레스)에서 files_get_contents, fopen, include 등을 사용할 때 절대 경로가 포함된 파일의 주소를 코드 내에서 사용하려고 하면 위와 같은 애러 메세지를 볼 수 있습니다.
일반적인 PHP 코드에서의 해결 방법 4가지와 워드프레스에서의 해결 방법을 소개합니다.
방법 1. php.ini 파일에 설정 추가
allow_url_fopen = ON |
단점 : 보안상 문제가 생길 수 있으며, 서버 설정을 바꿀 수 없는 경우 적용 불가능
방법 2. .htaccess 에 아래의 코드 삽입
php_flag allow_url_fopen = ON |
단점 : 보안상 문제가 생길 수 있음
방법 3. php 스크립트에 아래의 코드 삽입
ini_set('allow_url_fopen', 'On'); |
방법 4. fopen 대신 curl 사용
$ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, ‘http://www.example.com/mew.php’); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $contents = curl_exec($ch); curl_close($ch); |
위의 방법은 일반적으로 php에서 files_get_contents, fopen등의 함수 사용시 발생할 수 있는 경우에 대한 해결책입니다.
이 애러가 워드프레스에서 발생하는 경우는 아주 간단한 방법으로 해결하실 수 있습니다.
보안 위험을 높이면서 서버 설정을 바꾸실 필요 없습니다.
워드프레스에서 include_once, require_once 시에 애러가 발생하는 경우에 대한 해결 방법!
Warning: require_once() [function.require-once]: URL file-access is disabled in the server configuration in ...
Fatal error: require_once() [function.require]: Failed opening ...
이런 애러는 아래와 같은 상황에서 발생하죠..
require_once ( plugins_url('', __FILE__ ) . "yourcode.php" |
plugins_url('', __FILE__ ) 은 전체 url을 반환하기 때문에, allow_url_fopen이 설정되어 있지 않으면 아래와 같은 이 코드 대신
require_once ( plugin_dir_path( __FILE__ ) . "yourcode.php"; |
를 사용하시면 해결됩니다.