С момента перемещения моего веб-сайта от локального до онлайн у меня есть проблема с использованием пути , требующая.неправильный путь с использованием 'require'
У меня есть страницы, которые называют Bootstrap.php так:
require 'inc/bootstrap.php';
И boostrap.php выглядит следующим образом:
<?php
spl_autoload_register('app_autoload');
function app_autoload($class){
require "class/$class.php";
}
Это хорошо работало в местных.
Сейчас в Интернете, я получаю следующее сообщение:
Warning: require_once(/home/website/www/class/functions.php): failed to open stream: No such file or directory in /home/website/www/inc/bootstrap.php on line 6
Fatal error: require_once(): Failed opening required '/home/website/www/class/functions.php' (include_path='.:/usr/share/php:/usr/share/pear')
in /home/website/www/class/functions.php on line 6
Так я думал, я должен поставить абсолютный путь в boostrap.php так:
<?php
spl_autoload_register('app_autoload');
function app_autoload($class){
$path = $_SERVER['DOCUMENT_ROOT'] . "class/$class.php";
require_once "$path";
}
Но я получаю точно такая же ошибка. Я не понимаю, почему он все еще ищет в /home/website/www/inc/bootstrap.php и не соответствует абсолютному пути, который является /home/website/www/class/functions.php?
EDIT:
После тестирования различных решений с использованием абсолютных трактов, я все еще получаю ошибку, что «Нет такого файла или каталога в /home/website/www/bootstrap.php: так что до сих пор глядя в файле вместо каталога.
Может быть, потому что я использую двойные требую? Я первый требую boostrap.php от description.php (который прекрасно работает), а затем я требую класса .php из этого boostrap.php (который содержит абсолютный путь, но путь, соответствующий файлу boostrap.php?
ОТВЕТ:
Ok наконец работает с этой конфигурацией:
Первый файл с помощью требуют:
require_once(dirname(__FILE__). '/inc/bootstrap.php');
и boostrap.php:
require_once(dirname(__FILE__). "/../class/$class.php");
что делать, если вы добавляете '/ inc /' в свой путь так. 'require 'inc/class/$ class.php"; ' – cmorrissey
, потому что вы вызываете' require' func в _/home/website/www/inc/bootstrap.php_ Попробуйте с '$ path = dirname (__ DIR __)."/class/$ class.php ";' – fusion3k
@michltm отметить, что было бы хорошо поддерживать ту же структуру в локальной и удаленной. Если это невозможно, я предлагаю вам добавить путь (ы) к существующему/новому конфигурационному файлу. – fusion3k