Если кто использует в своей работе PEAR (незаменимое средство для сложение приложений высокого уровня), то это статейка именно для Вас.
Много возникает вопрос, как установить ПЕАР на локалхост или на сервер. Часто, когда хостееры "рвут" ногти за ПЕАР (у нас буржуи вообще дуба давали), всегда говорили платите деньги, чтоб установили тот или инной модуль.
Но вот они и достали.
Нашел способ обхитрить сисадминов хостера, и по условиям договора услуг хостера (всегда перед приобретением чтите уговор), я ничего плохого не сделал, и хостера отмахались, и модули подключаю, какие хочу.
В настройках PHP есть такая переменная include_path.
В этой переменной хранится список дирректорий сайта, в которых надо искать подключаемый файл если по заданному адресу он отсутствует.
Обычно по умолчанию в этой переменной находится путь до дирректории с классами PEAR (.: /usr/local/lib/php).
Т.е. если мы пытаемся гдето в скрипте подключить файл (например include_once "file.php"), и такого файла по указанному адресу не находится (в нашем случае в текущей дирректории), то PHP пытается найти этот файл в дирректориях, указанных в include_path (т.е. /usr/local/lib/php).
И если и там такого файла не находится, то выдается ошибка подключения.
Переменная include_path установлена в php.ini, а этот файл доступен только владельцам хостинга, т.е. доступа к нему из скриптов нет.
Но зато в PHP есть замечательная функция ini_set(), которая может установить для любой переменной, прописанной в php.ini необходимое нам значение.
Так вот идея заключается в том, что можно установить свою копию PEAR у себя на сайте, заблокировав установленную по умолчанию хостингом.
Надо всего лишь переопределить путь до PEAR при помощи ini_set()
Допустим, все библиотеки лежат в каталоге www/lib/pear
Напишем подключающий скрипт config_pear.php и разместим его внутри каталога с PEAR (www/lib/pear)
Листинг файла config_pear.php
Код
[PHP]<?php
ini_set("include_path", dirname(__FILE__));
?>[/PHP]
Тем самым мы назначили конфигурационной переменной include_path новое значение, а именно абсолютный путь до дирректории, в которой запустился скрипт config_pear.php, а это как раз там, где и находится наш собственный PEAR.
Теперь, для того, чтобы в своих скриптах подключать классы PEAR, необходимо лишь в начале скрипта делать подключение файла config_pear.php
Естественно, для корректной работы классов PEAR необходимо, чтобы структура дирректорий и файлов были идеентичны оригинальным.
И в результате вот так подключается любой модуль:
[PHP]include_once "lib/pear/config_pear.php";//ВЫЗЫВАЕТСЯ ИЗ КОРНЯ
include_once "DB.php";//МОДУЛЬ БД[/PHP]
Все просто и гениально ;)
Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
|