Назад | Перейти на главную страницу

Включая файл PHP, который можно использовать на нескольких сайтах

У меня есть веб-сервер, который мы используем, 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 /, если только не существует какой-либо конкретной директивы (или проблемы с разрешением), блокирующей это.