Это старая версия документа.
Содержание
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
.
Скачайте архив Drupal с официального сайта1):
wget http://ftp.drupal.org/files/projects/drupal-7.14.tar.gz
Распакуйте скачанный архив:
tar -xvzf drupal-7.14.tar.gz
Создайте каталог /var/www/drupal и переместите в него содержимое архива:
sudo mkdir /var/www/drupal sudo mv drupal-7.14/* drupal-7.14/.htaccess /var/www/drupal
Создайте директорию для сайта по умолчанию и установите ее владельцем www-data2):
sudo mkdir /var/www/drupal/sites/default/files sudo chown www-data:www-data /var/www/drupal/sites/default/files
Скопируйте файл настроек:
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
Создайте конфигурационный файл 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>
Включите добавленный в предыдущем пункте сайт и перезагрузите 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 база данных на хостинге, потом будет проще разбираться в назначении таблиц).
Если требуется включить опцию 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
Установка модулей
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х этапов:
- Перевести сайт в состояние Обслуживание
- С помощью программы phpmyadmin сохранить копию БД
- Скопировать все файлы
- Перевести сайт в состояние Работа
Можно делать полуавтоматический бэкап сайта с помощью ssh, rsync и drush:
- Создаем папку с текущей датой и временем
mkdir ~/work/backup/$( date +%H.%M_%d.%m.%Y )
- Входим на сайт по ssh
ssh user@hostingserver.ru
- и переводим сайт оффлайн
~/drush/drush -y -r ~/public_html vset site_offline 1
- Создаем бэкап базы данных
~/drush/drush -r ~/public_html sql-dump --result-file=~/baza_drup1.sql
- В другой консоли копируем все файлы по ssh с помощью rsync
rsync -v -a -r -t -e ssh user@hostingserver.ru:/home/siteaccaunt/ ~/work/backup/31.01.2012
- В первой консоли удаляем дамп БД
rm ~/baza_drup1.sql
- Включаем сайт
~/drush/drush -y -r ~/public_html vset site_offline 0