2010-01-11 5 views
1

Plesk에서 관리하는 웹 서버에 PHP가 설치되어 있습니다. 나는 명백하게 작동하지 않는 절대 경로로 좁혀진 PHP include_path 문제가 발생했습니다. 내가 디렉토리 목록, 다음과 같은 작업을 수행하려고하면Plesk의 PHP - 절대 디렉토리를 볼 수 없습니다.

그래서 :

echo "<h3>Directory listing of .</h3>"; 
foreach (new DirectoryIterator('.') as $fileInfo) { 
    if($fileInfo->isDot()) continue; 
    echo $fileInfo->getFilename() . "<br>\n"; 
}; 

을하지만이 더 출력을 제공하지 않습니다. 거기에 파일이 있습니다.

echo "<h3>Directory listing of /var/www</h3>"; 
foreach (new DirectoryIterator('/var/www') as $fileInfo) { 
    if($fileInfo->isDot()) continue; 
    echo $fileInfo->getFilename() . "<br>\n"; 
}; 

출력 :

Directory listing of . 
.htaccess 
index.php 
try.php 

Directory listing of /var/www 

어떤 아이디어가?

답변

2

다중 사이트 서버 설정 인 경우 이는 정상적인 동작 일 수 있습니다. Plesk (또는 시스템의 다른 일부)는 PHP 인스턴스를 현재 사이트로 제한하고 일반 var/www 디렉토리를 들여다 볼 수 없습니다.

PHP는 어떤 사용자로 실행됩니까? 해당 사용자에게/var/www에 대한 액세스 권한이 있습니까? Plesk를가 을 httpd.conf이 같은 변수를 추가합니다

+0

감사합니다. 방금 PHP 사용자를 확인하고 몇 가지 테스트를 실행했습니다.GID UID = 48 (아파치) = 48 (아파치) 그룹 PHP는 문서 루트의/var/www /에서 가상 호스트//httpdocs하지만은/var의 LS를 할 수 = 48 (아파치), 2521 (psaserv)/www/vhosts//젠드 :( 명령 줄에서 : drwxr-x --- 12 reportingadmin psaserv 4096 1 월 11 일 12:54 httpdocs drwx ------ 5 reportingadmin root 100 12 월 16 일 15 : 39 개인 drwxr-xr-x 11 reportingadmin psaserv 4096 Nov 23 19:54 Zend (성가신 주석 형식 지정이 실패합니다!) – Dizzley

1

은 다음과 같습니다

php_admin_value open_basedir /var/www/vhosts/_web_domain_/httpdocs/:/tmp/ 

그래서 당신은 당신의 잠금 httpdocs 및 /tmp를에서 모든 상위 폴더를 나열 할 수 없습니다. 루트 ssh 계정을 사용하여 구성 파일에 manualy를 추가 할 수 있습니다.

사이트의 httpd 구성 파일을 /var/www/vhosts/_your_domain_/config/에서 편집하십시오. _httpd.include (Plesk 10은 타임 스탬프와 함께 변경되는 동적 이름입니다).

여기서 php_admin_value open_basedir을 검색하고 다음을 사용하여 액세스 할 폴더를 추가 할 수 있습니다. separator. 마찬가지로 :

php_admin_value open_basedir /var/www/vhosts/_web_domain_/httpdocs/:/tmp/:/var/www 

하지만, 모든 웹 사이트에 대한 폴더 액세스를 추가 할 는/usr/share/배 폴더처럼, 당신은 PLESK 패널 파일을 편집해야합니다합니다.

편집 /usr/local/psa/admin/conf/templates/default/service/php.php 변경에서 :

echo "php_admin_value open_basedir {$OPT['dir']}/:/tmp/\n"; 

사람 :

echo "php_admin_value open_basedir {$OPT['dir']}/:/usr/share/pear/:/tmp/\n"; 

Remamber 것 폴더에 모든 웹 사이트에 대한 액세스 권한을 부여하면 서버 보안이 깨질 수 있습니다. 자신의 책임하에 수행하십시오. plesk가 업데이트되면 변경 사항이 지워지는 것을 기억하십시오.

관련 문제