Базовая настройка веб-сервера на Debian и установка Drupal

Базовая настройка веб-сервера на Debian и установка Drupal

Сегодня рассмотрим настройку веб-сервера "с нуля" и установку на него CMS Drupal. На сервере c Linux Debian Stretch/ Ubuntu будем настраивать стандартный набор Apache, MySql, Php и базовую настройку Drupal. Конфигурацию Apache, MySql, Php рассмотрим по умолчанию и изменять не будем.

В дальнейшем рассмотрим более тонкую настройку этого набора. У нас уже имеется сервер, с установленным Debian, и root пароль ssh для доступа к серверу, поэтому приступим. Наш сайт будет иметь адрес: drupaladmin-example.com

Примечание: Предварительно на DNS сервере для вашего домена должна быть создана A запись с ip адресом веб-сервера. Если домен еще не зарегистрирован, то можно настроить через файл hosts:

Подготовка сервера

Нам понадобится консольный редактор, я частенько использую nano, поэтому устанавливаем текстовый редактор:

Создаем пользователя, который будет работать с сайтом, назовем его webmaster

Задаем пароль, отвечаем на все вопросы и пользователь готов к работе.

Подключаемся к серверу под пользователем webmaster и создаем структуру каталогов в домашней папке пользователя webmaster:

/domains/drupaladmin-example.com/html — будет лежать наш сайт. В каталоге

/domains/drupaladmin-example.com/logs — будут лежать логи веб-сервера, относящиеся к нашему сайту. В каталоге

/domains/tmp — временный каталог для Drupal. Даем полный доступ

Установка Apache, MySql, PHP

Подключаемся к серверу под пользователем root. Обновляем индексные файлы пакетов Debian под пользователем root:

Устанавливаем весь софт:

Не забываем указывать пароль доступа root к mysql.

Настройка виртуального хоста Apache

Документацию по виртуальным хостам можно посмотреть на сайте Apache.org Всю настройку на этом этапе делаем под пользователем root Создаем файл /etc/apache2/sites-available/drupaladmin-example.com.conf:

Для Apache 2.2: Для Apache 2.4:

Разрешаем серверу использовать этот виртуальный хост:

Активируем модуль Rewrite для чистых ссылок в Drupal

Перезагружаем конфигурацию Apache:

Создание базы MySql

Подключаемся к mysql под пользователем root c вводом ранее заданного пароля:

Создаем базу данных drupal_admin и пользователя webmaster c паролем, например: dbpassword . Этот пароль приведен в целях обучения, поэтому на рабочих системах не забывайте использовать уникальные и сложные пароли.

Выходим из клиента mysql используем команду quit. Наш сервер теперь готов к установке drupal.

Установка Drupal

Дальнейшие действия выполняем под пользователем webmaster. Подробная инструкция по установке Drupal 7 - https://www.drupal.org/docs/7/install Подробная инструкция по установке Drupal 8 - https://www.drupal.org/docs/8/install

Скачиваем с drupal.org последний релиз Drupal.

Для Drupal 7 Для Drupal 8

Разархивируем архив и переносим все файлы в каталог /home/webmaster/domains/drupaladmin-example.com/html:

После разархивации в текущей папке будет папка вида drupal-x.x , где x.x скачанная версия drupal. Далее перемещаем файлы:

После этого из браузера заходим по адресу: http://drupaladmin-example.com/install.php и начинаем установку drupal. В качестве базы данных указываем drupal_admin, имя пользователя webmaster, пароль dbpassword Каталог для временных файлов устанавливаем в /home/webmaster/domains/tmp В результате мы получили готовый к работе сервер с установленным drupal.

Seryak (не проверено)

пн, 03/26/2012 - 13:34

Спасибо за статью, подписываюсь на рсс ленту. Не хватает пособия как подружить Apache и Nginx для уменьшения нагрузки.

пн, 03/26/2012 - 15:29

Ответ на Спасибо за статью, от Seryak (не проверено)

Не проблема;) организуем такую статью. Для начала nginx будет для раздачи статики.

Гость (не проверено)

вт, 03/27/2012 - 17:07

