Drupal

Статьи, посвящённые CMS Drupal. Установка, настройка, тонкости экплуатации.

Адрес уведомления об обратной ссылке для этой записи:

http://boyandin.info/trackback/64

Трудно быть блогом

В тяжёлое время живём, товарищи. Мало нам было спама в комментариях от программ, так стали ещё появляться т.н. платные комментаторы. И почувствовал я себя как в родном одна тысяча девятьсот девяносто восьмом году....

"Атака ботов" позади, или вести с полей

Переезд сайтов (в основном на Drupal) на выделенный сервер таки состоялся. На "разделённом" (shared) хостинге провайдер всё чаще и настойчивее намекал, что нагрузка на сервер от моих сайтов слишком высока и надо что-то делать.

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

Нынешняя "железная база": P4 2GHz, 1 Gb RAM (DDR2), SATA HDD. Среда обитания сайтов:

ОС: CentOS 5.3
httpd: nginx (FastCGI: spawn-fcgi)
PHP: 5.3 + eaccelerator, "ручная сборка", всё ненужное не включено.
MySQL 5
memcached
Drupal: последняя версия старшей версии 6, штатный кэш включен, memcache включен

Ежедневно создаётся минимум одна полная архивная копия каждой базы данных и сохраняется в шифрованном виде на трёх ресурсах резервного копирования (один из них Amazon S3). Ежедневно создаётся минимум одна полная архивная копия файловой базы сайтов, точно так же копируется на резервные хранилища.

Точные версии по некоторым соображениям не указываю, равно как и критерии, по которым брандмауэр временно отсекает слишком активных "посетителей".

Установленный по умолчанию Apache 2.2 уже вечером первого дня работы сайтов умер сам и утащил в перезагрузку сервер, не выдержав "атаки ботов" (поисковые системы, похоже, с радостью бросились индексировать сайты на новом месте). После работы в связке nginx+Apache пришла в голову простая идея удалить из связки Apache вообще.

В настоящий момент конфигурация выдерживает до 35 обращений к страницам в секунду (средний вес страницы 70 кил) и можно, наконец, дышать спокойнее и вернуться к литературе.

Указанные подробности приведены в первую очередь для тех, кто планирует переводить свои сайты на автономное плавание (DS/VDS), осознавая все вытекающие последствия.

Подробное, пошаговое руководство по созданию оптимальной среды для блога на DS/VDS я дам в соответствующей статье ИНФОфики.

Пока что грубая оценка. Для блога на Wordpress, владелец которого ожидает до 50000 посетителей в сутки, достаточна будет следующая конфигурация VDS: RAM 256Mb, CPU минимум 800MHz. Стоить такой хостинг будет, если потратить некоторое время на поиски, не более 240 рублей в месяц. Мне лично удалось найти всего за 150.

Если вам уже сейчас интересны подробности, как именно настроить такую конфигурацию, пишите.

Адрес уведомления об обратной ссылке для этой записи:

http://boyandin.info/trackback/145

Drupal для блогера: режим dofollow

О том, что такое "dofollow', говорилось во многих местах, в том числе на странице списка русскоязычных dofollow-блогов. Поскольку в Друпале по умолчанию во всех гостевых комментариях стоит атрибут rel="nofollow", имеет смысл пояснить, как именно включается режим «dofollow».

Режим отображения этого атрибута можно изменить, определив функцию themeid_username() т поместив её в файл template.php в каталоге используемой вами темы оформления.

Узнать, какую темы вы используете, вы можете, или посмотрев в исходный код страницы (там часто указано имя темы), или открыв меню «Администрирование» -> «Конструкция сайта» -> «Темы оформления».

Теперь файловым менеджером или иным удобным способом откройте каталог (папку) themes/themeid, где themeid — идентификатор (имя) темы (пишется латинскими буквами. цифрами и знаком подчёркивания). Убедиться, что вы используете точный идентификатор темы можно, открыв файл с расширением .info, находящийся в каталоге с файлами темы.

Если в каталоге нет файла template.php, создайте его (не забудьте про <?php в начале файла). Если есть, скопируйте туда следующий код, заменив themeid идентификатором используемой вами темы:

function themeid_username($object) {

  if ($object->uid && $object->name) {
    if (drupal_strlen($object->name) > 20) {
      $name = drupal_substr($object->name, 0, 15) .'...';
    }
    else {
      $name = $object->name;
    }

    if (user_access('access user profiles')) {
      $output = l($name, 'user/'. $object->uid, array(
        'attributes' => array('title' => t('View user profile.'))
      ));
    }
    else {
      $output = check_plain($name);
    }
  }
  else if ($object->name) {
    if (!empty($object->homepage)) {
      $output = l($object->name, $object->homepage, array(
        'attributes' => array(
          'rel' => 'external')
        )
      );
    }
    else {
      $output = check_plain($object->name);
    }

    // $output .= ' ('. t('not verified') .')';
  }
  else {
    $output = variable_get('anonymous', t('Anonymous'));
  }

  return $output;
}

