Содержание
Система управления контентом.
Один пользователь можно несколько сайтов.
Установка программ
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/captcha --prefer-dist composer require drupal/recaptcha --prefer-dist composer require drupal/metatag --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 . Входим по логину и паролю который выдали при инсталляции сайта.
Обслуживание
прописываем drush для удобства в переменную path
../vendor/drush/drush/drush init --add-path=/var/www/drupal8/vendor/bin
Резервное копирование
у меня получился такой скрипт backup.sh:
backupdir="/home/yuraxu1804/backup/$(date)" mkdir "$backupdir" cd /var/www/drupal8/web ../vendor/bin/drush sset system.maintenance_mode 1 if ../vendor/bin/drush sql-dump --gzip --result-file="$backupdir"/baza_drup8.sql then echo "Backup of sql successful" else echo "Backup of sql failed" fi if tar cfz "$backupdir"/archive.tar.gz -C /var/www drupal8 then echo "Backup of files successful" else echo "Backup of files failed" fi cd /var/www/drupal8/web ../vendor/bin/drush sset system.maintenance_mode 0
потом запускаем crontab -e и прописываем
0 5 * * 1 backup.sh
backup.sh будет запускаться каждую неделю в 5 утра
Восстановление
cd /var/www/drupal8/web drush -r $(pwd) sset system.maintenance_mode 1 cd /home/username/backupssd tar -xzf archive.tar.gz -C /var/www gunzip -d baza_drup8.sql.gz drush sqlc < baza_drup8.sql #mysql -u root -p drupal8db < ./baza_drup8.sql cd /var/www/drupal8/web drush -r $(pwd) sset system.maintenance_mode 0
Обновление
cd /var/www/drupal8/web drush -r $(pwd) sset system.maintenance_mode 1 cd .. composer update drupal/core --with-dependencies cd web drush -r $(pwd) updb drush -r $(pwd) cr drush -r $(pwd) sset system.maintenance_mode 0
TODO; что необходимо сделать
- отправку почты с сайта (postfix)
- шифрование tls (letsencrypt)
- использование для администрирования БД Heidisql и Mysql workbench
- использование shared folders в virtualbox