PHPでこれをデバッグするのにいくつかの問題があります。この行を含めると:
require_once("http://" . $_SERVER["HTTP_HOST"] . "/dompdf/dompdf_config.inc.php");
私が得るのは単なる空白のページであり、応答としてhtmlコードを取得しません。たぶんエラーメッセージは隠されていますか?
PHPでこれをデバッグするのにいくつかの問題があります。この行を含めると:
require_once("http://" . $_SERVER["HTTP_HOST"] . "/dompdf/dompdf_config.inc.php");
私が得るのは単なる空白のページであり、応答としてhtmlコードを取得しません。たぶんエラーメッセージは隠されていますか?
多くの場合、WSOD (死の白い画面)が発生した場合、致命的なエラーが発生し、標準の出力、つまり生成されたページに表示されないことが原因です。
表示するには、次のことを行う必要があります。
error_reporting
適切なレベルに設定display_errors
簡単な方法は、次のようなコードの一部を使用して、PHPスクリプトの先頭でこれを行うことです。
error_reporting(E_ALL);
ini_set('display_errors', 'On');
あなたの特定のケースでは、HTTPを介して何かを含めたり要求したりしようとしています。これはしばしば無効になります。
allow_url_include
それについては、指令を参照してください。
PHPの構成でそれを有効にする可能性があります...しかし、一般的には良い考えとは見なされません。セキュリティ上の理由から無効になっています。
また、ファイルを含めるためのHTTPリクエストの送信には時間がかかります。つまり、リモートサーバーが応答しない場合、アプリケーションは機能しなくなります。
また、ここでは、リモートサーバーからのファイルをインクルードしようとしています$_SERVER["HTTP_HOST"]
...
...それで、あなたは実際にはあなた自身のサーバーであるリモートサーバーからのファイルを含めようとしていますか?つまり、リモートのものではありませんか?
その場合、HTTP経由でインクルードしようとしないでください。代わりに、ローカルファイルを使用する必要があります; このように(調整が必要になります):
require_once dirname(__FILE__) . "/dompdf/dompdf_config.inc.php";
こちらです :
allow_url_include
私も追加する必要があります:
このようなリモートファイルを要求/インクルードしないでください。代わりに、ローカルの絶対パスまたは相対パスを指定してください。
安全ではなく、推奨されていませんが、特定の構成オプションが設定されている場合、技術的には可能です。(allow_url_include)
今後のデバッグに関する懸念事項については、display_errorsに関する以下の他の回答を参照してください。私はよくPHPコマンドラインインタープリターを使用して、エラーの詳細をWeb訪問者に提示することなく、実際のエラーを取得します。
これは非常に珍しく安全でないファイルを含める方法ですが、それでも使用する場合は、require_onceのphpソースコードをターゲットにしている可能性があるため、含めるファイルがリモートサーバーで実行されていないことを確認してください。ここでは、その最終出力ではありません。
require_once
ステートメントのパラメーターは、URLではなくファイルパスである必要があります。
クライアントにWebからファイルをインポートするのではなく、ファイルシステムからファイルをインポートするようにWebサーバーに指示しています。
これは、ステートメントのインクルードページに記載されています。
これをスクリプトの最初の行として追加してみてください(明らかに<?phpの後):
error_reporting(E_ALL);