Там, где стоит строка 'external', код из ядра Друпала ставит по умолчанию 'nofollow'. В нашем случае все ссылки будут отмечены атрибутом rel="external". Если это также излишне, удалите или закомментируйте эту строку в коде выше. Код функции основан на фрагменте, скопированном непосредственно из ядра Друпала 6 и переопределяет логику отображения имён анонимных комментаторов и ссылок в заголовках их комментариях (это документированный способ, именно так и надо переопределять отображение).

Сохраните файл, убедитесь, при помощи команды

$ php -l template.php

что файл не содержит синтаксических ошибок, и сбросьте реестр тем, очистив кэш (если вы его используете), в меню «Администрирование» -> «Настройки сайта» -> «Производительность»

Всё, dofollow работает. Не забудьте только устраивать подобную модификацию всякий раз, когда обновляете тему или используете другую.

Адрес уведомления об обратной ссылке для этой записи:

http://boyandin.info/trackback/113

Drupal для блогера: создаём дистрибутив

Что такое Drupal и кому он может пригодиться

Система управления контентом (Content Management System, CMS) Drupal — один из популярных двигателей Web-приложений, обладающая рядом особенностей, среди которых следует отметить следующие:
— модульность: новая функциональность добавляется созданием т.н. модулей, позволяющих дополнить базовые возможности двигателя любой новой
— интернационализация: есть возможность не только переводить интерфейс на произвольные языки, но и создавать мультиязычные версии меню, одного и того же документа
— развитый API: существует подробная документация по разработке новых модулей, тем оформления и прочих возможностей расширения функциональности
— темы оформления: логика приложения в Drupal отделена от логики представления (того, как это будет видно в браузере); вам не нужно, как в некоторых популярных двигателях, постоянно вносить правки непосредственно в тему оформления — отсюда меньше путаницы и трудно преодолимых сбоев
— универсальность: грамотным выбором модулей Drupal становится годным для практически любого класса приложений, от крупного новостного портала (пример: Internet.ru) до частного блога, от социальной сети (пример: Grabr) до фотогалереи — всё, что вы можете придумать из популярных ныне классов сайтов, может быть реализовано на Drupal

Чем Drupal полезен именно для блогера?

— лёгкость установки (то, чему посвящён этот документ)
— возможность добавлять произвольное количество новых сайтов на основе уже существующей базы кода (файлов двигателя) и администрирования их из единого места
— поддержка RSS и агрегации сторонних источников в ленту RSS (вы можете читать RSS ленты любого количества сайтов, не покидая собственного сайта, сделанного на на Drupal)
— встроенная категоризация документов: вы можете поддерживать категории произвольной сложности иерархии, а также назначать произвольные теги (ассоциативные метки)
— возможность разделения доступа к разным категориям документов на основе т.н. ролей

Всё остальное проще увидеть самому, нежели долго и скучно описывать. Добавлю ещё, что Drupal написан в расчёте на создание очень посещаемых сайтов, а его разработчики крайне оперативно выпускают обновления важных модулей системы в случае, если найден сбой, угроза безопасности и т.д.

На кого рассчитано это руководство

Предполагается, что читающий настоящее руководство умеет распаковывать архивные файлы с расширением .tar.gz, владеет способом редактировать текстовые файлы и эффективно переносить их на внешний сервер (я лично предпочитаю SCP, но и FTP вполне годится).

Предварительная подготовка

Вам потребуется хостинг с поддержкой
— PHP 5 (хотя поддерживается и архаичный уже PHP 4, крайне рекомендуется именно пятая версия PHP, желательно 5.2 или старше)
— системой управления базами данных MySQL (4.1, 5.0 или выше) или PostgreSQL (7.4 или выше)
Чаще всего блогеры используют MySQL, поэтому предположим, что у вас есть хостинг с поддержкой PHP и MySQL — тип операционной системы на нём значения в нашем случае не имеет, но, если особо не оговорено, я предполагаю, что сайт будет работать под управлением Un*x-подобной ОС и Web-сервера Apache.

Итак, у вас должны быть: созданная база данных (т.е., вы знаете имя сервера, где эта БД располагается, имя базы данных, имя и пароль пользователя базы данных), а также способ залить файлы установочного комплекта (дистрибутива) Drupal на ваш будущий сайт.

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

Компоновка дистрибутива

Теперь мы готовы. Самое простое — взять дистрибутив Drupal с официального сайта (в настоящий момент последним из рекомендуемых является Drupal 6.11), распаковать его (прямо на будущем сайте или же распаковать на своём компьютере и перенести файлы на сайт), но у этого подхода есть ряд недостатков:
— там будут только базовые модули, а блогеру могут пригодиться некоторые дополнительные
— и установщик сайта и сам сайт будут на английском языке, и впоследствии потребуется относительно скучная работа по добавлению поддержки русского языка

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

Скачаем дистрибутив Drupal с официального сайта (см. ссылку выше) во вновь созданную папку (каталог) на вашем компьютере и распакуем её. При этом создастся каталог drupal-6.11 (предполагаем, что мы ставим именно версию 6.11, для других версий имя каталога будет иным).

Теперь добавим в исходную комплектацию некоторые очень полезные модули, взять которые можно по приведённым ниже ссылкам:

