2011-12-18 2 views
1

좋아요, 제가 시도한 모든 것, 지금까지 문서 루트를 만들고 싶습니다. httpdocs/[folder]/html 그리고 원하는 파일을 포함하고 있습니다. (require '../[folder]/file.php'] 루트를 지나서 /var/www/vhosts/example.com/httpdocs 이상의 액세스를 할 수 없습니다. 나는 open_basedir에 의해 제한되고 있다는 것을 안다. 왜냐하면 값이 여전히 httpdocs/[folder]/htmlphpinfo()이지만, 내게는 그 값을 바꿀 수 없다.문서 루트 (Plesk 10) 외부에 파일을 포함하려고 시도합니다.

이것은 내가 지금까지 해봤습니다 : How to include file outside document root? - 이것을보고 conf 디렉토리에 앉아서 파일을 재구성하고 아파치를 다시 시작한 'vhost.conf'를 만들었습니다. . 좋은 소식이지만 조금 오래된 것 같습니다. 나는 '을 httpd.conf'꺼내 다른 conf의에서 같은 라인을 추가하여 편집 아무것도

을 -

는 나는 어디에, 재구성, 다시 최대를 업로드하지 다시 시작, open_basedir = '/var/www/vhosts/example.com/httpdocs에 php.ini 파일 자체를 편집 파일, (vhost.conf), 다시 넣으십시오. 아무 것도 아니고, 나는 그 다음에 godaddy가 말한 것을하려고했습니다. http://help.godaddy.com/article/1616 그리고 행 php_admin_value open_basedir none' to 'httpd.conf을 추가했습니다. 행운도 없습니다.

지금은 0435이며 겨우 눈을 뜨고있을 수 있습니다.이 사이트는 내일 2000 년에 출시 될 예정입니다. 기꺼이/읽거나 도움이 될 수있는 사람에게 미리 감사드립니다.

업데이트 : 빠른 응답 감사합니다, 여기에 가장 좋은 대답은 내가 당신에게 줄 수 있습니다

가 당신에게 오류를 제공합니까?

예, 내가 특별히, 서버 오류가 내 서버 오류 로그를 통해 :

PHP 경고 : 필요() [function.require] : 효과의 open_basedir 제한을. 파일 (/ var/www/vhosts/[example.com]/httpdocs/[폴더]/[보안 PHP 파일이있는 폴더]/[file.php])이 허용 된 경로 내에 있지 않습니다.

그래서 저는 99.99 %의 open_basedir 제한 때문입니다.

웹 서버가 vhosts /?의 소유자로 설정되어 있습니까?

내가, 내가 서버를 제어하는 ​​일종의 새로운 확신 그리고 난 정말이 정확히 무엇을 의미하는지 모르지만 나는 v10.3.1 패러랠 Plesk를 실행 고대 디를 통해 가상 전용 서버를 가지고, 내가 그랬어 위의 파일은 Shell SSH를 통해 이동합니다.

Plesk에서 '문서 루트'를 /var/www/vhosts/example.com 아래로 변경할 수 있으며 Plesk에서 'open_basedir'을 내가 설정 한 것으로 변경합니다. 예를 들어 Plesk에서 문서 루트를 'httpdocs'로 설정하면 'open_basedir'이 동일한 폴더로 변경되고 모든 것이 잘 동작합니다. 문제는 내가 내 목표는 내가 /httpdocs에 open_basedir로 '/httpdocs/[folder]/html에'문서 루트 '를 변경하고 싶어하지만 난 어떤 이유로 open_basedir에서 그 지역의 값을 변경할 수 없습니다 /httpdocs/[folder]

의 모든 공용 액세스를하지 않을 것입니다 . 나는 사람들이 직접 중요한 php 파일에만 접근 할 수 있도록 보안 목적으로 이것을하고 싶지만 php 자체는 폴더에 더 많은 접근 권한을 부여하고자한다.

상대 경로 또는 절대 경로를 사용하여 포함하려고합니까?

