0

誰かが説明全体を読みたくない場合は、実際の質問がある最後の2つの段落にスキップできます

だから私はCakePHPで作られたこのたくさんのウェブサイトを持っています。ページの1つ(これはすべてのWebサイトで同じです)で、XMLファイルをロードしてその内容を処理します(XMLヘルパーを使用)。これはかなり長い間機能しています。さて、突然、どのWebサイトでも機能しなくなり(コードは少し変更されていません)、「ファイルを開くときにエラーが発生しました」というメッセージが表示されます。

同時に、これらのWebサイトの別のスクリプト(前のスクリプトとは関係がなく、cakephpの「領域」の外にあるプレーンなPHP)も機能しなくなりました。この場合、これは、ビデオホスティングプロバイダー(Fliqz)との接続を作成し、ビデオIDを指定してビデオのURLを取得するスクリプトです。突然、「セッションが作成されませんでした」などのエラーがスローされます(スクリプトは、URLを取得するためにFliqzのサーバーとのある種のセッションを作成します)。

これはすべて非常に奇妙に聞こえます、私は知っています。コードが正しいことを確認した後、私が最初に行ったことは、1&1(ホスティングプロバイダー)に電話して、サーバーに変更があったかどうかを尋ねることです。彼らは、数か月前にPHP5に変更したと言いましたが(私は知っていましたが、その変更後はすべて正常に機能していました)、他には何も変更していません。

私の質問は、これらの問題の原因を解明するために私にできることはありますか?たとえば、彼のホスティングが外部接続を許可するいくつかの機能を制限していると言っている人の投稿を見つけました。または、別の投稿で、これを行うことについての提案を見ました:echo file_get_contents( "http://google.com/")そしてエラーが発生しました。これは、いくつかの設定が正しくなかったことを意味します。XMLファイルをロードしたページで(XMlヘルパーの代わりに) simplexml_load_fileを使用しようとしても機能せず、別のエラーが発生しました...

PHPの設定がこれを引き起こしているのかどうかを知りたいので、それを見て、もう一度1&1を呼び出して、何を変更する必要があるかを伝えます(変更するものがある場合)。そうでなければ、いったいどうやって何かが機能しなくなるのでしょうか?

アドバイスありがとうございます!よろしくお願いします!

編集:エラーの詳細な説明

1.CakePHPのXMLヘルパーを使用してXMLがロードされないことに関連するエラー

これは私が使用するコードです(以前は完全に機能していました):

$completeurl = '/full/path/to/file/myfile.xml';

App::import('Xml'); 

$xml =& new XML($completeurl);
$this->list = Set::reverse($xml);

エラーや警告は表示されません。$ xmlをデバッグすると、次のようになります。

Xml Object
(
[__parser] => 
[__file] => 
[__rawData] => 
[__header] => 
[__tags] => Array
    (
    )

[version] => 1.0
[encoding] => UTF-8
[name] => #document
[namespace] => 
[namespaces] => Array
    (
    )

[value] => 
[attributes] => Array
    (
    )

[children] => Array
    (
    )

[__parent] => 
)

$ this-> listをデバッグすると、空の配列が得られます。この問題が発生する前は、完全に構造化されたXMLファイルのすべての情報を含む連想配列を取得していました。ああ、XMLファイルは以前と同じです。エラーが発生しない場合に備えて、再検証しました。

2. simplexml_load_file()を使用してXMLファイルがロードされないことに関連するエラー

これは私が「通常の」phpで試したコードです(CakePHPヘルパーを使用せずに):

$file = '/full/path/to/file/myfile.xml';

if(!$xml = simplexml_load_file($file))
exit('Failed to open '.$file);

そしてこれはエラー(警告)です:

Warning (2): simplexml_load_file() [function.simplexml-load-file]: URL file-access is disabled in the server configuration [APP/plugins/icd_discovery/webroot/videos.php, line 29]

Warning (2): simplexml_load_file(http://discovery.ingles100.com/icd_discovery/xml/videos_unidades.xml) [function.simplexml-load-file]: failed to open stream: no suitable wrapper could be found [APP/plugins/icd_discovery/webroot/videos.php, line 29]

Warning (2): simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://discovery.ingles100.com/icd_discovery/xml/videos_unidades.xml" [APP/plugins/icd_discovery/webroot/videos.php, line 29]

ファイルの相対パスを入力すると、最後の警告が表示されますが、ロードされません。

**3.FliqzでホストされているビデオのURLをロードするスクリプトに関連するエラー**

このスクリプトを含むページは、前のページとはまったく関係がありません(つまり、そこにあるコードはここのコードに影響を与えません)。次のスクリプト(Fliqzが提供)を使用して、そこでホストされているビデオのURLを要求します。

include_once '../fliqz/dlMetrics.php';

// initializing new session

$videoID = '123123123';
$applicationID = '456456456';
$uniqueID = null;

// create a new fliqzDownload Object
$metricsObj  = new dlMetrics();

// get new session, using Application ID from Account:
$sessionID = $metricsObj->newSession($applicationID,NULL,NULL,NULL,$uniqueID);

// show server time when new session was created:
$start = $metricsObj->getSessionStart();

// Get asset location (note: must use dashes in asset ID example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
$video_URL = $metricsObj->initLoad($videoID);

これを行うことにより、$video_URL変数でビデオのURLを取得します。繰り返しますが、これは以前は完全に機能していました。突然、そうではありません。

それで、これらすべてのものが機能しなくなるのは偶然ですか?どこかで何かが変わったと思います。コードではなく、それに触れるのは私だけです。PHPのバージョンは少し前に変更され、すべてが正常に機能していました。サーバーに何かありますか?1&1は、彼らはそうしなかった、または少なくとも私が話をした人はそうではなかったと言っています。電話をかけ直さなければならない場合は、問題がどこから来ているのかをもう少し詳しく指摘できるようにしたいと思います。そのため、皆さんの助けが必要です。

繰り返しになりますが、アドバイスをありがとうございます!

4

1 に答える 1

1

php.ini次の内容のというファイルを作成します。

allow_url_fopen = ON

それらのスクリプトと同じフォルダー (またはフォルダー) に配置します。

于 2012-08-04T03:38:56.230 に答える