Тэг ‘php’

Plesk и open_basedir

Столкнулся с таким положением дел: при попытке заинклудить какой-нибудь файлик командой типа include (’include/inc.inc’) - с указанием каталога относительно текущего, сервер выдал что-то вроде
blablabla open_basedir restriction in effect. blablabla ...
Мол не могу и всё.
Недоразуменьице получается. В плеске по умолчанию open_basedir включено. (если кому интересны подробности - пошукайте или в переводе). Как вариант лечения предлагаю подсмотренную на каком-то забугорном сайте пилюльку:

  1. Заходим по  (SSH)
  2. Создаем новый файл:
    vi /etc/httpd/conf.d/blabla_openbasedir_removal.conf
  3. Тыкаем [INS]ert на клавиатуре, чтобы перейти в режим ввода текста и пишем:
    <DirectoryMatch /var/www/vhosts/(.*)/httpdocs/>
         php_admin_value open_basedir none
    </DirectoryMatch>
  4. Тыкаем в кнопку (ESC) - переходим в командный режим; 
  5. Нажимаем [: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 0010 - урок PHP вводный

Решил опубликовать на сайте серию статей (уроков, обзоров - называйте как хотите) для начинающего PHP-шника. Естественно, на сегодняшний день выпущено очень много литературы. Однако, постараюсь обойтись без лишних теорий. Будем учиться на примерах.

С чего начать!? Думаю, для начала будет правильно вообще разобраться, что такое PHP , и нужно ли его изучать.

Если же Вы твердо решили “ДА”, то, пожалуй, следует начать с установки “среды разработки”. Рекомендую воспользоваться “джентельменским набором веб разработчика” или в быту “ДЕНВЕРом”. На сайте разработчиков denwer.ru Вы можете найти всю документацию и дистрибутивы. Смело устанавливайте последнюю версию, и настройтесь  на … долгий и тернистый путь к знаниям, наберитесь упорства и смело продолжайте!

Также рекомендую установить следующие программы:

  1.  Total Commander - файловый менеджер. По сравнению со стандартным проводником Windows позволяет многие функции упростить (вплоть до “одной кнопки”). Поначалу может показаться неудобным, но это дело привычки.. И опять же дело лично каждого.
  2. Текстовый редактор с подсветкой (рекомендую bred 3 или notepad++ - в обоих есть функция подсветки синтаксиса). Настоятельно не рекомендую пользоваться “WYSIWHYG” редакторами (Macromedia Dreamweawer, например). И уж тем более, рекомендую не пользоваться Microsoft Front Page.

Вот и все, что нам потребуется для разработки.

Мы подготовили рабочее место - а это, согласитесь, неплохой задел для хорошей работы. Пожалуй, на этом пока остановимся.

Опубликовано Февраль 3, 2008 | автор: levik  |  Нет комментариев »

Деревья php + mysql

Практически каждому программисту приходится сталкиваться с древовидной структурой.

Дано: php + mysql.
Все элементы, которые входят в древовидную структуру хранятся в одной таблице базы данных.
Найти: способ хранения и представления древовидной структуры.

  1. Простейший вариант состоит в том, что все “ветки” дерева имеют дополнительное поле “идентификатор родителя”, используя который и можно построить всё дерево. Если нет необходимости строить всё дерево, а достаточно просматривать потомков следующего уровня некоторого родителя - то такой способ организации дерева, на мой взгляд, идеален. Если же требуется строить дерево целиком, то придется использовать рекурсивную процедуру - или в php или в mysql (при условии, что максимальная “глубина  дерева” заранее определена, можно, конечно, обойтись одним составным, в котором одна таблица присоединяется сама к себе… Но это уже больше похоже на извращения..).
    Можно, конечно, обойтись одним запросом (что-то вроде “select * from tree”, а данные разбирть уже в php примерно так:
      while($row = mysql_fetch_assoc($res)){
      $tree[$row['pid']][$row['id']] = $row;
      }
    Плюсы: простота организации данных.
    Минусы: при большом количестве “веток” количество запросов возрастает…
  2. Nested sets или вложенные множества. Способ организации дерева, при котором дерево обходится, к примеру слева направо, и все вершины нумеруются дважды.
    Нумерация элементов при организации дерева методом Nested Sets
    Плюсы: одним запросом можно выбрать всех потомков, отстоящих по дереву на заданное количество уровней, всех родителей.. да вообще много чего можно. Где-то встречал уже готовый класс для работы с ”Nested sets” -  деревьями.

Опубликовано Ноябрь 1, 2007 | автор: levik  |  Нет комментариев »

Шаблоны в php - за и против

В настоящее время написано много шаблонизаторов. Многие php-программисты, думаю, слышали о SMARTY, FastTemplate и иже с ними. У каждого из шаблонизаторов свои особенности, но все они созданы для решения задачи “разделения контента и дизйна“.

Сущность шаблонизатора: дизайн “размещается” в отдельных файлах. В тексте файлов-шаблонов встречаются оформленные по определенным правилам последовательности символов, вместо которых должны подставляться данные. Некоторые “продвинутые” шаблонизаторы позволяют использовать циклы, условные конструкции и вставки кода на PHP.

Возникает вопрос, “А зачем?”. И, думаю, не безосновательно. Ведь PHP позволяет делать всё это. Парадокс? Авторы шаблонизаторов пытаются при помощи интерпретатора PHP создать свой интерпретатор, и считают, что это необходимо, хорошо, ну или просто… неплохо. Проделана огромная работа, потрачены часы, дни, месяцы.. Неужели, всё это зря!?

Попытаемся оправдать применение шаблонизатора. Читать целиком »

Опубликовано Октябрь 26, 2007 | автор: levik  |  Комментарий (1) »