Это старая версия документа.


Система управления контентом.

проверено на 16.04.2

Один пользователь можно несколько сайтов.

Установка программ

sudo apt install apache2 mysql-server mysql-client vsftpd ssh mc git links

Настройка apache2

добавляем в sudo nano /etc/apache2/sites-available/drupal8.conf следующие строки:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  ServerName drupal8
  DocumentRoot /var/www/drupal8/web
  <Directory /var/www/drupal8/web/>
     Options +FollowSymlinks -MultiViews
     AllowOverride All
  </Directory>
</VirtualHost>

т.к. используем сервер для своей разработки то меняем владельца папки www для удобства работы:

sudo chown -R $USER:$USER /var/www

включаем сайт:

sudo a2dissite 000-default
sudo a2ensite drupal8
sudo service apache2 restart

Настройка php

Включаем php в виде модуля апачи:

sudo apt install php7.0 libapache2-mod-php7.0
sudo a2enmod rewrite
sudo apt install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache  php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext

включаем uploadprogress

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update && sudo apt upgrade
sudo apt install php-uploadprogress
sudo service apache2 restart

Обновление composer

mkdir Загрузки && cd ~/Загрузки
wget https://getcomposer.org/installer
php installer
sudo mv composer.phar /usr/local/bin/composer

Настройка ftp сервера

Для загрузки файлов в файле настройке сервера sudo nano /etc/vsftpd.conf разрешаем право на запись: write_enable=YES и local_umask=022 . Далее рестарт сервера

sudo service vsftpd restart

Создание БД

mysql будет спрашивать root пароль который вы устанавливали при установке mysql.

mysql -u root -p -e "CREATE DATABASE drupal8db CHARACTER SET utf8 COLLATE utf8_bin;"
mysql -u root -p -e "CREATE USER drupal8db@localhost IDENTIFIED BY 'password';"
mysql -u root -p -e "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON drupal8db.* TO 'drupal8db'@'localhost' IDENTIFIED BY 'password';"
mysql -u root -p -e "FLUSH privileges;"

Инсталляция сайта

cd /var/www
composer create-project drupal-composer/drupal-project drupal8 --stability=dev --no-interaction --prefer-dist 

mkdir drupal8/config
mkdir drupal8/config/sync
sudo chown -R www-data:www-data /var/www/drupal8/config/sync

cd drupal8/web
../vendor/bin/drush site-install --db-url=mysql://drupal8db:password@localhost/drupal8db --site-name="Drupal 8 сайт"

сохраняем логин и пароль, добавляем пару модулей

cd ..
composer require drupal/metatag  --prefer-dist
composer require drupal/bootstrap  --prefer-dist

Завершающие настройки

устанавливаем права

chmod 544 /var/www/drupal8/web/sites/default/settings.php

в файл nano /var/www/drupal8/web/sites/default/settings.php добавляем строки с вашим айпи:

$settings['trusted_host_patterns'] = array(
    '^192\.168\.1\.39$',
    '^127\.0\.0\.1$',
    '^localhost$',
);
chmod 444 /var/www/drupal8/web/sites/default/settings.php

Запуск

Заходим на сайт http://192.168.1.39 . Входим по логину и паролю который выдали при инсталляции сайта.

Обслуживание

Резервное копирование

cd /var/www/drupal8/web
../vendor/bin/drush sset system.maintenance_mode 1
../vendor/bin/drush sql-dump --result-file=../baza_drup8.sql

скачать все файлы с помощью виндоуз программы filezilla из дирректории /var/www/drupal8

cd .. && composer update
cd web
../vendor/bin/drush sset system.maintenance_mode 0

Восстановление

drush sset system.maintenance_mode 1

Скопировать все файлы из бэкапа.

mysql -u root -p </baza_drup8.sql
drush sset system.maintenance_mode 0

Обновление

drush -r /path/to/yoursite up
drush -r /path/to/yoursite updb

TODO; что необходимо сделать

  • отправку почты с сайта (postfix)
  • шифрование tls (letsencrypt)
  • использование для администрирования БД Heidisql и Mysql workbench
  • использование shared folders в virtualbox

Ссылки