Есть много известных CMS. Drupal среди них занимает не последнее место. Собственно говоря, этот блог тоже работает на движке Drupal...
Итак, будем отталкиваться от того, что Apache, PHP, [1] MySQL [2]уже установлены и корректно работают.
Для начала создадим БД и пользователя MySQL для Drupal. Сделать это можно как из панели phpMyAdmin [3], так и из командной строки MySQL. Воспользуемся вторым методом ;)
# mysql –u username –p Query OK, 1 row affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) |
Теперь приступаем непосредственно к установке Drupal.
# cd /usr/ports/www/drupal6 # make install clean |
В меню конфигуратора выбираем работу с БД MySQL:
[X] MYSQL MySQL database support |
Не забываем обновить пути после установки порта.
# rehash |
Порт оказался "правильным" – после установки вывел список послеустановочных манипуляций. Однако кроме перечисленных действий, рекомендую переместить каталог drupal6 в другое место, или переименовать.
# mv /usr/local/www/drupal6/ /usr/local/www/another_name |
С MySQL мы уже разобрались, осталось немного "поправить" Apache. Добавим в /usr/local/etc/apache22/httpd.conf (в секцию alias_module) такие строки:
Alias /drupal "/usr/local/www/another_name" |
Для дальнейшей работы необходимо создать файл настроек Drupal и дать право пользователю www писать в этот файл:
# cd /usr/local/www/another_name/sites/default # cp default.settings.php settings.php # chown www:www settings.php |
Чтобы "упростить" дальнейшею установку, скачиваем русскую локализацию и полностью ее распаковав, скопировать файлы и директории в директорию установленного Drupal
# cd /usr/local/www/another_name # wget http://ftp.drupal.org/files/projects/ru-6.x-1.3.tar.gz [4] # tar -xzvf ru-6.x-1.3.tar.gz |
После этих манипуляций будет доступен русский язык уже во время установки.
Дальнейшая установка выполняется уже с веб-морды. С этим, думаю, проблем не возникнет. Единственное что – это планировщик заданий.
Рекомендую использовать связку wget и cron.
# cd /usr/ports/ftp/wget && make install clean |
Добавляем в /etc/crontab:
30 * * * * root /usr/local/bin/wget -O - -q -t 1 http://ip_tachki/another_name/cron.php |
Перестартовываем cron:
# killall –HUP cron |
Теперь ваш новый сайт доступен за адресом http://ip_tachki/drupal/ [5]
Первые шаги после установки
Итак, установка в её начальном виде завершена. Теперь следует произвести несколько важных настроек: установить модули, параметры сайта, защиту от спама и так далее.
Начнём с установки модулей. Нажмите на пункт навигационного меню «Управление», далее «Конструкция сайта» (или сразу отыщите в открывшемся списке всех возможных действий справа от меню ссылку «Модули». Нажмите на «Модули».
Кстати, дополнительные модули можно скачать здесь [6]. Чтобы они появились в списке доступных модулей на сайте, их необходимо распаковать в директорию modules установленого Drupal.
Модули — то, что придаёт Друпалу гибкость. Вы увидите большой список модулей; не следует ставить все подряд из соображений «могут пригодиться» — это один из верных способов превратить ваш сайт в медленное и ресурсоёмкое чудовище.
Ниже приводится список модулей, которые я бы советовал устанавливать блогеру (часть этих модулей уже установлена; я перечисляю их в том порядке, в котором они видны при прокрутке страницы):
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: позволяет прицеплять файлы к документам. Отключайте. Вместо него советую использовать модуль IMCE.
Spamspan: позволяет защищать адреса электронной почты в документах. Если этот фильтр активен, то адреса преобразуются в нераспознаваемую большинством спам-ботов форму.
Notify: позволяет рассылать уведомления о тех или иных изменениях на сайте
Messaging, Messaging PHP Mailer: возможность отправлять уведомления и системные сообщения при помощи электронной почты. PHPMailer — специальный класс, позволяющий удобно составлять и отправлять разными способами электронные письма.
Block translation, Content type translation, Internationalization, Menu translation, Profile translation, String translation, Synchronize translations, Taxonomy translation: этот комплект позволяет переводить те или иные части системы на другие языки, а также создавать многоязычные версии одних и тех же сущностей.
PDF version: позволяет сохранить текущую страницу в pdf-файл. Необходимо подтянуть дополнительно программу конвертации. Рекомендую использовать TCPDF - поддерживает кирилицу без дополнительных танцев с бубном.
Printer-friendly pages (core), Send by email: возможность видеть страницы в оптимальном для принтера виде, а также пересылать их электронной почтой (надоедать друзьям, показывая им интересные страницы прямо в почте).)
CAPTCHA, Text CAPTCHA: одиозный и малополезный, с точки зрения одних, но во многом помогающий от потока спама модуль. Я не использую графические капчи, мне лично хватает текстовых (арифметическая задача или выбор строки из множества строк).
IMCE: позволят загружать на сервер изображения/файлы с функцией просмотра. Поддерживает персональные пользовательские директории и квотирование.
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: поддержка обратных уведомлений (трекбэков) стороннего сайта об изменениях на данном.
Нажимаем кнопку «Сохранить» и смотрим за процессом установки модулей и импорта переводов. Не забываем также о зависимостях. Иногда один модуль требует, что бы был включен другой. За этим нужно следить.
Потом увидим страницу списка модулей, поверх которой будет несколько предложений, предупреждений и так далее. Полезно время от времени возвращаться сюда и следовать предложенным действиям, чтобы все предупреждения исчезли.
Также, я бы советовал пойти и настроить дату. Меню: «Управление» — «Настройка сайта».
Если вы указали поддержку экспорта страниц в PDF, не забудьте посетить страницу настройки этой функции.
Роли и права
Прежде, чем настраивать роли, вкратце поясню, что это такое. Друпал использует систему управления доступом к тем или иным данным и возможностям на основании т.н. ролей. Можно рассматривать это как группы в операционных системах — участие в той или иной группе даёт те или иные полномочия. Есть две встроенные роли: анонимные (неавторизованные, не представившиеся системе) пользователи и авторизованные пользователи. Все прочие роли нужно создавать.
Роли удобны для «точечного» назначения прав в тех случаях, когда не хочется, чтобы все до единого авторизованные пользователи умели исполнять те или иные действия. Скажем, вы можете создать роль «Блогеры» и дать ей право создавать, править и удалять записи в блоге. Не нужно добавлять что-то ещё — права ролей суммируются (если одна из ролей, к которым отнесён пользователь, имеет некие полномочия, а другие роли такоих полномочий не имеют — пользователь будет иметь все полномочия этой роли. Поэтому не стоит повторять то, что уже умеет авторизованный пользователь.
В нашем примере мы создадим административную роль, которая может всё, создадим нового пользователя, которого произведём таким образом в администраторы, и перестанем, наконец, использовать суперпользователя.
Меню: «Управление» — «Управление пользователями» — «Роли».
В поле слева от «добавить роль» вводим имя новой роли. Можно вводить что хотите, я обычно пишу что-то вроде «Administrator». После того, как роль добавлена, назначим ей полномочия.
Меню: «Управление» — «Управление пользователями» — «Разрешения».
В этом поле помечаем все до единой галочки для роли «Administrator» (или как вы её хотите назвать). Сохраняем изменения.
Теперь делаем то, что многие делают первым: запретим пока что регистрироваться всем желающим на нашем сайте. Меню: «Управление» — «Управление пользователями» — «Параметры регистрации». Выберем пункт, по которому только администратор может создавать учётные записи. Сохраняем изменения.
Captha
Теперь настроим анти-спам, CAPTCHA. Меню: «Управление» — «Управление пользователями» — «CAPTCHA».
Поскольку идентификаторы форм, которые можно защитить «тестом на человечность», так упрощённо переводится CAPTCHA, даны по-английски, поясню:
comment_form: форма отправки комментариев. Обязательно защитить, иначе спамеры в момент наводнят ваш сайт мусором.
comment_mail_page: форма отправки сообщений с сайта. Если позволяете анонимным пользователям отправлять вам сообщения (а надо позволять, иначе потеряете множество потенциальных партнёров), защитите. Иначе спамеры будут слать вам свои послания долго и с удовольствием.
comment_mail_user: то же, но для сообщений конкретному пользователю. Я обычно тоже защищаю.
user_login: форма входа (авторизации). Я обычно не защищаю: если спамер пробил прежний тест и смог зарегистрироваться, то и этот пробьёт. А нормальных людей это раздражает.
user_login_block: то же, но в блоке (обычно над блоком навигации). Не защищаю по той же причине.
user_pass: поле отправления забытого пароля. Обычно защищаю, чтобы меня не развлекали письмами о созданном новом пароле.
user_register: регистрация нового пользователя. Обычно защищаю.
Какую именно версию теста — графику, арифметику или выбор строки — вы выберете. не очень важно. Эффективность их сопоставима.
Если вам потребуется добавить тест CAPTCHA на любую другую форму, пометьте галочкой «Добaвить административную ссылку CAPCTHA на формы», сохраните, затем перейдите под именем с административными полномочиями на страницу с нужной формой и добавьте туда тест. Всё очень просто. Потом советую эту галочку снять, ибо ссылки с предложением поставить CAPTCHA вскоре начнут раздражать.
Теперь, когда CAPTCHA настроена, можно заняться счётчиками. Все любят показывать, сколько раз читали ту или иную страницу. Настроим эту возможность. Меню «Управление» — «Отчёты» — «Настройки журнала доступа».
Тут всё просто: помечаем включенным «Счётчик просмотра содержимого» и, если нас интересует ведение системных журналов — в том числе о разных ошибках и предупреждениях — пометим также «Включить журнал доступа». Внимание! Не ставьте слишком большой период хранения записей в журнале — база данных, особенно на посещаемом сайте, начнёт стремительно раздуваться. Теперь не забудьте вернуться в «Разрешения» и убедиться, что и анонимным, и авторизованным пользователям позволено видеть счётчики.
Дальше вам нужно войти в «Управление» — «Управление пользователями» — «Пользователи» и добавить нового пользователя вручную, не забыв включить его в роль администраторов. После этого выйти из системы и войти уже под именем нового пользователя.
Дальнейшие настройки — настройки темы, блоков, способов комментирования и так далее — это тема для следующих статей. По окончании того, что описано в этой, у вас есть достаточно защищённая система, уже готовая для ведения блога. Она относительно голая, нет ни облаков тегов, ни форм со счётчиками и списком комментариев. Всё это вам под силу, и можете сжелать сами...
Вроде все…