Как установить Drupal на сервер Ubuntu 14.04 с Apache

Вступление

Drupal - это популярная система управления контентом (CMS), используемая для работы с некоторыми из крупнейших блогов и веб-сайтов в Интернете. Благодаря стабильности базы, адаптивности платформы и ее активному сообществу, Drupal остается популярным выбором после более чем десятилетия на сцене.

В этом руководстве мы расскажем, как установить Drupal на сервер Ubuntu 14.04. Мы будем использовать Apache для обслуживания нашего сайта, так как это конфигурация, рекомендованная командой Drupal.

Предпосылки

Прежде чем приступить к работе с этим руководством, вам понадобится сервер Ubuntu 14.04 с некоторыми основными настройками. Следуйте нашимUbuntu 14.04 initial server setup guide, чтобы получить пользователя без полномочий root с привилегиями sudo.

Вам также необходимо настроить Apache, PHP и MySQL на вашем сервере. Вы можете узнать, как это настроить, следуя нашему руководству поgetting LAMP installed on 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 и установите для них обоих значение «Off»:

. . .
expose_php = Off
. . .
allow_url_fopen = Off
. . .

Сохраните и закройте файл, когда вы закончите.

Включить функцию перезаписи и файлы Htaccess в Apache

Далее мы должны посмотреть на Apache. Во-первых, мы хотим включить функцию перезаписи. Это позволит нашему сайту Drupal изменять URL-адреса для удобных для человека строк.

Фактические модули Apachemod_rewrite уже установлены по умолчанию. Тем не менее, он не включен. Мы можем щелкнуть выключателем, чтобы включить этот модуль, набрав:

sudo a2enmod rewrite

Это включит модуль при следующем перезапуске Apache. Прежде чем перезапустить Apache, нам нужно настроить конфигурацию нашего виртуального хоста, чтобы разрешить использование файла.htaccess. Этот файл будет содержать действительные правила перезаписи и включен по умолчанию в установку Drupal.

Откройте файл виртуального хоста по умолчанию:

sudo nano /etc/apache2/sites-enabled/000-default.conf

В блоке «VirtualHost» добавьте блок каталога, который указывает на наш веб-корень. В этом блоке установите для директивыAllowOverride значение «All». Вы также можете добавить директивуServerName, чтобы указать на ваше доменное имя, и изменить директивуServerAdmin, чтобы отразить действительный адрес электронной почты:


    . . .
    ServerName  example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/html

    
        AllowOverride All
    
    . . .

Сохраните и закройте файл, когда вы закончите.

Теперь нам просто нужно перезапустить веб-сервер для реализации наших изменений в Apache и PHP:

sudo service apache2 restart

Установите файлы Drupal

Теперь, когда наша система готова, мы можем установить Drupal в наш веб-корень.

На самом деле, мы сначала распакуем файлы в наш домашний каталог, а затем скопируем их в соответствующее место. Это даст нам свободный доступ к исходным файлам в случае, если что-то пойдет не так, или в случае, если какие-либо файлы будут случайно удалены позже.

Перейдите кDrupal download page и проверьте последнюю версию в разделе «Рекомендуемые выпуски». Щелкните правой кнопкой мыши ссылку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 choose profile

Если у вас нет причин не делать этого, выберите «Стандартную» установку и нажмите «Сохранить и продолжить». Нажимайте следующие несколько кнопок продолжения, пока не перейдете на страницу конфигурации базы данных. Введите данные, которые вы использовали при настройке базы данных и пользователя.

В этом руководстве мы использовали базу данных с именемdrupal, пользователя базы данных с именемdrupaluser и парольpassword. Вы должны были выбрать другой пароль на этапе создания пользователя. Нажмите «Сохранить и продолжить» еще раз, когда вы заполнили данные своей базы данных:

Drupal database config

Note: Когда вы нажимаете «Сохранить и продолжить», есть вероятность, что вы будете перенаправлены обратно на ту же страницу конфигурации базы данных. Если это произойдет, просто обновите страницу. База данных будет настроена, и профиль будет установлен.

Вверху страницы вы увидите информационное окно, сообщающее, что теперь уместно изменить права доступа к файлу настроек. Мы сделаем это на мгновение. На данный момент вам нужно настроить основную информацию о вашем сайте. Заполните поля, используя соответствующие значения для вашего сайта:

Drupal configure site

Нажмите кнопку «Сохранить и продолжить» в последний раз, чтобы завершить установку. Теперь вы можете посетить свой сайт, перейдя на свое доменное имя:

Drupal completed install

Вы успешно завершили установку 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, заменить их копиями по умолчанию и начать установку заново. If you have any data or settings worth preserving, make backups.

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

Related