私は、他のスクリプトのセットを含む(または '必要とする')PHPスクリプトを持っています。これは、すべてのクラスをインポートするために効果的です。私が遭遇しているのはHTTP 500エラーです。私は、1つのファイルでrequire_onceが失敗していると判断するために、コードを少しずつ調べてコメントアウトしました。PHPが失敗するrequire_once
のindex.php:
<?php
require_once("std/classes.php");
?>
とstd/classes.php:
<?php
RequireStandards();
RequireAddons();
function RequireStandards()
{
$ClassFiles = scandir("classes/standard");
foreach($ClassFiles as $ClassFile)
{
if($ClassFile == "." || $ClassFile == "..")
continue;
//require_once("classes/standard/" . $ClassFile);
}
}
function RequireAddons()
{
$ClassFiles = scandir("classes");
foreach($ClassFiles as $ClassFile)
{
if($ClassFile == "." || $ClassFile == ".." || $ClassFile == "standard")
continue;
//require_once("classes/" . $ClassFile);
}
}
?>
このコードは、それが座っているように動作しますが、できるだけ早くします。ここ
はコードがあります要求のコメントを外しますが、失敗します。奇妙なことに私に打撃を与えるのは、このサーバー上にはほぼ同じように動作する他のサイトがたくさんあるということです。
私は何とか私のPHPエラー報告をオフにしているかのように感じます...私は元に戻す方法がわかりません。 PHP 5.3にアップグレードしたばかりです私は通常、PHPが失敗した場合、私のブラウザには「開けないファイル」やそのようなものがあると予想します。
誰かが、なぜこれがHTTP 500を蹴っているのか、あるいは単にエラー報告を再び有効にする方法を教えてくれるかもしれません。大いに感謝します。これはあまり意味がないようです。
サーバーのログに問い合わせることはできますか? – miku
あなたのクラスフォルダはルートディレクトリにありますか?クラスの前に "/"を追加してみてください。ちょうど推測。 –
あなたのインクルードパスの問題かもしれません。http://www.php.net/manual/en/function.set-include-path.php –