archive (последняя версия 6.x 1.3) — для отображения архивов документов, с удобной визуализацией в виде календаря
atom (последняя версия 6.x-1.0) — для поддержки формата RSS Atom
calendar (последняя версия 6.x-2.1) — в сочетании с модулем Views позволяет представлять любую дату в календарном формате, удобно в т.ч. для навигации
captcha (последняя версия 6.x-1.0-rc2) — основной инструмент противодействия спаму
cck (последняя версия 6.x-2.2) — если вам потребуются новые типы документов (например, если вы создаёте магазин, хранилище ссылок или статей и т.д.), это позволит создать новые типы документов быстро и изящно
date (последняя версия 6.x-2.1 ) — в сочетании с модулем Views позволяет представлять любую дату в "человеческом представлении, удобно в т.ч. для навигации и отображения данных
dhtml_menu (последняя версия 6.x-3.4 ) — позволяет быстро и красиво перемещаться по сложным иерархическим меню, не загружая каждый раз новую страницу с сервера
domain (последняя версия 6.x-2.0-rc6) — если вы установили несколько сайтов на основе единой физической базы кода и в одной и той же БД, модули из этого компелкта позволят управлять всеми такими сайтами из единого командного центра
i18n (последняя версия 6.x-1.0) — предоставляет возможность перевода контента и выбора языка представления того или иного документа
l10n_client (последняя версия 6.x-1.7) — модуль, позволяющий переводить оставшиеся не переведёнными сообщения сайта легко и удобно, на лету
messaging (последняя версия 6.x-2.0) — позволяет расширить перечень способов уведомлять пользователей и владельца сайта о тех или иных событиях — электронная почта, SMS, Twitter и так далее (для конкретных новых способов может потребоваться установка дополнительных модулей)
multiping (последняя версия 6.x-1.x-dev) — позволяет уведомлять аткие сервисы как Pingoat о новинках на вашем сайте
mollom (последняя версия 6.x-1.7) — ещё один способ противодействия спаму, на основе внешнего сервиса Mollom
nodewords (последняя версия 6.x-1.0) — способ задавать META теги в заголовках документах, как для заглавной страницы, так и для любой иной индивидуально
notify (последняя версия 6.x-1.0 ) — настройка уведомлений о тех или иных событиях (новые документы, комментарии и т.д.)
pathauto (последняя версия 6.x-1.1) — возможность автоматически назначать документам ссылки по множеству схем — с указанием, например, даты и заголовка в ссылке
print (последняя версия 6.x-1.6) — возможность создавать удобные версии для печати того или иного документа
site_map (последняя версия 6.x-1.0) — возможность генерировать карту сайта для посетителей вашего сайта — все меню раскрыты, все иерархические структуры перечислены и т.д.
spamspan (последняя версия 6.x-1.3) — удобно, чтобы смело писать адреса email прямо в тексте документа, не опасаясь, что спам-боты подберут его
tagadelic (последняя версия 6.x-1.2) — удобный способ рисовать облако ассоциативных меток
taxonomy_access (последняя версия 6.x-1.x-dev) — способ управлять доступом к тем или иным категориям документов для тех или иных ролей пользователей
token (последняя версия 6.x-1.1) — модуль, предоставляющий те или иные макроимена для свойств документа, необходим для pathauto
trackback (последняя версия 6.x-1.1 ) — поддержка трэкбэков, автоматического уведомления стороннего сайта о новом содержимом
views (последняя версия 6.x-2.5) — если вам потребуется создать новое представление данных (сделать, например, выборку только материала конкретного типа из конкретных категорий и нужным образом отобразить), этот модуль позволит всё сделать крайне быстро и эффективно
xmlsitemap (рекомендуемая версия 6.x-0.x-dev) — генератор XML карты сайта для поисковых служб, чтобы те могли индексировать сайт быстро и эффективно

Всё скачанное распаковываем в папке modules — она создалась, когда мы распаковали дистрибутив самого Drupal.
Распаковали — при этом каждый модуль создаёт новую папку с соответствующим именем. Перевели дух. Всё? Нет, теперь займёмся переводом на русский язык.

Автоматический перевод и последние штрихи

Drupal, начиная со старшей версии 6, поддерживает автоматизированный перевод: достаточно положить файлы, содержащие переведённые строки (в правильном формате) в правильное место, и при установке соответствующей компоненты нужный язык будет введён в строй автоматически.

Чтобы подготовить весь комплект переводов, идём на сайт Drupaler (честь и хвала энтузиастам, активно поддерживающим перевод Drupal на многие языки) и переходим на страницу загрузки переводов на русский язык.

Теперь вводим в поле поиска, поочерёдно, имя каждого дополнительного модуля, а также строку 'drupal' (без кавычек). Выбираем соответствующую версию, когда предложат, тип: перевод, формат пакетов Drupal 6.x для модуля autolocale (выбрано по умолчанию), нажимаем "Экспортировать".

Сохраняем прибывший файл, затем открываем (в случае модулей) одноимённый каталог в каталоге modules и распаковываем файл с файлами перевода туда. Т.е., если мы, к примеру, скачали файл переводов для модуля domain,то распаковать полученный архив нужно в папке modules/domain.

