Как установить Drupal на сервер Ubuntu 14.04 с Apache
Введение
Drupal — это популярная система управления контентом (CMS), используемая для ведения некоторых из крупнейших блогов и веб-сайтов в Интернете. Благодаря стабильности базы, адаптируемости платформы и активному сообществу Drupal остается популярным выбором после более чем десятилетнего существования.
В этом руководстве мы расскажем, как установить Drupal на сервер Ubuntu 14.04. Мы будем использовать Apache для обслуживания нашего сайта, так как это конфигурация, рекомендованная командой Drupal.
Предпосылки
Прежде чем приступить к работе с этим руководством, вам понадобится сервер Ubuntu 14.04 с выполненной базовой конфигурацией. Следуйте нашему руководству по первоначальной настройке сервера Ubuntu 14.04, чтобы настроить пользователя без полномочий root с привилегиями sudo.
Вам также потребуется настроить Apache, PHP и MySQL на вашем сервере. Вы можете узнать, как это настроить, следуя нашему руководству по установке LAMP в Ubuntu 14.04.
После того, как вы выполнили вышеуказанные требования, продолжайте работу с этим руководством.
Прежде чем мы получим файлы Drupal и установим их в наш веб-каталог, нам нужно подготовить нашу систему. Хотя 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, которые потребуются приложению Drupal. К счастью, они находятся в стандартных репозиториях Ubuntu.
Обновите локальный кеш пакетов и установите их, набрав:
sudo apt-get update
sudo apt-get install php5-gd php5-curl libssh2-php
Мы также внесем несколько небольших изменений в наш файл конфигурации PHP. Их рекомендуют разработчики Drupal. Откройте файл конфигурации Apache PHP с привилегиями sudo в текстовом редакторе:
sudo nano /etc/php5/apache2/php.ini
Найдите директиву expose_php
и директиву allow_url_fopen
и установите для них обоих значение «Выкл.»:
. . .
expose_php = Off
. . .
allow_url_fopen = Off
. . .
Сохраните и закройте файл, когда закончите.
Включить функцию перезаписи и файлы Htaccess в Apache
Далее мы должны посмотреть на Apache. Во-первых, мы хотим включить функцию перезаписи. Это позволит нашему сайту Drupal изменить URL-адреса на удобные для человека строки.
Фактические модули Apache mod_rewrite
уже установлены по умолчанию. Однако он не включен. Мы можем щелкнуть переключателем, чтобы включить этот модуль, набрав:
sudo a2enmod rewrite
Это включит модуль при следующем перезапуске Apache. Прежде чем мы перезапустим Apache, нам нужно настроить конфигурацию нашего виртуального хоста, чтобы разрешить использование файла .htaccess
. Этот файл будет содержать фактические правила перезаписи и включен по умолчанию в установку Drupal.
Откройте файл виртуального хоста по умолчанию:
sudo nano /etc/apache2/sites-enabled/000-default.conf
В блоке «VirtualHost» добавьте блок каталогов, указывающий на наш веб-корневой каталог. В этом блоке установите для директивы AllowOverride
значение «Все». Вы также можете добавить директиву ServerName
, указывающую на ваше доменное имя, и изменить директиву ServerAdmin
, чтобы она отражала действительный адрес электронной почты:
<VirtualHost *:80>
. . .
ServerName example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
AllowOverride All
</Directory>
. . .
</VirtualHost>
Сохраните и закройте файл, когда закончите.
Теперь нам просто нужно перезапустить веб-сервер, чтобы применить наши изменения в Apache и PHP:
sudo service apache2 restart
Установите файлы Drupal
Теперь, когда наша система готова, мы можем установить Drupal в корень нашего веб-сайта.
На самом деле, мы сначала распаковываем файлы в наш домашний каталог, а затем копируем их в соответствующее место. Это даст нам готовый доступ к исходным файлам в случае, если что-то пойдет не так или если какие-либо файлы будут случайно удалены позже.
Перейдите на страницу загрузки Drupal и ознакомьтесь с последней версией в разделе «Рекомендуемые выпуски». Щелкните правой кнопкой мыши ссылку tar.gz
интересующей вас версии и выберите «копировать адрес ссылки» или любую аналогичную опцию, которую предоставляет ваш браузер.
Вернитесь на свой сервер, перейдите в свой домашний каталог и используйте wget
, чтобы загрузить файл проекта, используя скопированную ссылку:
cd ~
wget http://ftp.drupal.org/files/projects/drupal-7.32.tar.gz
Ваша ссылка, вероятно, будет иметь другой номер версии в конце. После загрузки файла извлеките каталог приложения, набрав:
tar xzvf drupal*
Теперь перейдите в только что извлеченную структуру каталогов и используйте утилиту rsync
, чтобы безопасно скопировать все файлы в корневой веб-каталог вашего сервера. Мы используем точку в этой команде, чтобы указать текущий каталог. Это необходимо для того, чтобы скопировать некоторые скрытые файлы, которые нам нужны:
cd drupal*
sudo rsync -avz . /var/www/html
Теперь у вас есть исходная версия файлов в каталоге в вашей домашней папке на случай, если вам когда-нибудь понадобится сослаться на них. Мы перейдем в корневой веб-каталог, чтобы настроить нашу установку:
cd /var/www/html
Настройка файлов Drupal для обеспечения безопасности и простоты установки
Сценарий установки через Интернет требует, чтобы мы внесли некоторые изменения в наш каталог Drupal, чтобы правильно завершить процесс. Мы должны убрать это заранее, чтобы нам не приходилось переключаться между веб-браузером и командной строкой.
Во-первых, нам нужно создать новый каталог в поддереве sites/default
с именем files
:
mkdir /var/www/html/sites/default/files
Далее мы должны скопировать файл настроек по умолчанию на имя файла, которое Drupal использует для активной конфигурации:
cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php
Этот активный файл настроек временно нуждается в некоторых дополнительных разрешениях во время процедуры установки. На данный момент нам нужно дать права на запись владельцу группы (на данный момент мы будем назначать владельца группы веб-пользователю). Мы удалим это после успешной установки:
chmod 664 /var/www/html/sites/default/settings.php
Затем нам нужно предоставить групповое владение нашими файлами веб-пользователю, которым в Ubuntu является www-data
. Мы хотим предоставить всей установке Drupal следующие свойства владения:
sudo chown -R :www-data /var/www/html/*
Теперь ваш сервер настроен соответствующим образом для запуска сценария установки через Интернет.
Завершите процедуру установки через Интернет
Остальная часть установки будет выполняться в вашем веб-браузере. Откройте браузер и перейдите к доменному имени или IP-адресу вашего сервера:
http://server_domain_or_IP
Вы увидите начальную страницу процедуры установки Drupal:
Если у вас нет причин не делать этого, выберите «Стандартную» установку и нажмите «Сохранить и продолжить». Нажимайте следующие несколько кнопок «Продолжить», пока не попадете на страницу конфигурации базы данных. Заполните данные, которые вы использовали при настройке базы данных и пользователя.
В этом руководстве мы использовали базу данных с именем drupal
, пользователя базы данных с именем drupaluser
и пароль password
. Вы должны были выбрать другой пароль на этапе создания пользователя. Нажмите «Сохранить и продолжить» еще раз, когда вы заполните данные своей базы данных:
Примечание. Когда вы нажимаете «Сохранить и продолжить», есть вероятность, что вы будете перенаправлены обратно на ту же страницу конфигурации базы данных. В этом случае просто обновите страницу. База данных будет настроена, а профиль будет установлен. .
В верхней части страницы вы увидите информационное окно, сообщающее, что теперь уместно изменить права доступа к файлу настроек. Мы сделаем это сиюминутно. На данный момент вам нужно настроить некоторую базовую информацию о вашем сайте. Заполните поля, используя соответствующие значения для вашего сайта:
Нажмите кнопку «Сохранить и продолжить» в последний раз, чтобы завершить установку. Теперь вы можете посетить свой сайт, перейдя по своему доменному имени:
Вы успешно завершили установку Drupal.
Однако нам по-прежнему необходимо восстановить разрешения для нашего файла настроек, чтобы неавторизованные пользователи не могли вносить изменения. На вашем сервере ограничьте доступ на запись к файлу, набрав:
chmod 644 /var/www/html/sites/default/settings.php
Это должно заблокировать дальнейшие изменения в файле настроек.
Поиск неисправностей
Если последний этап установки Drupal не завершается, проверьте журналы ошибок:
sudo tail /var/log/apache2/error.log
Если вы видите такую ошибку:
[Wed Nov 12 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
Вы также можете попробовать установить браузер в браузере, отличном от Chrome, например в Safari. Настройки 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
, чтобы заменить файл настроек. Убедитесь, что вы выполнили команду chmod 664 /var/www/html/sites/default/settings.php
, чтобы снова установить правильные разрешения.
Затем снова зайдите на свой IP-адрес — возможно, в другом браузере — и повторите попытку окончательной установки.
Заключение
Теперь у вас есть прочная основа для создания вашего сайта на Drupal. Drupal невероятно гибок, позволяя вам настраивать внешний вид и функциональность сайта в соответствии с вашими потребностями и потребностями ваших пользователей.
Чтобы получить некоторые идеи о том, куда идти дальше, посетите нашу страницу тегов Drupal, где вы можете найти учебные пособия, которые помогут вам на вашем пути. Вы также найдете область вопросов и ответов, чтобы получить помощь или внести свой вклад в сообщество.