Поиск по сайту:

Как установить 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, где вы можете найти учебные пособия, которые помогут вам на вашем пути. Вы также найдете область вопросов и ответов, чтобы получить помощь или внести свой вклад в сообщество.