Опубликовано roman - пт, 03/23/2012 - 08:01
Сегодня рассмотрим настройку веб-сервера "с нуля" и установку на него CMS Drupal. На сервере c Linux Debian Stretch/ Ubuntu будем настраивать стандартный набор Apache, MySql, Php и базовую настройку Drupal. Конфигурацию Apache, MySql, Php рассмотрим по умолчанию и изменять не будем.
В дальнейшем рассмотрим более тонкую настройку этого набора. У нас уже имеется сервер, с установленным Debian, и root пароль ssh для доступа к серверу, поэтому приступим. Наш сайт будет иметь адрес: drupaladmin-example.com
Примечание: Предварительно на DNS сервере для вашего домена должна быть создана A запись с ip адресом веб-сервера. Если домен еще не зарегистрирован, то можно настроить через файл hosts:
В Windows: c:\windows\system32\drivers\etc\hosts
В Linux: /etc/hosts
Подготовка сервера
Нам понадобится консольный редактор, я частенько использую nano, поэтому устанавливаем текстовый редактор:
root@server:~# apt-get install nano
Создаем пользователя, который будет работать с сайтом, назовем его webmaster
root@server:~# adduser webmaster
Задаем пароль, отвечаем на все вопросы и пользователь готов к работе.
Подключаемся к серверу под пользователем webmaster и создаем структуру каталогов в домашней папке пользователя webmaster:
webmaster@server:~$ mkdir domains domains/tmp domains/drupaladmin-example.com domains/drupaladmin-example.com/logs domains/drupaladmin-example.com/html
В каталоге ~/domains/drupaladmin-example.com/html — будет лежать наш сайт. В каталоге ~/domains/drupaladmin-example.com/logs — будут лежать логи веб-сервера, относящиеся к нашему сайту. В каталоге ~/domains/tmp — временный каталог для Drupal. Даем полный доступ ~/domains/tmp:
webmaster@server:~$ chmod 777 /home/webmaster/domains/tmp
Установка Apache, MySql, PHP
Подключаемся к серверу под пользователем root.
Обновляем индексные файлы пакетов Debian под пользователем root:
root@server:~# apt-get update
Устанавливаем весь софт:
root@server:~# apt-get install apache2 mysql-server php7.0 php7.0-mysql php7.0-gd
Не забываем указывать пароль доступа root к mysql.
Настройка виртуального хоста Apache
Документацию по виртуальным хостам можно посмотреть на сайте Apache.org Всю настройку на этом этапе делаем под пользователем root Создаем файл /etc/apache2/sites-available/drupaladmin-example.com.conf:
root@server:~# nano /etc/apache2/sites-available/drupaladmin-example.com.conf
Cодержание файла:
Для Apache 2.2:
<VirtualHost *:80>
ServerAdmin info@drupaladmin-example.com
ServerName www.drupaladmin-example.com
ServerAlias drupaladmin-example.com
DocumentRoot /home/webmaster/domains/drupaladmin-example.com/html
<Directory /home/webmaster/domains/drupaladmin-example.com/html>
Options -Indexes +FollowSymLinks
AllowOverride all
order allow,deny
allow from all
</Directory>
ErrorLog /home/webmaster/domains/drupaladmin-example.com/logs/apache_errors.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
# LogLevel warn
CustomLog /home/webmaster/domains/drupaladmin-example.com/logs/apache_access.log combined
php_admin_value upload_tmp_dir "/home/webmaster/domains/tmp"
php_admin_value session.save_path "/home/webmaster/domains/tmp"
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
AddType application/x-httpd-php-source .phps
</VirtualHost>
Для Apache 2.4:
<VirtualHost *:80>
ServerAdmin info@drupaladmin-example.com
ServerName www.drupaladmin-example.com
ServerAlias drupaladmin-example.com
DocumentRoot /home/webmaster/domains/drupaladmin-example.com/html
<Directory /home/webmaster/domains/drupaladmin-example.com/html>
AllowOverride All
Options -Indexes +FollowSymLinks
Require all granted
</Directory>
ErrorLog /home/webmaster/domains/drupaladmin-example.com/logs/apache_errors.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
# LogLevel warn
CustomLog /home/webmaster/domains/drupaladmin-example.com/logs/apache_access.log combined
php_admin_value upload_tmp_dir "/home/webmaster/domains/tmp"
php_admin_value session.save_path "/home/webmaster/domains/tmp"
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
AddType application/x-httpd-php-source .phps
</VirtualHost>
Разрешаем серверу использовать этот виртуальный хост:
root@server:~# a2ensite drupaladmin-example.com
Активируем модуль Rewrite для чистых ссылок в Drupal
a2enmod rewrite
Перезагружаем конфигурацию Apache:
root@server:~# /etc/init.d/apache2 reload
Создание базы MySql
Подключаемся к mysql под пользователем root c вводом ранее заданного пароля:
mysql -uroot -p
Создаем базу данных drupal_admin и пользователя webmaster c паролем, например: dbpassword . Этот пароль приведен в целях обучения, поэтому на рабочих системах не забывайте использовать уникальные и сложные пароли.
CREATE DATABASE drupal_admin;
GRANT ALL PRIVILEGES ON drupal_admin.* TO 'webmaster'@'localhost'
IDENTIFIED BY 'dbpassword' WITH GRANT OPTION;
Выходим из клиента 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
webmaster@server:/home/webmaster/domains/drupaladmin-example.com/html$ wget http://ftp.drupal.org/files/projects/drupal-7.59.tar.gz -O drupal.tar.gz
Для Drupal 8
webmaster@server:/home/webmaster/domains/drupaladmin-example.com/html$ wget https://ftp.drupal.org/files/projects/drupal-8.5.5.tar.gz -O drupal.tar.gz
Разархивируем архив и переносим все файлы в каталог /home/webmaster/domains/drupaladmin-example.com/html:
webmaster@server:/home/webmaster/domains/drupaladmin-example.com/html$ tar xvfz drupal.tar.gz
После разархивации в текущей папке будет папка вида drupal-x.x , где x.x скачанная версия drupal.
Далее перемещаем файлы:
webmaster@server:/home/webmaster/domains/drupaladmin-example.com/html$ mv drupal-x.x/* ./
webmaster@server:/home/webmaster/domains/drupaladmin-example.com/html$ mv drupal-x.x/.* ./
webmaster@server:/home/webmaster/domains/drupaladmin-example.com/html$ rm drupal.tar.gz
webmaster@server:/home/webmaster/domains/drupaladmin-example.com/html$ rmdir drupal-x.x
webmaster@server:/home/webmaster/domains/drupaladmin-example.com/html$ chmod -R 777 sites/default/files
webmaster@server:/home/webmaster/domains/drupaladmin-example.com/html$ cp sites/default/default.settings.php sites/default/settings.php
webmaster@server:/home/webmaster/domains/drupaladmin-example.com/html$ chmod 777 sites/default/settings.php
После этого из браузера заходим по адресу: http://drupaladmin-example.com/install.php и начинаем установку drupal.
В качестве базы данных указываем drupal_admin, имя пользователя webmaster, пароль dbpassword
Каталог для временных файлов устанавливаем в /home/webmaster/domains/tmp
В результате мы получили готовый к работе сервер с установленным drupal.