it-swarm-ko.tech

open_basedir 및 파일 업로드

Php.ini에서 open_basedir이 활성화되면 파일 업로드가 Drupal에서 작동하지 않는 문제가 발생했습니다. 상위 디렉토리 open_basedir 목록에 포함되어 있지만 업로드는 여전히 작동하지 않습니다. 필자는 개발 서버 (Windows Server 2008, IIS7 및 PHP 5.3.2 실행)와 XAMPP (Windows 7 Enterprise, Apache 2.2 및 PHP 5.3 실행)를 사용하는 내 PC에서 로컬로 테스트했습니다. 5). 결과는 동일합니다. open_basedir이 비활성화 되 자마자 Drupal 내의 파일 업로드가 완벽하게 작동합니다.

다음은 내가 얻는 오류의 예입니다.

Warning: move_uploaded_file(): open_basedir restriction in effect.
File(public://field/image/example_1.jpg) is not within the allowed path(s):
(K:\content;L:\content;E:\content;E:\Upload_temp) in file_save_upload() 
(line 1528 of E:\content\includes\file.inc).
File upload error. Could not move uploaded file.

내 파일 시스템 설정은 다음과 같습니다.

공용 파일 시스템 경로-sites/default/files/pictures

임시 디렉토리-sites/default/files/pictures/tmp

디렉토리 구조는 E :\content\drupal과 같습니다. 알 수 있듯이 Drupal은 open_basedir의 범위 내에 있습니다. 내가 여기서 무엇을 놓치고 있습니까?

2
machinaetions

Open_basedir이 허용하는 디렉토리 목록에 public : // field/image가 포함되어 있지 않기 때문에 경고가 나타납니다. 링크는 확인되지만 public : // field/image와 같은 외부 경로는 내부 경로로 확인되지 않습니다. 예를 들어 코드가 http://example.com/img_png/image.png 를 읽으려고 시도하고 img_png가 open_basedir 지시문에 의해 수신되면 경고가 표시됩니다.

1
kiamlaluno