PHP require_once не работает в Linux

Я перевел веб-систему PHP с хостинг-провайдера Windows на хостинг на базе Linux.

В системных скриптах, когда дело доходит до require_once, скрипт просто останавливается и оставляет пользователя на пустой белой странице.

Я пробовал оба ниже:

Попробуй 1

require_once($_SERVER['DOCUMENT_ROOT'] . '\library\data\Dbec.php') or die("could not load file");

Попробуй 2

require_once(dirname(__FILE__) . '/library/data/Dbec.php') or die("could not load file");

В обоих случаях текст в круглых скобках не отображается, а страница остается пустой. Сценарий, для которого требуются вышеуказанные файлы, находится в /library/membership/theScript.php

Основываясь на чтении, которое я делал до сих пор, возможно, это связано с изменением include_path в файле php.ini или написанием путей другим способом.

Если это что-то из вышеперечисленного или что-то другое, я был бы признателен за некоторые советы.

3 ответа

Проверьте ваш журнал ошибок, чтобы увидеть, если что-то явно не так. Также попробуйте установить error_reporting = E_ALLи убедитесь, display_errors = On а также log_errors = On в вашем php.ini.

Ваш файл, который вы пытаетесь включить, находится в /library/membership/theScript.php, попробуйте сделать:

require_once '../data/Dbec.php';

Также проблема может быть в разрешениях файла и имени файла. Файловая система Windows является случайной, а linux - нет. Таким образом, вы должны проверить имя файла и тот факт, что пользователь, который выполняет этот скрипт, имеет разрешение на чтение для файла, который вы пытаетесь включить с require_once

Это не будет делать то, что вы хотите. Все после require_once интерпретируется как условный. Это работает ($_SERVER['DOCUMENT_ROOT'] . '\library\data\Dbec.php') or die("could not load file") и возвращаясь 1, затем работает require_once 1,

Чтобы все работало так, как вы ожидаете, вам понадобится дополнительный набор скобок:

(require_once($_SERVER['DOCUMENT_ROOT'] . '\library\data\Dbec.php')) or die("could not load file");

Хотя я не уверен die() когда-нибудь позвонят. Это зависит от вас, чтобы выяснить.

Смотрите этот связанный отчет об ошибке, который был назван "не ошибка".

Другие вопросы по тегам