Столкнулся с таким положением дел: при попытке заинклудить какой-нибудь файлик командой типа include (’include/inc.inc’) - с указанием каталога относительно текущего, сервер выдал что-то вроде
blablabla open_basedir restriction in effect. blablabla ...
Мол не могу и всё.
Недоразуменьице получается. В плеске по умолчанию open_basedir включено. (если кому интересны подробности - пошукайте или в переводе). Как вариант лечения предлагаю подсмотренную на каком-то забугорном сайте пилюльку:
- Заходим по (SSH)
- Создаем новый файл:
vi /etc/httpd/conf.d/blabla_openbasedir_removal.conf
- Тыкаем [INS]ert на клавиатуре, чтобы перейти в режим ввода текста и пишем:
<DirectoryMatch /var/www/vhosts/(.*)/httpdocs/>
php_admin_value open_basedir none
</DirectoryMatch>
- Тыкаем в кнопку (ESC) - переходим в командный режим;
- Нажимаем [:wq] чтобы сохранить файл и выйти
Теперь open_basedir нас беспокоить не должна…
Чуть не забыл.. после всего этого надо веб-сервер перезапустить. Либо service apache restart, либо service httpd restart… (Конечно, не исключено, что “служба” называется по-другому… Тогда должен помочь reboot
Думаю, понятно, что, если вместо (.*) написать mydomainname.ru, то сработает это только для конкретного домена.
Кстати, Warning!!!
Safe Mode was removed in PHP 6.0.0.
Опубликовано Август 15, 2008 | автор: levik | Нет комментариев »
Решил опубликовать на сайте серию статей (уроков, обзоров - называйте как хотите) для начинающего PHP-шника. Естественно, на сегодняшний день выпущено очень много литературы. Однако, постараюсь обойтись без лишних теорий. Будем учиться на примерах.
С чего начать!? Думаю, для начала будет правильно вообще разобраться, что такое PHP , и нужно ли его изучать.
Если же Вы твердо решили “ДА”, то, пожалуй, следует начать с установки “среды разработки”. Рекомендую воспользоваться “джентельменским набором веб разработчика” или в быту “ДЕНВЕРом”. На сайте разработчиков denwer.ru Вы можете найти всю документацию и дистрибутивы. Смело устанавливайте последнюю версию, и настройтесь на … долгий и тернистый путь к знаниям, наберитесь упорства и смело продолжайте!
Также рекомендую установить следующие программы:
- Total Commander - файловый менеджер. По сравнению со стандартным проводником Windows позволяет многие функции упростить (вплоть до “одной кнопки”). Поначалу может показаться неудобным, но это дело привычки.. И опять же дело лично каждого.
- Текстовый редактор с подсветкой (рекомендую bred 3 или notepad++ - в обоих есть функция подсветки синтаксиса). Настоятельно не рекомендую пользоваться “WYSIWHYG” редакторами (Macromedia Dreamweawer, например). И уж тем более, рекомендую не пользоваться Microsoft Front Page.
Вот и все, что нам потребуется для разработки.
Мы подготовили рабочее место - а это, согласитесь, неплохой задел для хорошей работы. Пожалуй, на этом пока остановимся.
Опубликовано Февраль 3, 2008 | автор: levik | Нет комментариев »
Практически каждому программисту приходится сталкиваться с древовидной структурой.
Дано: php + mysql.
Все элементы, которые входят в древовидную структуру хранятся в одной таблице базы данных.
Найти: способ хранения и представления древовидной структуры.
- Простейший вариант состоит в том, что все “ветки” дерева имеют дополнительное поле “идентификатор родителя”, используя который и можно построить всё дерево. Если нет необходимости строить всё дерево, а достаточно просматривать потомков следующего уровня некоторого родителя - то такой способ организации дерева, на мой взгляд, идеален. Если же требуется строить дерево целиком, то придется использовать рекурсивную процедуру - или в php или в mysql (при условии, что максимальная “глубина дерева” заранее определена, можно, конечно, обойтись одним составным, в котором одна таблица присоединяется сама к себе… Но это уже больше похоже на извращения..).
Можно, конечно, обойтись одним запросом (что-то вроде “select * from tree”, а данные разбирть уже в php примерно так:
while($row = mysql_fetch_assoc($res)){
$tree[$row['pid']][$row['id']] = $row;
}
Плюсы: простота организации данных.
Минусы: при большом количестве “веток” количество запросов возрастает…
- Nested sets или вложенные множества. Способ организации дерева, при котором дерево обходится, к примеру слева направо, и все вершины нумеруются дважды.

Плюсы: одним запросом можно выбрать всех потомков, отстоящих по дереву на заданное количество уровней, всех родителей.. да вообще много чего можно. Где-то встречал уже готовый класс для работы с ”Nested sets” - деревьями.
Опубликовано Ноябрь 1, 2007 | автор: levik | Нет комментариев »
В настоящее время написано много шаблонизаторов. Многие php-программисты, думаю, слышали о SMARTY, FastTemplate и иже с ними. У каждого из шаблонизаторов свои особенности, но все они созданы для решения задачи “разделения контента и дизйна“.
Сущность шаблонизатора: дизайн “размещается” в отдельных файлах. В тексте файлов-шаблонов встречаются оформленные по определенным правилам последовательности символов, вместо которых должны подставляться данные. Некоторые “продвинутые” шаблонизаторы позволяют использовать циклы, условные конструкции и вставки кода на PHP.
Возникает вопрос, “А зачем?”. И, думаю, не безосновательно. Ведь PHP позволяет делать всё это. Парадокс? Авторы шаблонизаторов пытаются при помощи интерпретатора PHP создать свой интерпретатор, и считают, что это необходимо, хорошо, ну или просто… неплохо. Проделана огромная работа, потрачены часы, дни, месяцы.. Неужели, всё это зря!?
Попытаемся оправдать применение шаблонизатора. Читать целиком »
Опубликовано Октябрь 26, 2007 | автор: levik | Комментарий (1) »