Переводы для самого Drupal следует распаковать в той папке, куда распаковали сам дистрибутив.
Всё. Теперь можно вновь упаковать полученный, дополненный модулями и переводами дистрибутив, перенести файл на ваш сервер и там распаковать. Ну или закачать по файлам при помощи FTP, хотя это существенно дольше.

Но перед этим сделаем ещё несколько действий, чтобы сэкономить время на их выполнение уже на серере.

В папке sites/default (по отношению к корневой папке, куда распаковали дистрибутив) есть файл default.settings.php. Скопируем его в settings.php (не переименуем! исходный файл лучше оставить нетронутым) в той же папке.

В папке modules/pathauto есть файл i18n-ascii.example.txt — переименуем его или скопируем в файл i18n-ascii.txt

Вот теперь всё, можно переносить на сервер.

Установка

Итак, всё подготовлено, закачано, база данных создана. После того, как вы перенесли все файлы на сервер, необходимо ещё сделать вот что: войти в каталог sites, в нём — в каталог default и дать файлу settings.php права на запись для сервера. В случае, если PHP установлен как модуль Apache, обычно необходимо назначить права 0666, если установлен как CGI — права 0644. Также дайте права на запись для самого каталога sites/default (0777 и 0755, соответственно).

Что теперь? Теперь, если вы готовили хостинг для домена example.com, и всё уже настроено (DNS записи указывают на сервер, куда перенесли дистрибутив Drupal), наберите адрес

http://example.com/install.php

(замените example.com на имя вашего домена)
Выберите русский язык на первом шаге и просто ответьте на очевидные вопросы на последующих.

В среднем процесс установки занимает 2-3 минуты, если дистрибутив уже на месте и БД готова. Вам нужно будет указать параметры подключения к БД, выбрать имя администратора, его пароль и email, название сайта. И всё. Верьте или нет, но сайт для блогера готов и можно его заполнять.

Но как же эта процедура сборки комплекта модулей и переводов, спросите вы? Ответ прост: вам надо проделать её только раз. Потом, по мере выхода новых версий модулей, или при необходимости добавления новых, вы будете повторять операцию только для конкретного модуля и его файлов перевода. Это намного менее трудоёмкий процесс и делается лишь изредка, обычно 1-2 раза в месяц. А добавление нового сайта на основе того же физически дистрибутива — ещё 2-3 минуты работы на каждый новый сайт (при этом у сайта может быть своё оформление и свой комплект модулей, если так будет нужно). О том, как это сделать — в одной из следующих публикаций.

В случае, если вы не боитесь скачивать файлы установки из сторонних источников, вот вечнодействующая ссылка на последнюю версию Drupal 6, со всеми перечисленными модулями, в архиве, который нужно распаковать непосредственно в корневую папку вашего сайта (в ту, на которую ссылается главная страница) по вот этому адресу с моего сайта:

http://dev.boyandin.ru/distr/drupal-6-latest-with-modules-ru.tar.gz

Я стараюсь вносить в него изменения максимально оперативно, в течение 1-2 дней по выходу нового модуля или версии Drupal.

Что дальше?

Установка сайта — полдела. Drupal — сложный инструмент и главное — правильно всё настроить. В последующих статьях я расскажу про то, как быстро и оптимально настроить ваш сайт на Drupal так, чтобы вы могли использовать ваш блог по прямому назначению ещё 20 минут спустя после установки.

Типичные возражения

Предвижу ряд возможных откликов и сразу предваряю их коментариями.

1. Drupal слишком тяжёл и не подходит для обычного блога.

Ответ: всё дело в настройках. Drupal - универсальная система и требует точной настройки. Он не имеет основного, профильного использования и начальные параметры настройки предоставляют некоторую усреднённую функциональность.

Основной ошибкой начинающих пользователей Drupal является то, что они включают все показавшиеся полезными модули, и, не читая советов и руководств, пытаются получить сразу всё. Итогом становится медленная работа двигателя и чрезмерная нагрузка на сервер.

2. Drupal слишком сложен в постижении.

Глаза боятся, руки делают. Интерфейс Drupal не везде представляется самым логичным, но при желании разобраться в нём, да при наличии множества свободно доступных руководств, это всегда можно делать. Drupal не настолько запутан, просто к располоежнию управляющих элементов требуется привыкнуть.

Если у вас нет планов, помимо создания "обычного блога" и вас не интересует тонкая оптимизация системы, возможность интегрировать её с другими службами, если вам не нужна универсальность - вам не стоит изучать Drupal или иные универсальные двигатели. Возьмите что-то "стандартное", созданное для вашего случая.

3. Вы предлагаете включить в дистрибутив для блогера кучу ненужных модулей (CCK, Views, Taxonomy access).

Основное достоинство Drupal в том, что если конкретная странциа не пользуется данным модулем, модуль не бует загружаться, требовать какие-то ресурсы и тем самымувеличивать нагрузку на систему. МОдули используются там и тогда, где и когда нужны. Отключенные модули вообще не принимаются двигателем во внимание и ничего, кроме дискового пространства (и неиспользуемых таблиц в БД, если модули уже включались, работали и требовали БД), не отнимают.

