У меня возникли некоторые проблемы, чтобы отладить это в php. Когда я включаю эту строку:
require_once("http://" . $_SERVER["HTTP_HOST"] . "/dompdf/dompdf_config.inc.php");
то, что я получаю, просто пустая страница, я не получаю никакого html-кода в качестве ответа. Может быть, сообщения об ошибках скрыты?
Вы не должны требовать / включать удаленный файл, подобный этому. Вместо этого укажите локальный абсолютный или относительный путь.
Хотя это небезопасно и не рекомендуется, технически это возможно, если установлены определенные параметры конфигурации. (Allow_url_include)
См. Другие ответы ниже относительно display_errors для будущих проблем отладки. Я часто использую интерпретатор командной строки PHP, чтобы получить реальную ошибку, не допуская, чтобы данные об ошибках были представлены веб-посетителям.
Довольно часто, когда вы получаете WSOD (белый экран смерти) , это потому, что есть Fatal Error, и она не отображается на стандартном выходе – то есть сгенерированной странице.
Чтобы он отображался, вам необходимо:
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
Я должен также добавить:
Это очень необычный и небезопасный способ включения файлов, но, если вы все еще хотите его использовать, убедитесь, что файл, который вы включаете, не выполняется на удаленном сервере, поскольку вы, вероятно, нацеливаете исходный код php на require_once здесь не окончательный вывод.
Параметр для оператора require_once
должен быть путь к файлу, а не URL.
Вы сообщаете веб-серверу, чтобы он импортировал файл из файловой системы, а не клиент, чтобы импортировать файл из Интернета.
Он задокументирован на странице описания включения .
Попробуйте добавить это как первую строку вашего скрипта (очевидно, после <? Php):
error_reporting(E_ALL);