2016-06-24 5 views
0

편집 : 이 아니요 복제본 open_basedir restriction in effect. File(/) is not within the allowed path(s):입니다. 이 문제는 PHP 설정과는 아무런 관련이 없습니다. 동일한 웹 사이트 구조와 동일한 PHP 설정으로 여러 웹 사이트가 작동하기 때문입니다. 이 질문의 마지막 네 단락에서 설명했듯이 전체 질문을 복제본으로 표시하기 전에 읽으십시오. 또한 다른 질문에 대한 답변은 Apache에 맞춰져 있지만 CPgin이나 httpd.conf는 사용하지 않는 Nginx를 사용하고 있습니다.경고 : is_dir() : open_basedir 제한 사항이 적용됩니다. 파일 (/)이 허용 된 경로 내에 있지 않습니다.

수동으로 Wordpress 사이트를 새 서버로 옮겼습니다.

Warning: is_dir(): open_basedir restriction in effect. File(/) is not 
    within the allowed path(s): 
    (/var/hpwsites/u_bcsautoborg:/usr/share/pear/) in 
    /var/hpwsites/u_bcsautoborg/website/html/webroot/wp-includes/functions.php on 
line 1585 

는 내가 전에 사이트와 유사한 오류가 있었다, 그러나 그것은 upload 폴더가 워드 프레스 설정에서 올바르게 연결되지 인해이었다 마지막 하나, 나는이 오류를 받고 있어요. 따라서 오류는 다른 줄 번호를 나타냅니다.

while ('.' != $target_parent && ! is_dir($target_parent)) { 

및 큰 블록의 일부이다 :

라인 1,585은

/* 
    * Safe mode fails with a trailing slash under certain PHP versions. 
    * Use rtrim() instead of untrailingslashit to avoid formatting.php dependency. 
    */ 
$target = rtrim($target, '/'); 
if (empty($target)) 
    $target = '/'; 

if (file_exists($target)) 
    return @is_dir($target); 

// We need to find the permissions of the parent folder that exists 


and inherit that. 
    $target_parent = dirname($target); 
    while ('.' != $target_parent && ! is_dir($target_parent)) { 
     $target_parent = dirname($target_parent); 
} 

이것은 워드 프레스 기능 파일이다. 코드를 살펴보면, 문제는 $target_parent으로 가정 할 수 있습니다. 그러나 나는 PHP가별로 좋지 않기 때문에 그게 무엇을 의미하는지 알지 못합니다.

이제 open_basedir restriction 오류가 있다는 것을 알고 있습니다. 일반적으로 PHP.ini 파일에 잘못된 보안 설정이있어서 PHP 기능이 필수 폴더에 액세스 할 수 없습니다. 그러나, 나는 그것이 여기의 경우가 아니라고 확신한다.

이것은 다른 모든 사이트와 동일한 구조로 제작 된 작동 웹 사이트입니다. 모두가 아파치 서버에서 호스팅되었고, 나는 Nginx 서버로 이동하고 있으며, 모두 자신의 MySQL 데이터베이스와 함께 자신의 디렉토리를 가지고 있으며, 모든 디렉토리는 웹 사이트 특정 폴더 당연하지). 다른 모든 웹 사이트는 이것과 같은 설정에서 완벽하게 작동합니다. 그리고 나는 php.ini와 같은이 문제를 상상할 수 없습니다.

이전의 경우 'uploads'폴더에서 문제가 발생 했더라도 wp-admin으로 들어가서 Wordpress 설정을 통해 업로드 폴더 위치를 변경할 수있었습니다. 그러나, 나는 무한대로 중복되는 위의 오류만을 얻으므로 현재 어떤 페이지로도 들어갈 수 없습니다.

PHPmyAdmin을 통해 모든 플러그인을 사용할 수 없게했지만 아무 소용이 없습니다. 분명히, 나는 SO, WordPress 포럼, Google 및 DuckDuckGo에 대한 해결책을 모색했습니다. 나는 많은 비슷한 문제를 발견했지만, 내가 찾은 해결책 중 어느 것도 나를 위해 일하지 못했다.

아무도 원인을 알 수없는 사람이 있습니까?

+1

$ target의 출처를 모르지만 허용 된 파일의 경로를 나타내는 문자열 대신 비어 있거나 '/'와 같은 것으로 보입니다. 전체 소스 코드 없이는 말할 수 없지만 여기에 Wordpress 소스를 게시 할 수 없다는 것을 이해합니다 :) – Derek

+1

'$ target'은 어디에서 오는 것입니까? 앱에 루트 디렉토리에 대한 액세스 권한을 부여하지 않으려면 오류가 발생하는 것입니다. – Jonathan

+1

https://github.com/WordPress/WordPress/blob/master/wp-includes/functions.php에서 소스를 찾았지만 무슨 일이 일어나고 있는지 알기 위해 백 트레이스가 필요합니다 ... – Derek

답변

2

경고 : is_dir() [function.is-dir] : open_basedir 제한 사항이 적용됩니다. 파일 (/)이 허용 된 경로 내에 있지 않습니다.

위의 오류 메시지가 Wordpress 블로그에 표시되는 경우 이전 호스팅에서 사이트를 이전 한 것으로 추정됩니다 공급자 및 홈 디렉터리 경로가 다릅니다. 다행히도이 수정은 매우 간단합니다.귀하의 워드 프레스 대시 보드에

로그인, '설정'다음 '기타'를 클릭하고 "이 폴더에 저장 업로드가"옵션이 설정되어 있는지 확인하십시오

WP - 콘텐츠/업로드

하는 경우 이미 'wp-content/uploads'(따옴표 제외)로 설정되어 있으면 '저장'버튼을 누르기 만하면 Wordpress가 홈 디렉토리 경로를 다시 계산합니다. 오류가 사라지고 사이트가 정상적으로 작동해야합니다.

+0

질문에 대답 해 주셔서 감사하지만 질문에 설명 된대로 이미 다른 웹 사이트에서 해본 적이 있지만이 웹 사이트에서는 대시 보드에 로그인 할 수 없었습니다. – Tijmen

2

나는 동일한 문제가있어서 Google 검색을 통해이 문제가 발생했습니다. @ hicham의 위의 의견은 올바른 길로 나를 잡았습니다. 다른 사람들이보고있는 경우를 대비하여 어떻게 해결할 수 있었는지 알려줍니다.

  • 이 이전 호스트의 경로로 하나 개의 행을 반환해야 wp_options 테이블
  • 검색을 클릭에

    1. 을 클릭하고 "OPTION_NAME"필드에 "upload_path"를 입력 : 나는 다음과 같이 phpMyAdmin을 통해 데이터베이스를 편집 "option_value"로 지정하십시오. 편집 할 값을 두 번 클릭하고 새 호스트의 "업로드"폴더 경로로 변경합니다 (FTP 또는 호스트의 제어판을 통해 알아낼 수 있어야 함).
  • +0

    감사합니다. Wordpress 대시 보드에 액세스 할 수없는 사람들을 위해, 내가 한 것처럼 모든 것을 다시 업로드하는 것보다 나은 해결책 일 수 있습니다. – Tijmen