Docker: Yii2-advanced

В этот раз попробуем собрать близкий к рабочему конфиг для связки php+nginx+mariadb и создадим новый проект на фреймворке Yii2 с шаблоном advanced и его последующей настройкой для работы в режиме разработки(development).

Структура папок будет примерно(опять же в будущем будет меняться в зависимости от требований):

Docker: конфиг новичка

В будущем будет меняться по мере изучения docker. Пока что буду публиковать заметки и подсказки очень кратко. Часть материала взята из открытых источников. Связка для первого проекта будет php+nginx+mariadb+adminer

Все команды выполнять лучше от рута, а также проверить что выключен текущий локальный веб-сервер(если он есть) и его составные(бд и прочее) чтобы не было конфликтов.

Права доступа. Владелец, группа.

Установка прав доступа к файлам пример:

chmod -R 755 folder/

Установка прав доступа всем папкам/файлам в директории:

find "/home/folder/" -type d -exec /bin/chmod 755 {} \; // folders

find "/home/folder/" -type f -exec /bin/chmod 644 {} \; // files

Установка владельца:группы

chown -R webmaster:www-data "/home/folder/";

Создать архив из папки folder

tar -cvf archive.tar.gz folder

Распаковать архив

tar xvzf archive.tar.gz

Посмотреть свободное место

df -h

Копирование данных с rsync

Ключи команды.

-a эквивалентен набору следующих ключей -rlptgoD

-r – означает рекурсивное копирование директорий

-l – копировать симлинки как симлинки

-p – сохранять права доступа к файлам()

-t – сохранять время (модификации) если поддерживается файловой системой

-g – сохранять группу владельца файла

-o – сохранять владельца файла

-D – (эквивалентна опциям –devices –specials), то есть – «–devices» указывает rsync’у копировать символьные и блочные файлы на другой сервер и попробовать их пересоздать там. Эта опция игнорируется, если rsync запущен не от пользователя root. «–specials» – эта опция указывает rsync’у копировать специальные файлы, такие как именованные каналы и сокеты.

-v – эта опция указывает команде rsync выдавать более подробную служебную информацию на старте.

-z – эта опция указывает использовать сжатие при передаче данных.

–progress — показывать ход выполнения копирования данных

-e ssh – указывает rsync использовать протокол ssh.

 

 

Сервер 1 = S1 рабочий и Сервер 2 = S2 резервный.

Обычное копирование файлов.

Заходим на S2. И вводим команду.

rsync -avz -e ssh root@xx.xx.xx.xx:/home/folder1 /home/folder2/

Копирует с сервера S1 от юзера root с ip xx.xx.xx.xx папку folder1 на сервер S2 в папку folder2.