В списке выше указаны модули, которые могут оказаться полезными при решении типичных задач работы с блогом, это обобщение не только моего личного опыта. Если конкретный модуль вам в вашей конкретной задаче не нужен - просто не включайте его. Если считаете, что и не будет нужен -удалите его из каталога modules, и всё.

Ссылки по теме

Drupal.org, официальный сайт на английском языке
Drupal.ru, сайт русскоязычного сообщества пользователей
Drupaler.ru , репозиторий переводов Drupal на различные языки — помогите и вы перевести оставшееся не переведённым

-------
Анонсы этой статьи: sloger.net blogistica.ru blogparad.ru grabr.ru

Адрес уведомления об обратной ссылке для этой записи:

http://boyandin.info/trackback/65

Drupal для блогера: установка и первые шаги по настройке

Подготовка к установке Drupal

В предыдущем выпуске рассказывалось, как скомпоновать дистрибутив CMS Drupal (далее Друпал) в вид, пригодный для максимально оперативной установки. Просьба обратить внимание, что и версия самого Друпала, и версии модулей могли значительно измениться - просьба проследовать на страницы, с которых можно скачать модули, и взять там последние версии, или скачать файл drupal-6-latest-with-modules-ru.tar.gz (5.3Мб) и распаковать его в каталог, где находится стартовая страница сайта (Web root directory).

Предполагается, что читатель этого руководства

  • умеет настраивать DNS записи домена, на котором будет работать вновь создаваемый сайт
  • знаком с тем, как загружать файл на Web-сервер через FTP, SCP или иными способами
  • знает, что такое права доступа к файлам и умеет их менять
  • владеет способом распаковывать архивы вида .tar.gz
  • в состоянии использовать текстовые редакторы, в т.ч. в виде Web-интерфейса

Установка базовой конфигурации

В тексте далее я предполагаю, что к данному моменту пользователь

  • настроил DNS домена, а котором будет работать сайт должным образом
  • скачал файл дистрибутива по приведённой выше ссылке или собрал собственный вариант дистрибутива с теми же модулями
  • пользователь создал базу данных (в данном примере предполагаем, что MySQL 4+), знает имя пользователя БД и пароль для доступа к БД на запись

Строкой <root> в дальнейшем будем обозначать каталог (папку), в которую распаковали дистрибутив Друпала.

Важно: этот документ одинаково информативен как при наличии иллюстраций шагов установки, так и без них.

Далее возможны варианты.

1. Установка Друпал с указанием подключения к БД

