У меня есть веб-сервер, который мы используем, apache, centos5, php
У меня есть файл с именем include.php, который мне нужно включить на несколько сайтов.
Например. У меня есть сайт под названием testsite.co.za, теперь в index.php я хочу включить файл include.php, include.php не находится в корне testsite.co.za,
Теперь я создал еще одну папку в корневом веб-каталоге, который содержит include.php.
мой код выглядит следующим образом в testsite.co.za/index.php
require_once '../includes/include.php';
если я запускаю testsite.co.za, он не может обнаружить include.php. Есть ли определенные настройки сервера, которые мне нужно изменить, чтобы включить этот файл?
Моя структура каталогов
- / var / www / html
-testsite.co.za
-index.php
-включает
-include.php
Надеюсь, это имеет смысл
Имейте в виду, что при использовании require '../[something]'
, вы имеете в виду рабочий каталог PHP, а не путь к самому скрипту. Я предпочитаю всегда использовать
require(dirname(__FILE__).'/path');
Таким образом, я знаю, что мне нужен файл относительно файла, в котором находится инструкция require
Итак, в этом случае ваше включение будет следующим:
require_once( dirname(__FILE__).'/../includes/include.php');
Об этом спрашивали давно, но для тех, кто нашел его через Google, правильный ответ - убедиться, что этот файл находится в PHP include_path, который установлен в php.ini ИЛИ добавить свой путь к php include_path через php.ini или во время выполнения через функцию php set_include_path () [ http://php.net/manual/en/function.set-include-path.php ]
Затем к вашему файлу можно получить доступ через include ('myfile.php') или require ('myfile.php'), которые ищут как PHP include_path, так и текущий каталог для включения файла.
Вы также можете изучить __autoload () в php 5.2 или ниже или SplAutoloadRegister () в php 5.3 и 5.4, чтобы создать функции для автозагрузки ваших классов из файлов в зависимости от того, как вы хотите, путем создания этой волшебной функции или, в последнем случае, регистрации автозагрузки функция.
Надеюсь, это поможет кому-то на этом пути.
Имеет смысл.
Ну насколько я вижу должен работа: я использую подобные директивы все время. Я бы проверил все разрешения и права собственности на каталоги, а также права доступа к файлам, и, если с ними все в порядке, я бы проверил наличие мошеннического файла .htaccess или какого-либо другого элемента блокировки, который может вас сбить с толку.
Если корнем документа Apache является / var / www / html, тогда у вас не должно возникнуть проблем с указанием чего-либо в / var / www / html / includes /, если только не существует какой-либо конкретной директивы (или проблемы с разрешением), блокирующей это.