Это старая версия документа.


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

Установка

Установка из репозиториев

Для того чтобы установить Drupal 6 достаточно выполнить

sudo apt-get install drupal6

Начиная с Ubuntu 12.04 в репозитории содержится и Drupal 7

sudo apt-get install drupal7

Для регистрации Drupal в Apache выполните

  • Для Drupal 6:
    sudo ln -s /etc/drupal/6/apache.conf /etc/apache2/conf.d/drupal6.conf

  • Для Drupal 7:

    sudo ln -s /etc/drupal/7/apache2.conf /etc/apache2/conf.d/drupal7.conf

и перезапустите Apache

sudo /etc/init.d/apache2 restart

Далее в статье будет рассмотрена версия, установленная из репозитория.

Установка вручную

Перед установкой убедитесь что у вас установлен и настроен LAMP, а так же установлен пакет php5-gd.

  1. Скачайте архив Drupal с официального сайта1):

    wget http://ftp.drupal.org/files/projects/drupal-7.14.tar.gz
  2. Распакуйте скачанный архив:

    tar -xvzf drupal-7.14.tar.gz
  3. Создайте каталог /var/www/drupal и переместите в него содержимое архива:

    sudo mkdir /var/www/drupal
    sudo mv drupal-7.14/* drupal-7.14/.htaccess /var/www/drupal
  4. Создайте директорию для сайта по умолчанию и установите ее владельцем www-data2):

    sudo mkdir /var/www/drupal/sites/default/files
    sudo chown www-data:www-data /var/www/drupal/sites/default/files
  5. Скопируйте файл настроек:

    sudo cp /var/www/drupal/sites/default/default.settings.php /var/www/drupal/sites/default/settings.php
    sudo chown www-data:www-data /var/www/drupal/sites/default/settings.php
  6. Создайте конфигурационный файл Apache /etc/apache2/sites-available/drupal со следующим содержанием:

    Alias /drupal /usr/share/drupal
     
    <Directory /usr/share/drupal/>
    	Options +FollowSymLinks
    	AllowOverride All
    	order allow,deny
    	allow from all
    </Directory>
  7. Включите добавленный в предыдущем пункте сайт и перезагрузите Apache:

    sudo a2ensite drupal
    sudo /etc/init.d/apache2 restart

Настройка

Перед началом использования создайте для Drupal базу данных с помощью клиента mysql:

CREATE DATABASE название_базы;

Так же желательно завести отдельного пользователя MySQL который будет иметь доступ только к созданной базе:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON название_базы.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'drupalpass';

Эти операции также можно выполнить с помощью оболочки phpMyAdmin.

Перейдите на страницу http://localhost/drupal7/install.php (путь может меняться в зависимости от установленной версии) и пройдите процедуру установки:

  1. Выберите язык.

  2. Заполните информацию о созданной базе данных, пользователе и пароле. Также можно заполнить префикс имен таблиц (рекомендуется, если у Вас для всего 1 база данных на хостинге, потом будет проще разбираться в назначении таблиц).

Если требуется включить опцию clean URLs выполните:

sudo a2enmod rewrite
sudo sed -i "s/^.*# RewriteBase \/drupal/ RewriteBase \/drupal/" /etc/drupal/7/htaccess

Установка библиотеки PECL uploadprogress:

sudo apt-get install php-pear php5-dev
sudo pecl install uploadprogress

надо подождать некоторое время. Потом в файл /etc/php5/apache2/php.ini добавляем

; install the uploadprogress library for Drupal 7(FileField module)
extension=uploadprogress.so

Перезагружаем Apache

sudo /etc/init.d/apache2 restart

Удаление текстовых файлов:

в корневом каталоге

cd ~/public_html
rm -f CHANGELOG.txt COPYRIGHT.txt INSTALL.mysql.txt INSTALL.pgsql.txt INSTALL.txt LICENSE.txt MAINTAINERS.txt UPGRADE.txt INSTALL.sqlite.txt  README.txt 

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

find ~/public_html/sites/all -name "*.txt" -type f | xargs ls

потом удалим

find ~/public_html/sites/all -name "*.txt" -type f | xargs /bin/rm -f

Установка модулей

dh-make-drupal – скрипт позволяющий создавать deb-пакеты из модулей Drupal для более простого управления ими. Для установки dh-make-drupal выполните:

sudo apt-get install dh-make-drupal

Пример использования:

dh-make-drupal views
sudo dpkg -i ./drupal6-mod-views_2.16-1_all.deb

Drush

Drush – инструмент, позволяющий управлять Drupal из командной строки. Поддерживается множество действий, таких как очистка кеша, установка модулей и тем, создание бекапов, получение статуса и т. д. Полный список действий можно посмотреть на сайте http://www.drush.org/.

Drush содержится в репозитории Ubuntu. Чтобы его установить выполните команду

sudo apt-get install drush

Бэкап базы

Создание бекапа базы данных

drush -r /usr/share/drupal6 sql-dump --result-file=~/db_backup.sql

Обновление ПО

после обновления самого друпала у меня слететели все модули и отключились clean urls. бэкап файлов будет хранится в папке ~/drush-backups/drupal6/20120709210216/drupal . clean urls можно обратно включить если создать символическую ссылку на /etc/drupal/6/htaccess вместо файла /usr/share/drupa6/.htaccess . потерянные модули можно установить заново.

sudo drush -r /usr/share/drupal6 up

Установка модулей

скачивание модулей

sudo drush -r /usr/share/drupal6 dl cck ckeditor admin bueditor i18n captcha contact_field views

установка

sudo drush -r /usr/share/drupal6 en content text ckeditor admin bueditor i18n captcha image_captcha contact_field views views_ui

Бэкап сайта

Ручной бэкап сайта состоит из 4х этапов:

  1. Перевести сайт в состояние Обслуживание
  2. С помощью программы phpmyadmin сохранить копию БД
  3. Скопировать все файлы
  4. Перевести сайт в состояние Работа

Можно делать полуавтоматический бэкап сайта с помощью ssh, rsync и drush:

  1. Создаем папку с текущей датой и временем
        mkdir ~/work/backup/$( date +%H.%M_%d.%m.%Y )

  2. Входим на сайт по ssh

        ssh user@hostingserver.ru

  3. и переводим сайт оффлайн

        ~/drush/drush -y -r ~/public_html vset site_offline 1

  4. Создаем бэкап базы данных

        ~/drush/drush -r ~/public_html sql-dump --result-file=~/baza_drup1.sql

  5. В другой консоли копируем все файлы по ssh с помощью rsync

        rsync -v -a -r -t -e ssh user@hostingserver.ru:/home/siteaccaunt/ ~/work/backup/31.01.2012

  6. В первой консоли удаляем дамп БД

        rm ~/baza_drup1.sql

  7. Включаем сайт

        ~/drush/drush -y -r ~/public_html vset site_offline 0

Ссылки

1)
На момент написания статьи последней версией являлся Drupal 7.14
2)
Это пользователь, из-под имени которого по умолчанию запускается Apache в Debian-based дистрибутивах Linux