Перед тем, как начать установку: если это первый ваш сайт на данном дистрибутиве, то двльнейшие действия производятся в каталоге "<root>/sites/default"; если вы создаёте ещё один сайт на той же самой установке Друпала (Друпал позволяет создавать произвольное количество сайтов на основе одной и той же установки), то выполните следующие действия (далее предполагаю, что имя домена вновь создаваемого сайта example.com):

  • создайте каталог <root>/sites/example.com (имя каталога должно совпадать с именем домена)
  • скопируйте файл <root>/sites/default/default.settings.php как <root>/sites/example.com/settings.php
  • откройте каталог <root>/sites/example.com и файл <root>/sites/example.com/settings.php на запись (в случае, если PHP работает как модуль Apache, обычно требуется установить права 0777 для каталога и 0666 для файла; если PHP работает в режиме CGI, то 0755 для каталога и 0644 для файла - обращайтесь к справочным материалам вашего хостинг-провайдера, если не уверенности, что сделали всё правильно

Теперь откройте страницу

http://example.com/index.php

(не забудьте поставить подлинное имя вашего домена) и установка начнётся. Если вы увидите какие-либо сообщения об ошибках, исправьте их, прежде чем продолжить. На первом шаге вам предложат выбрать язык установки. Выбирайте русский, и нажимайте на кнопку "Select language".

Шаг 1

Следующим шагом станет задание параметров подключения к базе данных. Экран достаточно информативен. Предполагается, что вы

  • используете подключение к локальному серверу, localhost
  • используете стандартный порт подключения
  • НЕ задали префикс имени таблиц в БД

Последний пункт весьма важен: если вы собираетесь устанавливать несколько сайтов на базе Друпала в одной и той же базе данных, имеет смысл задать префикс. Я обычно создаю префикс, намекающий на домен, например в нашем условном случае я бы открыл "Дополнительные параметры" и задал бы префикс ec_ (example.com, плюс знак подчерка).

Шаг 2

После того, как всё введено, нажимаем "Сохранить и продолжить". Если вы ошиблись в указании параметров подключения, вас вернут в этот же экран с указанием причины. Если же всё прошло гладко, некоторое время процесс установки происходит сам собой.

Шаг 3

Следующий этап - ввод названия сайта, адреса электронной почты, от имени которого будут рассылаться технические письма и уведомления, и создание первой учётной записи. Внимание: первая учётная запись в Друпал - аналог суперпользователя (root в Un*x, Administrator в Windows). Ни при каких обстоятельствах не используйте эту учётную запись для повседневной работы, взамен созадйте другую учётную запись и дайте ей все полномочия, какие необходимо (об этом позже).

Шаг 4

Подходите ответственно к заданию имени и пароля для суперпользователя. На этом же экране вы увидите, поддерживает ли ваша установка т.е. "чистые ссылки" - красиво выглядящие адреса, не содержащие знаков '?' и '&'. Иногда их ещё называют "ЧПУ" (это сокращение должно быть знакомо пользователям Wordpress).

Там же вы увидите задание часового пояса сервера по умолчанию (установите так, как удобнее - обычно имеет смысл установить ваш собственный пояс и опция автоматической проверки наличия обновлений для ядра Друпала, дополнительных модулей и тем оформления.

Я настоятельно рекомендую оставить эту опцию включенной. Обновления в данной старшей версии Друпала не происходят автоматически, вас будут только уведомлять. Разработчики самого Друпала и наиболее популярных модулей делают всё, чтобы уведомлять о важных обновлениях как можно более оперативно. Обычно на эти сигналы следует обращать самое пристальное внимание.

Шаг 5

Вновь нажимаете на "Сохранить и продолжить" и, если только не случилось чего-нибудь крайне странного, установка Друпал закончится.

Шаг 6

В данный момент вы располагаете полностью функциональным сайтом. К сожалению, вы работаете из-под имени суперпользователя (помните предупреждение?), и большинство полезных функций отключены. Что делать дальше, мы рассмотрим сразу после описания второго, "упрощённого" способа установки Друпал в уже существующую базу данных.

1. Установка Друпал с использованием существующих настроек БД

При установке по этой схеме мы используем уже настроенное подключение к БД. Иными словами, мы возьмём файл настроек для уже установленного сайта Друпал на той же физической установке (том же комплекте файлов). Это удобно, когда вы ставите второй и так далее сайт на ту же физически установку. Расходы усилий минимальны: всё, что потребуется - создать новый каталог для хранения файла настроек и данных, специфических для нового сайта - загруженных файлов, настроек тем и т.д.).

Проделайте следующие действия:

  • создайте каталог <root>/sites/example.com (имя каталога должно совпадать с именем домена)
  • скопируйте файл <root>/sites/default/settings.php (уже установленного сайта) как <root>/sites/example.com/settings.php
  • откройте каталог <root>/sites/example.com и файл <root>/sites/example.com/settings.php на запись (в случае, если PHP работает как модуль Apache, обычно требуется установить права 0777 для каталога и 0666 для файла; если PHP работает в режиме CGI, то 0755 для каталога и 0644 для файла - обращайтесь к справочным материалам вашего хостинг-провайдера, если не уверенности, что сделали всё правильно

Теперь откройте в редакторе скопированный файл <root>/sites/example.com/settings.php и найдите в нём примерно такую строку:

$db_prefix = '';

Задайте другой префикс (см. выше) и сохраните файл. После этого откройте следующий адрес:

http://example.com/install.php

После этого установка пройдёт примерно так же, как и в первом случае. нон е будет шага настройки подключения к БД.

Первые шаги после установки

Итак, установка в её начальном виде завершена. Теперь следует произвести несколько важных настроек: установить модули, параметры сайта, защиту от спама и так далее. Если вы посмотрите на экран, то увидите, что именно вам сейчас рекомендуется сделать.

Шаг 7

Начнём с установки модулей. Нажмите на пункт навигационного меню "Управление", далее "Конструкция сайта" (или сразу отыщите в открывшемся списке всех возможных действий справа от меню ссылку "Модули". Нажмите на "Модули".

Шаг 8

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

Ниже приводится список модулей, которые я бы советовал устанавливать блогеру (часть этих модулей уже установлена; я перечисляю их в том порядке, в котором они видны при прокрутке страницы):
Archive: позволяет создать окно навигации по архивам записей - с возможностью поиска по годам и месяцам.
Aggregator: позволяет импортировать сторонние ленты RSS/Atom для чтения и дальнейшего преобразования их на сайте.
Blog: то, что позволяет писать блоги, поддержка формата блога.
Color: позволяет менять раскраску тем оформления.
Comment: позволяет оставлять комментарии к докментам, а также следить за действиями (активностью) пользователей.
Contact: позволяет добавить форму обратной связи, чтобы отправлять электронные письма на заранее заданные адреса (можно создать произвольные комбинации адресов, на которые отправлять сообщения по тому или иному поводу)
Content translation: поддержка перевода интерфейса и прочего содержимого на другие языки
Database logging: удобно при посике разного рода проблем, хранит сообщения о тех или иных событиях, включая системные ошибки, в специальном журнале - администратор может задать, как долго сохраняются там записи, а также просматривать журнал в любой момент.
Help: позволяет использовать контекстную подсказку.
Locale: поддержка языков, отличных от английского.
Menu: позволяет настраивать меню на сайте.
OpenID: позволяет подключить, после создания, несколько OpenId к учётной записи, для упрощения процедуры авторизации.
Path: позволяет переименовывать внутренние ссылки (в т.ч. создавать те самые чистые ссылки, ЧПУ)
PHP Filter: позволяет использовать непосредственно на страницах код PHP. Внимание: крайне опасная при неосторожном обращении вещь. Если не планируете на самом деле исполнять PHP код, не включайте.
Ping: уведомляет т.н. пинг-сервисы о новых материалах на сайте (чтобы те могли в т.ч. побудить поисковые системы заглянуть на сайт и прочесть новый материал). Как только закончат разрабатывать Multiping, я буду рекомендовать его взамен.
Profile: позволяет добавлять в профиль пользователей новые поля.
Search: встроенный поисковый двигатель в пределах сайта.
Statistics: ведёт статистику доступа к сайту.
Syslog: регистрирует события и записывает в системный журнал.
Taxonomy: позволяет использовать категоризацию материалов, включая свободно назначаемые метки (теги)
Tracker: позволяет пользователям следить за изменениями на сайте.
Trigger: позволяет инициировать те или иные действия в ответ на то или иное событие (например, создание или правку материала)
Update status: автоматически следит за наличием обновлений для модулей и тем, если те поддерживают такую возможность. Очень не советую отключать.
Upload: позволяет прицеплять файлы к документам. Если не собираетесь прицеплять, не включайте.
Spamspan: позволяет защищать адреса электронной почты в документах. Если этот фильтр активен, то адреса преобразуются в нераспознаваемую большинством спам-ботов форму.
Notify: позволяет рассылать уведомления о тех или иных изменениях на сайте
Messaging, Messaging PHP Mailer: возможность отпарвлять уведомления и системные сообщения при помощи электронной почты. PHPMailer - специальный класс, позволяющий удобно составлять и отправлять разными способами электронные письма.
Block translation, Content type translation, Internationalization, Menu translation, Profile translation, String translation, Synchronize translations, Taxonomy translation: этот комплект позволяет переводить те или иные части системы на другие языки, а также создавать многоязычные версии одних и тех же сущностей.
Printer-friendly pages (core), Send by email: возможность видеть страницы в оптимальном для принтера виде, а также пересылать их электронной почтой (надоедать друзьям, показывая им интересные страницы прямо в почте).)
CAPTCHA, Text CAPTCHA: одиозный и малополезный, с точки зрения одних, но во многом помогающий от потока спама модуль. Я не использую графические капчи, мне лично хватает текстовых (арифметическая задача или выбор строки из множества строк).
Atom: возможность поставлять RSS каналы в формате Atom.
Tagadelic: поддержка "облака меток" - представление списка категорий в виде "облака", где самая популярная категория рисуется более крупным шрифтом.
XML Sitemap, XML Sitemap Engines, XML Sitemap Node: позволяет предоставлять т.н. карту сайта для поисковых машин, Sitemap. Если передать эту карту, а такие инструменты есть для Яндекса и для Google, то индексирование страниц сайта пройдёт много эффективнее.
DHTML Menu: по умолчанию, многие меню в блоке навигации иерархические. Если не ставить этот модуль. то придётся несколько раз перезагружать страницу. чтобы добраться до нужной иерархии. Этот модуль экономит время и ресурсы, открывая сложные иерархии достаточно грациозно и красиво.
Meta tags: позволяет назначать каждому документу свои мета-теги (метки и описание как минимум), в т.ч. специальные теги для головной страницы сайта.
Path auto: позволяет создавать чистые ссылки нужного формата.
Sitemap: строит сводную карту сайта, для людей (ранее упоминавшаяся - для поисковых машин).
Token, Token actions: поддержка макро-элементов и действий для них, необходима для Pathauto.
Trackback: поддержка обратных уведомлений (трекбэков) стороннего сайта об изменениях на данном.

Перевели дух? Нажимаем кнопку "Сохранить" и смотрим за процессом установки модулей и импорта переводов. Вас могут предупредить, что для выбранного вами списка модулей есть необходимость включить другие модули. Соглашайтесь - большого выбора всё равно нет.

Шаг 9

Потом увидим страницу списка модулей, поверх которой будет несколько предложений, предупреждений и так далее. Полезно время от времени возвращаться сюда и следовать предложенным действиям, чтобы все предупреждения исчезли.

Шаг 10

Я бы советовал пойти и настроить дату. Меню: "Управление" - "Настройка сайта".

Шаг 11

Если вы указали поддержку экспорта страниц в PDF, не забудьте посетить страницу настройки этой функции.

Шаг 12

Роли и права

Прежде, чем настраивать роли, вкратце поясню, что это такое. Друпал использует систему управления доступом к тем или иным данным и возможностям на основании т.н. ролей. Можно рассматривать это как группы в операционных системах - участие в той или иной группе даёт те или иные полномочия. Есть две встроенные роли: анонимные (неавторизованные, не представившиеся системе) пользователи и авторизованные пользователи. Все прочие роли нужно создавать.

Роли удобны для "точечного" назначения прав в тех случаях, когда не хочется, чтобы все до единого авторизованные пользователи умели исполнять те или иные действия. Скажем, вы можете создать роль "Блогеры" и дать ей право создавать, править и удалять записи в блоге. Не нужно добавлять что-то ещё - права ролей суммируются (если одна из ролей, к которым отнесён пользователь, имеет некие полномочия, а другие роли такоих полномочий не имеют - пользователь будет иметь все полномочия этой роли. Поэтому не стоит повторять то, что уже умеет авторизованный пользователь.

В нашем примере мы создадим административную роль, которая может всё, создадим нового пользователя, которого произведём таким образом в администраторы, и перестанем, наконец, использовать суперпользователя.

Меню: "Управление" - "Управление пользователями" - "Роли".

Шаг 13

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

Меню: "Управление" - "Управление пользователями" - "Разрешения".

Шаг 14

В этом поле помечаем все до единой галочки для роли "Administrator" (или как вы её хотите назвать). Сохраняем изменения.

Теперь делаем то, что многие делают первым: запретим пока что регистрироваться всем желающим на нашем сайте. Меню: "Управление" - "Управление пользователями" - "Параметры регистрации". Выберем пункт, по которому только администратор может создавать учётные записи. Сохраняем изменения.

Шаг 15

Теперь настроим анти-спам, CAPTCHA. Меню: "Управление" - "Управление пользователями" - "CAPTCHA".

Поскольку идентификаторы форм, которые можно защитить "тестом на человечность", так упрощённо переводится CAPTCHA, даны по-английски, поясню:
comment_form: форма отправки комментариев. Обязательно защитить, иначе спамеры в момент наводнят ваш сайт мусором.
comment_mail_page: форма отправки сообщений с сайта. Если позволяете анонимным пользователям отправлять вам сообщения (а надо позволять, иначе потеряете множество потенциальных партнёров), защитите. Иначе спамеры будут слать вам свои послания долго и с удовольствием.
comment_mail_user: то же, но для сообщений конкретному пользователю. Я обычно тоже защищаю.
user_login: форма входа (авторизации). Я обычно не защищаю: если спамер пробил прежний тест и смог зарегистрироваться, то и этот пробьёт. А нормальных людей это раздражает.
user_login_block: то же, но в блоке (обычно над блоком навигации). Не защищаю по той же причине.
user_pass: поле отправления забытого пароля. Обычно защищаю, чтобы меня не развлекали письмами о созданном новом пароле.
user_register: регистрация нового пользователя. Обычно защищаю.

Какую именно версию теста - графику, арифметику или выбор строки - вы выберете. не очень важно. Эффективность их сопоставима.

Если вам потребуется добавить тест CAPTCHA на любую другую форму, пометьте галочкой "Доабвить административную ссылку CAPCTHA на формы", сохраните, затем перейдите под именем с административными полномочиями на страницу с нужной формой и добавьте туда тест. Всё очень просто. Потом советую эту галочку снять, ибо ссылки с предложением поставить CAPTCHA вскоре начнут раздражать.

Теперь, когда CAPTCHA настроена, можно заняться счётчиками. Все любят показывать, сколько раз читали ту или иную страницу. Настроим эту возможность. Меню "Управление" - "Отчёты" - "Настройки журнала доступа".

Шаг 16

Тут всё просто: помечаем включенным "Счётчик просмотра содержимого" и, если нас интересует ведение системных журналов - в том числе о разных ошибках и предупреждениях - пометим также "Включить журнал доступа". Внимание! Не ставьте слишком большой период хранения записей в журнале - база данных, особенно на посещаемом сайте, начнёт стремительно раздуваться. Теперь не забудьте вернуться в "Разрешения" и убедиться, что и анонимным, и авторизованным пользователям позволено видеть счётчики.

Шаг 17

И, наконец, синонимы. Те самые красивые ссылки. Меню "Управление" - "Конструкция сайта" - "Синонимы" - "Настройка автоматических синонимов".

Шаг 18

Здесь я советую произвести следующие действия:
Основные настройки: Действия при обновлении: Ничего не делать. Оставить старый синоним нетронутым.
Основные настройки: Транслитерировать перед созданием синонима - пометить, не то все ссылки начнут быть с русскими буквами.
Настройки адреса блога: Шаблон для адресов страниц блогов: поставить

blog/[uid]
И очистить поле внутреннего синонима ленты. И все аткие поля очистить, см. ниже - ни к чему плодить синонимы сверх меры.
Настройки адреса материала: Шаблон адреса по умолчанию: поставить
[type]/[nid]/[title-raw]
(это породит красивые ссылки вида blog/42342/zagolovok-zapisi)
Посмотрите сами, что выбрать для других полей - я бы везде советовал, если нет нужды, использовать численные синонимы. Это как минимум избавит от хлопот, когда вы решите, например, переименовать категорию.

Что дальше?

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

Дальнейшие настройки - настройки темы, блоков, способов комментирования и так далее - это тема для следующих статей. По окончании того, что описано в этой, у вас есть достаточно защищённая система, уже готовая для ведения блога. Она относительно голая, нет ни облаков тегов, ни форм со счётчиками и списком комментариев. Всё это вы можете поискать сами - а можете подождать день и посетить ИНФОтеку, где в качестве службы скорой помощи будет краткая сводка. в какие пункты меню идти, чтобы произвести то или иное действие.

Адрес уведомления об обратной ссылке для этой записи:

http://boyandin.info/trackback/104