Пробую по вашей инструкции развернуть сайт на vds Сделал su webmaster и попробовал создать папки но не получилось

mkdir: cannot create directory `domains': Permission denied

вт, 03/27/2012 - 17:12

Ответ на Пробую по вашей инструкции от Гость (не проверено)

Не получилось скорее всего потому что выполнили эту команду не из домашней папки. В статье обращу отдельное внимание. Перейдите в /home/webmaster и оттуда запускайте. Порядок действий такой:

1) выполняем cd /home/webmaster 2) mkdir domains domains/drupal-admin.ru domains/drupal-admin.ru/logs domains/drupal-admin.ru/html

Гость (не проверено)

вт, 03/27/2012 - 17:33

Ок, спасибо, попробую. Еще вопрос, 1)а если у меня два домена /etc/apache2/sites-available/drupal-admin1.ru и /etc/apache2/sites-available/drupal-admin2.ru Тогда нужно два таких файла для <VirtualHost 2)Если есть поддомен forum.drupal-admin1.ru , его тоже нужно добавлять в /etc/apache2/sites-available/drupal-admin1.ru ?

Гость (не проверено)

вт, 03/27/2012 - 17:35

Ок, спасибо, попробую. Еще вопрос, 1)а если у меня два домена /etc/apache2/sites-available/drupal-admin1.ru и /etc/apache2/sites-available/drupal-admin2.ru Тогда нужно два таких файла для VirtualHost 2)Если есть поддомен forum.drupal-admin1.ru , его тоже нужно добавлять в /etc/apache2/sites-available/drupal-admin1.ru ?

вт, 03/27/2012 - 17:39

Ответ на Ок, спасибо, попробую. Еще от Гость (не проверено)

Не совсем. Правило такое: для каждого сайта отдельный VirtualHost. Но если forum.drupal-admin1.ru тот же сайт, что и drupal-admin1.ru, то достаточно в ServerAlias для drupal-admin1.ru прописать forum.drupal-admin1.ru

Гость (не проверено)

вт, 03/27/2012 - 17:44

Для drupal-admin1.ru Virtualhost создался нормально, а для drupal-admin2.ru ошибка

apache2: Syntax error on line 230 of /etc/apache2/apache2.conf: Syntax error on line 23 of /etc/apache2/sites-enabled/drupal-admin2.ru: without matching section Action 'configtest' failed. The Apache error log may have more information.

вт, 03/27/2012 - 17:48

покажите конфиг drupal-admin2.ru

Гость (не проверено)

вт, 03/27/2012 - 18:15

Извиняюсь мышкой не все выделил, поэтому и ошибка. При создании БД, база с дефисом в имени не создалась, пришлось убрать дефис. И такой вопрос, а если это мультисайтинг, как будет выглядеть файл с virtualhost и какие еще отличия будут в настройке?

вт, 03/27/2012 - 18:24

Ответ на Извиняюсь мышкой не все от Гость (не проверено)

Я так и понял, что-то не скопировалось:) В статье переименовал базу на drupal_admin (спасибо). С мультисайтингом можно просто добавлять алиасы в 1 virtualhost (в котором прописан каталог установки drupal), далее drupal сам разберется. В принципе больше ничего не надо для мультисайтинга.

Гость (не проверено)

вт, 03/27/2012 - 18:24

Еще вот эта команда mv drupal-7.12/.* ./ выдает ошибку

mv: cannot move `drupal-7.12/..' to `./..': Device or resource busy

И вопрос , а можно было в принципе без создания пользователя webmaster , сайты разместить в /var/www ?

вт, 03/27/2012 - 18:28

Ответ на Еще вот эта команда mv drupal от Гость (не проверено)

сделайте: mv drupal-7.12/.htaccess ./

Гость (не проверено)

вт, 03/27/2012 - 18:31