require '../[folder where secure php files exist]/file.php';

내가 제대로 이해 해요 경우 : 나는/포함 '문서 루트'위의 파일을 필요로하기 위해 노력하고있어 PHP 파일에서

내 경로는 정확히이 형식처럼 보인다 , 나는 서버의 전체 경로를 사용하지 않고있다.

+0

오류를 줍니까? 귀하의 웹 서버가 vhosts/의 소유자로 설정되어 있습니까? 상대 경로 또는 절대 경로를 포함 시키려고합니까? – SeanNieuwoudt

+0

불행히도, Plesk는 웹 사이트에 대해 거의 알지 못하는 일부 사람들이 디자인했습니다. 파일은 공개 디렉토리 트리 또는 개인 디렉토리에 있어야합니다 (PHP는 이제 개인 디렉토리에 액세스 할 수 있습니다). –

+0

예, 마지막 업데이트를 확인합니다. 원본 문제를 해결했지만 서버가 내 모든 포함 파일 (css, js, php, 이미지, 비디오)을 건너 뛰고 있습니다. 나는 심지어 'open_basedir'을 'none'으로 설정하고 여전히 'open_basedir'이슈를 더 이상 무시하지 않습니다. 내가 index.php에 내 모든 unstyled HTML을 볼 수 있지만 오류가 발생하고 내 스크립트 '파일'잔뜩 필요합니다! php.ini..ugh에서 뭔가가 켜져 있거나 꺼져 있어야합니다! – phpKid

답변

0

는 답변 :가 (이 대답으로 변경되었다) :

분명히, Plesk를 10, Plesk를의 프로그램 설정은 '문서 루트'경로가 될 것입니다 무엇이든의 '의 open_basedir'BUT에 한 사용자가 없습니다 Plesk 10에서 'open_basedir'을 변경하는 친근한 방법 !!!

/usr/local/psa/admin/conf/templates/default/service/php.php

:

그래서 대신 해킹의 조금 먼저 여기에 갈 필요가있다

다음 파일의 다음 행 (라인 11 및 29) 모두에 변경이 행 echo "php_admin_value open_basedir {$OPT['dir']}/:/tmp/\n";

: echo "php_admin_value open_basedir /var/www/vhosts/[your.domain]/httpdocs/:/tmp/\n";

또는 제한을 중지 할 위치로 지정하십시오.

/usr/지방/PSA/관리/sbin에/httpdmng --reconfigure - 모든

중지 /etc/init.d/httpd : 다음

당신의 실행이 줄 확인은 SSH이다

시작 /etc/init.d/httpd하지만 지금은 새로운 문제에 봉착했습니다. 그러나 때 오류없이

/var/www/vhosts/[my.domain]/httpdocs/[folder]/html

: '문서 루트는'올바른 폴더를 가리키는 서버가 다음 주소로 이동합니다. require '../[folder]/[file.php]';

나에게 오류 메시지 또는 아무것도주지 말 것. 또한 내 모든 임베디드 CSS 파일, js 파일, 이미지, 비디오 ...를 건너 뜁니다. Plesk이하고있는 'php.ini'설정이나 이상한 느낌이 들었습니다.

해결 : 마지막 문제는 루트 위에있는 파일에 액세스 한 적이 없기 때문입니다. PHP는 루트 위에 올라갈 수 있지만 다음과 같이 할 수는 없습니다. src="../img/imagefile.jpg"

(HTML 형식)

그래서 내 사이트 파일을 모두 재구성 한 후 내 웹 사이트가 실행 중입니다! 덕분에 도움이 되었기 때문에 누군가가 다시 할 필요가 없습니다. 또한 Plesk가 큰 문제이기 때문에이 게시물을 업데이트하는 게시글을 보았습니다. Parallels에서 일하는 사람은 http://forum.parallels.com/showthread.php?t=113236이 다음 버전에서 옵션이 될 것이라고 말했고, 그때까지는 해킹 시간이되었습니다 !!

관련 문제