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

Установка

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

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

sudo apt-get install drupal7

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

  • Для Drupal 7:
    sudo a2enconf drupal7

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

sudo service apache2 restart

Теперь можно запустить броузер http://localhost/drupal7/install.php

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

Перед установкой убедитесь? что у вас установлен и настроен 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

Настройка

  1. Перед началом использования создайте для Drupal базу данных с помощью клиента mysql:
    mysql -u root -p -e "CREATE DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;"

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

    mysql -u root -p

    вводим там запросы:

    CREATE USER username@localhost IDENTIFIED BY 'password';
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON databasename.* TO 'username'@'localhost' IDENTIFIED BY 'password'; 

    выход из mysql - quit.

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

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

  1. выберите язык;

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

clean URLs

Если требуется включить опцию 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

Подробности на https://www.drupal.org/node/1332446

Установка библиотеки APC

sudo apt-get install php-apc
echo "apc.rfc1867 = 1"|sudo tee -a /etc/php5/mods-available/apcu.ini
sudo service apache2 restart

Настройка прав файлов

Создадим скрипт makepermissions.sh.

#make_permissions_for_commerce.sh
username=myusername
path_to_drupal_installation=/home/$username/mycommerce/public_html
 
cd $path_to_drupal_installation
chown -R $username:www-data .
find . -type d -exec sudo chmod u=rwx,g=rx,o= '{}' \;
find . -type f -exec sudo chmod u=rw,g=r,o= '{}' \;
 
cd $path_to_drupal_installation/sites
find . -type d -name files -exec sudo chmod ug=rwx,o= '{}' \;
for d in ./*/files
do
   find $d -type d -exec sudo chmod ug=rwx,o= '{}' \;
   find $d -type f -exec sudo chmod ug=rw,o= '{}' \;
done

Заменить myusername на имя пользователя, заменить mycommerce на папку в которой есть папка public_html с «Друпалом».

Cкрипт запускаем так:

cd ~/mycommerce
sudo ./makepermissions.sh

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

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

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

Настройка ftp

Для загрузки обновлений модулей нежен ftp сервер. Стандартный поддерживаемый это vsftpd сервер. Устанавливаем:

sudo apt-get install vsftpd

Для загрузки файлов в файле настройке сервера /etc/vsftpd.conf разрешаем право на запись: write_enable=YES и local_umask=022 Рестарт сервера

sudo service vsftpd restart

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

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