/domains/drupal-admin1.ru/html$ mv drupal-7.12/.htaccess ./ mv: cannot stat `drupal-7.12/.htaccess': No such file or directory

Гость (не проверено)

вт, 03/27/2012 - 18:28

При запуске install.php 1)PHP extensions Disabled Drupal requires you to enable the PHP extensions in the following list (see the system requirements page for more information): gd 2)File system The directory sites/default/files does not exist. An automated attempt to create this directory failed, possibly due to a permissions problem. To proceed with the installation, either create the directory and modify its permissions manually or ensure that the installer has the permissions to create it automatically. For more information, see INSTALL.txt or the online handbook. 3)Settings file The settings file does not exist. The Drupal installer requires that you create a settings file as part of the installation process. Copy the ./sites/default/default.settings.php file to ./sites/default/settings.php. More details about installing Drupal are available in INSTALL.txt.

Хотя если на XAMPP делаю то все корректно устанавливается само и сразу.

вт, 03/27/2012 - 18:34

странно, похоже он уже перенесся. Проверьте, чтобы в каталоге сайта лежал .htaccess, если лежит, то все ок. Можно продолжать.

Гость (не проверено)

вт, 03/27/2012 - 18:39

Проверил, лежит , все нормально. А почему папка files и settings.php не создаются сами? И как установить библиотеку GD ?

вт, 03/27/2012 - 18:37

По поводу вопроса: а можно было в принципе без создания пользователя webmaster , сайты разместить в /var/www ? Да, конечно можно. Просто я описал в статье как мы обычно делаем, чтобы удобней было shared хостинг делать, когда на одном сервере будет размещено несколько сайтов разных пользователей.

вт, 03/27/2012 - 18:43

На сайт зашли? установку Drupal сделали?

вт, 03/27/2012 - 18:44

Для установка gd: apt-get install php5-gd

Гость (не проверено)

вт, 03/27/2012 - 18:46

Вот такой вопрос. Если домен drupal-admin1.ru является Hostname (основной домен) - то он смотрит только на папку var/www и ищет в ней index.html, а не смотрит в папку в webmaster. А не основной домен drupal-admin2.ru нормально ссылается на свою папку в webmaster. Это можно как то исправить?

вт, 03/27/2012 - 18:49

Пишите на info@drupal-admin.ru либо в аську 43332650 сейчас разберемся

Гость (не проверено)

вт, 03/27/2012 - 18:54

Спасибо, отписался на почту)

вт, 03/27/2012 - 18:59

Ответ на Спасибо, отписался на почту) от Гость (не проверено)

что-то нет письма

Гость (не проверено)

вт, 03/27/2012 - 19:06

Ответ на что-то нет письма от admin

Странно. Еще раз переслал.

вт, 03/27/2012 - 19:11

Ответ на Странно. Еще раз переслал. от Гость (не проверено)

Напишите свою почту

Гость (не проверено)

вт, 03/27/2012 - 19:43

Может по другому имейлу получится alexrnd@gmail.com

вт, 03/27/2012 - 19:04

Да, кстати еще возможна проблема с правами для записи apache. Для первоначальной настройки можно сделать под root: chown -R webmaster:www-data /home/webmaster/domains/drupal-admin.ru/html

Гость (не проверено)

вт, 03/27/2012 - 20:33

Спасибо Роман за помощь и за статью. Буду ждать продолжения, у вас все очень доходчиво и понятно получается изложить.

Гость (не проверено)

ср, 03/28/2012 - 14:34

Еще 2 момента нашел 1)Папка tmp только в ручную создается на странице файловой системы , в процессе установке сама не создается Warning: is_dir(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/home/webmaster/domains:.) in file_directory_temp() (line 2444 of /home/webmaster/domains/xxxxxxxxxx/html/includes/file.inc).

и 2)CleanUrls не работают

ср, 03/28/2012 - 15:12

Ответ на Еще 2 момента нашел от Гость (не проверено)

1) В качестве временной папки устанавливаем: /home/webmaster/domains/tmp (она уже создана) для Apache нужно дать права на эту папку: chmod 777 /home/webmaster/domains/tmp 2) похоже не включен mod_rewrite, под root выполняем: a2enmod rewrite

Гость (не проверено)

ср, 03/28/2012 - 15:28

mod_rewrite помог, спасибо! А папку оставил ту что друпал сам создает sites/default/files/tmp

📎📎📎📎📎📎📎📎📎📎