1

エラーが発生しています

Warning: fopen() [function.fopen]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (VIRTUAL_DOCUMENT_ROOT:/tmp/) in /www/elitno.net/s/p/anger2/home/site/classWebPage.php on line 83

私のphpinfoファイルはここにあります-> http://spaceranger2.elitno.net/phpinfo.php

エラーが発生している行は次のとおりです。

function openLink(){
    $this->fp = fopen($this->URL, "rb");
    array_shift($http_response_header);
    $this->headers = $http_response_header;
}

.htaccess にしかアクセスできず、php.ini ファイルにはアクセスできません。私はこれを使ってみました

open_basedir = "VIRTUAL_DOCUMENT_ROOT:/tmp/:/www/elitno.net/s/p/ranger2/home/site/"

しかし、これは500 internal error's を生成します。何か提案はありますか?

4

1 に答える 1

0

通常fopen、スクリプトを実行しているユーザーがアクセスできるファイルのみを開くことができます。

openLink()特定のURLを実際に開くように関数を設計しました。fopenこれを使用する場合、実際にはディスク上のファイルを開くことを示していることに注意してください。/またはのような値を渡すと、実際にはその絶対ファイルシステムパス/filename.txtでディスク上のファイルを開こうとします。

あなたの質問データからあなたはfopen開くように言っています/。これがサーバーのファイルシステムのルートです。あなたのユーザーは間違いなくそれにアクセスすることはできません(したがって、あなたが見るエラー)。

Webサイトへの相対パスを開きたい場合は、URLを開こうとしていることを示すために、$this->URL変数を渡す前にサイトのURLの前に変数を付けることを検討してください。fopen

次の行で何かを行うことができます。

function openLink(){
    $siteURL = "http://www.example.com";
    $urlToOpen = $siteURL . $this->URL;
    $this->fp = fopen($urlToOpen, "rb");
    array_shift($http_response_header);
    $this->headers = $http_response_header;
}
于 2012-12-24T07:25:16.500 に答える