Drupal – это популярная система управления контентом (CMS), которая используется для запуска и поддержки блогов и сайтов любого масштаба. Благодаря надёжной БД, адаптивности платформы и активному сообществу пользователей Drupal остается одной из популярнейших CMS в течение многих лет.
Данное руководство покажет, как установить Drupal на сервер Ubuntu 14.04. для обслуживания сайта будет использоваться веб-сервер Apache, так как именно он рекомендуется командой Drupal.
Требования
Для выполнения инструкций необходим предварительно настроенный сервер Ubuntu 14.04; чтобы узнать, как выполнить начальную настройку сервера Ubuntu 14.04, читайте эту статью.
Также нужно предварительно установить программный стек LAMP. Инструкции по установке этой группы программ – здесь.
После установки Apache, PHP и MySQL нужно внести дополнительные поправки в настройки этих программ.
Создание БД и пользователя MySQL для Drupal
Сначала нужно создать пользователя и БД MySQL для новой установки Drupal.
Запустите сессию MySQL:
mysql -u root -p
Введите root-пароль MySQL.
Пройдя аутентификацию, вы увидите командную строку MySQL. Создайте БД для Drupal (для примера назовём её drupal).
CREATE DATABASE drupal;
Затем создайте пользователя, при помощи которого Drupal сможет подключиться к БД (в руководстве используется условное имя пользователя drupaluser):
CREATE USER drupaluser@localhost IDENTIFIED BY 'password';
Примечание: Замените условные данные в командах своими данными.
Итак, теперь БД и пользователь готовы. Осталось передать пользователю права на эту БД. Для корректной работы Drupal нужны довольно широкие права доступа. Ниже приводится хороший пример настройки прав, который позволит программе функционировать должным образом, при этом не подвергая базу данных опасности:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost;
Теперь у пользователя есть все необходимые права для управления БД. Чтобы обновить настройки, используйте:
FLUSH PRIVILEGES;
Закройте интерактивную сессию MySQL:
exit
Это вернёт сессию bash.
Установка модулей и отладка PHP
После этого нужно установить несколько важных модулей PHP. Все они хранятся в стандартных репозиториях Ubuntu.
Установите их, предварительно обновив список пакетов.
sudo apt-get update
sudo apt-get install php5-gd php5-curl libssh2-php
Теперь, согласно рекомендациям разработчиков Drupal, нужно отредактировать настройки PHP. Откройте конфигурационный файл PHP сервера Apache:
sudo nano /etc/php5/apache2/php.ini
Найдите директивы expose_php и allow_url_fopen и измените их значение на Off:
. . .
expose_php = Off
. . .
allow_url_fopen = Off
. . .
Сохраните и закройте файл.
Файлы .htaccess
После этого нужно настроить Apache. во-первых, необходимо включить переопределение настроек. Это позволит системе Drupal трансформировать URL-адреса в удобные для восприятия строки.
Модуль mod_rewrite, отвечающий за переопределение настроек, установлен по умолчанию, но не включен. Чтобы включить его, введите:
sudo a2enmod rewrite
Модуль будет включен после перезапуска Apache. Но прежде чем перезапустить веб-сервер, нужно настроить виртуальные хосты для использования файлов .htaccess. Этот файл содержит правила перезаписи и включен по умолчанию в установку Drupal.
Откройте стандартный виртуальный хост.
sudo nano /etc/apache2/sites-enabled/000-default.conf
Найдите блок VirtualHost и добавьте в него блок кода для root-каталога сайта. Добавьте директиву AllowOverride и установите значение All. Можно также добавить директиву ServerName, указывающую на доменное имя, а также отредактировать ServerAdmin, указав email.
<VirtualHost *:80>
. . .
ServerName example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
AllowOverride All
</Directory>
. . .
</VirtualHost>
Сохраните и закройте файл.
Теперь нужно перезапустить веб-сервер, чтобы обновить настройки Apache and PHP:
sudo service apache2 restart
Установка файлов Drupal
Теперь система полностью готова к установке Drupal в root-каталог проекта.
На самом деле, нужно изначально распаковать файлы в домашнем каталоге, а затем скопировать их в root-каталог. Таким образом, у вас останется доступ к оригинальным файлам в случае, если что-то пойдет не так.
Откройте страницу загрузки Drupal и найдите последнюю версию в разделе Recommended releases. Кликните правой кнопкой по ссылке tar.gz необходимой версии и скопируйте адрес ссылки.
Вернитесь на сервер, откройте домашний каталог и при помощи wget загрузите файлы:
cd ~
wget http://ftp.drupal.org/files/projects/drupal-7.32.tar.gz
Примечание: Скорее всего, ваша ссылка будет отличаться от ссылки, приведённой в команде.
После загрузки файла извлеките программу:
tar xzvf drupal*
Перейдите к только что загруженной структуре каталогов и используйте rsync, чтобы скопировать файлы в root-каталог сайта. В данной команде точка указывает на текущий каталог; это позволит скопировать скрытые файлы:
cd drupal*
sudo rsync -avz . /var/www/html
Теперь файлы скопированы, а в домашнем каталоге остались их оригиналы, которые можно использовать в случае необходимости. Откройте root-каталог проекта:
cd /var/www/html
Подготовка Drupal к установке
Установочный веб-скрипт требует внести в каталог Drupal некоторые изменения. Это нужно сделать заранее, чтобы не переключаться между веб-браузером и командной строкой во время установки программы.
Создайте новый каталог files в sites/default:
mkdir /var/www/html/sites/default/files
Затем скопируйте стандартный файл settings, содержащий активные настройки Drupal:
cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php
Нужно временно изменить права доступа к активному файлу settings. Передайте группе-владельцу файла права на запись. После установки это нужно изменить.
chmod 664 /var/www/html/sites/default/settings.php
После этого нужно предать права на файл пользователю веб-сервера (www-data).
sudo chown -R :www-data /var/www/html/*
Теперь сервер настроен и готов к запуску установки.
Установка Drupal
Оставшиеся действия нужно выполнить в браузере. Откройте браузер и перейдите:
http://server_domain_or_IP
На экране появится начальная страница установки Drupal.
В большинстве случаев рекомендуется выбрать установку Standard. Затем нажмите Save and continue. Укажите сведения о базе данных и пользователе.
В данном руководстве используются условные данные drupal, drupaluser и password. Укажите вместо них свои данные, а затем нажмите Save and continue.
Примечание: На данном этапе может вернуться страница настройки БД. Если это произошло, просто обновите страницу.
Программа сообщит, что теперь необходимо изменить права доступа к файлу конфигураций. Это можно будет сделать через пару минут, но сначала нужно указать основную информацию о сайте. Заполните поля соответствующей информацией.
Нажмите Save and Continue. Теперь можно посетить свой сайт, введя домен.
Установка Drupal успешно завершена.
Осталось только изменить права доступа к конфигурационному файлу.
chmod 644 /var/www/html/sites/default/settings.php
Это заблокирует внесение изменений в файл settings.
Устранение неполадок
Если установка Drupal не удалась, проверьте логи ошибок.
sudo tail /var/log/apache2/error.log
В логе будет такая ошибка:
[Wed Nov 15 13:40:10.566144 2014] [:error] [pid 7178] [client 108.29.37.206:55238] PHP Fatal error: Call to undefined function field_attach_load() in /var/www/html/includes/entity.inc on line 316, referer: http://12.34.56.78/install.php?profile=standard&locale=en
sh: 1: /usr/sbin/sendmail: not found
Drupal сообщает о нескольких причинах возникновения этой ошибки, которые можно найти здесь.
Среди самых распространённых способов устранения этой ошибки – редактирование файла /etc/php5/apache2/php.ini. В нём нужно увеличить max_execution_time.
sudo nano /etc/php5/apache2/php.ini
max_execution_time = 300
Также можно попробовать выполнить установку при помощи другого браузера. Настройки cookie браузера могут противоречить настройкам установки.
Вне зависимости от того, как вы исправили ошибку, нужно удалить БД Drupal и файл /var/www/html/sites/default/settings.php, заменить их стандартными копиями, а затем перезапустить установку.
Примечание: Если какие-либо данные или настройки необходимо сохранить, создайте их резервные копии.
Для этого откройте MySQL и введите:
DROP DATABASE drupal;
Затем создайте новую БД согласно инструкциям соответствующего раздела.
Также можно повторно запустить:
cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php
чтобы заменить файл settings.
Также не забудьте временно изменить права на файл:
chmod 664 /var/www/html/sites/default/settings.ph
После этого откройте свой IP (при желании – в другом браузере) и попробуйте выполнить установку снова.
Заключение
Drupal – надёжная основа для любого сайта. Эта гибкая система позволяет настроить внешний вид и функциональность сайта в зависимости от ваших потребностей и нужд пользователей.
В нашем Информатории можно найти ещё много полезных статей и руководств о работе с Drupal.