Может кто-нибудь указать, почему моя функция require_once() не может найти путь? php

Я не могу найти ответ, и я спросил у всех, кого знаю.

На моем локальном сервере мой код работал отлично. Когда я загрузил его на сервер, функция require_once(); перестала работать. Моя файловая система очень проста. В основной папке сайта у меня есть: index.php, private (папка) и public (папка).

Когда я запускаю веб-сайт, я получаю эту ошибку

«Предупреждение: require_once(private/initialize.php): не удалось открыть поток: нет такого файла или каталога в /home2/inbounf6/public_html/zampi/index.php в строке 6»

Вот что находится в строке 6: require_once('private/initialize.php');

Я пробовал каждую версию пути к файлу, которую только мог придумать, и ничего не работает.

Когда я перемещаю вещи и помещаю их в ту же папку, все работает нормально. Поэтому я думаю, что проблема в папке или, другими словами, в отсутствии доступа к личной папке.

Права доступа к личной папке и файлу initialize.php равны 7 5 5.

Кто-нибудь знает, что происходит?


person Keet    schedule 09.10.2018    source источник
comment
как насчет разрешений? кто запускает сервер, кому принадлежит личная папка, какие у нее разрешения?   -  person Juan    schedule 09.10.2018
comment
Вы пробовали решения в этом посте? stackoverflow.com/questions/5116421/   -  person ultrajohn    schedule 09.10.2018
comment
Возможный дубликат require_once: не удалось открыть поток: нет такого файла или каталога   -  person ultrajohn    schedule 09.10.2018
comment
Вы должны использовать realpath() и использовать dirname(FILE), чтобы получить текущий каталог: require_once(realpath(dirname(FILE). '/../includes/dbconn .inc'));   -  person Hetal    schedule 09.10.2018
comment
Попробуйте разрешение 777, потому что некоторые системы не разрешают доступ к сети с 755   -  person Nishit Manjarawala    schedule 09.10.2018
comment
проверьте разрешение файла www-data для этой личной папки и файла   -  person Sooraj N Raju    schedule 09.10.2018
comment
@Hetal После того, как я добавил этот фрагмент кода, я получил эту ошибку: Предупреждение: require_once(/home2/inbounf6/public_html/zampi): не удалось открыть поток: Нет такого файла или каталога в /home2/inbounf6/public_html/zampi/index. php в строке 2   -  person Keet    schedule 09.10.2018
comment
@NishitManjarawala Даже после того, как я обновил разрешения до 777, ничего не изменилось. Есть еще предположения?   -  person Keet    schedule 09.10.2018
comment
@SoorajNRaju Не могли бы вы объяснить, как это сделать? Я использую Блюхост. Это довольно обычный Linux-хост.   -  person Keet    schedule 09.10.2018


Ответы (2)


Используйте магическую константу __DIR__:

require_once(__DIR__ . '/private/initialize.php'));

__DIR__ Каталог файла. Если используется внутри включения, возвращается каталог включенного файла. Это эквивалентно dirname(FILE). Это имя каталога не имеет завершающей косой черты, если только оно не является корневым каталогом.

person Madhur Bhaiya    schedule 09.10.2018

Попробуйте это require_once('./private/initialize.php');

person Skinna    schedule 09.10.2018
comment
Можете ли вы объяснить, почему вы думаете, что это решает проблему? - person Nico Haase; 09.10.2018