На днях пришлось делать бэкап сайта через SSH. Решил написать сам себе шпаргалочку на будущее и выложить на свой блог. Вдруг еще кому пригодится… Эта инструкция действительна, если у вас веб-сервер Apache 2 на Linux и сайт на PHP/MySQL (в такой конфигурации работает большинство сайтов в Интернете).
Скорее всего, для новичков эта статья не подойдет, однако если у вас уже есть хотя бы небольшой опыт работы с командной строкой и администрирования веб-сервера Apache, то эта статья будет отличным напоминанием.
Если у вас сайт на WordPress, то вы можете создать бэкапы при помощи специальных плагинов.
Еще вам могут пригодиться другие команды терминала Ubuntu, Linux и Mac OS X (если вы никогда не работали с консолью, то сначала обязательно прочтите эту статью).
Хочу сказать, что если вы умеете делать бэкапы через SSH, то делать бэкапы через SSH намного легче и быстрее, чем при помощи FTP и PhpMyAmin. Но чтобы научиться пользоваться SSH, придется потратить время.
Что такое SSH простыми словами?
Вы можете подключиться к своему сайту, чтобы скачать его файлы, по FTP или SSH. Это названия протоколов передачи данных, которые описывают, как будут передаваться данные. Если вы подключаетесь по ФТП, то ваши файлы передаются в открытую через Интернет, а если вы передаете их по SSH, то все данные зашифрованы.
SSH обычно пользуются опытные системные администраторы, которые виртуозно владеют командной строкой. В общем, пользоваться SSH непросто, но безопасно. ФТП использовать намного проще, и если вы новичок, то лучше пользоваться ФТП.
Пара слов о настройках веб-сервера Apache в разных дистрибутивах Linux
Обычно конфигурационный файл Apache лежит в следующих папках в зависимости от операционной системы:
- Fedora, CentOS (один файл, который содержит информацию обо всех сайтах): /etc/httpd/conf/httpd.conf.
- Debian, Ubuntu (система небольших конфигурационных файлов, обычно один отдельный файл на каждый сайт или однородных настроек сервера): /etc/apache2/apache2.conf
Конфигурирование также возможно в отдельном файле .htaccess на уровне директорий, чтобы дополнить или переписать настройки конфигурационных файлов.
Полезные команды для работы с веб-сервером Apache
- apachectl -V – эта команда показывает версию Апаче и где лежит конфигурационный файл (утилита apachectl установлена не на всех серверах!);
- grep -v “^$|^[[:space:]]*#” /etc/httpd/conf/httpd.conf | less – эта команда позволяет читать конфигурационный файл без комментариев (v – выборка несовпадающих строк);
- service apache2 status – проверка статуса веб-сервера Apache.
Пошаговая инструкция по созданию бэкапа сайта через SSH
На самом деле в создании бэкапа сайта через SSH нет ничего сложного, просто надо хорошо освоить командную строку.
Самое сложное – это найти корневую директорию сайта (папку, где лежат все файлы сайта), а потом в этих файлах найти, в каком файле записаны доступы к базе данных.
Если у вас сайт на WordPress, то доступы к БД находятся в файле wp-config.php, если сайт на Joomla, то в файле – configuration.php, а если на Drupal, то в файле – settings.php. WordPress, Joomla, Drupal – это три самые популярные в мире CMS.
Шаг | Что делаем | Команда |
1 | Открываем командную строку | Linux: Ctrl + Alt + T Mac OS X: Command (⌘) + Т |
2 | Подключаемся к удаленному серверу по SSH | ssh user-name@server-ip |
3 | Выясняем, в какой папке на сервере лежат файлы нашего сайта. Входим в папку, где лежат виртуальные хосты. | cd /etc/apache2/sites-enabled |
4 | Смотрим названия файлов с виртуальными хостами *.conf | ls |
5 | Открываем файлы виртуальных хостов *.conf при помощи текстового редактора nano и смотрим, в какой папке лежит сайт (в строке Document Root) | nano file.conf |
6 | Выходим из текстового редактора nano | Ctrl + X |
7 | Переходим в папку, в которой лежит сайт | cd /var/www/vhosts/pma/httpdocs |
8 | Ищем в конфигурационных файлах доступы к базе данных | ls |
9 | Открываем файлы с именами index.php или config.php и им подобные и ищем в них доступы к БД | nano config.php |
10 | Если на предыдущем шаге не удалось найти доступы к БД, то ищем в корневой директории сайта файлы, содержащие слово "database" | grep -i -R "database" корневая папка сайта |
11 | Подключаемся к базе данных MySQL | mysql -u user -p database |
12 | Создаем бэкап базы данных MySQL | mysqldump -u [username] -p [database name] > [database name].sql |
13 | Создаем бэкап с файлами веб-сайта в формате .zip (эта команда архивирует все файлы и подкаталоги из корневой папки сайта в архив с названием backup.zip) | zip -r backup.zip корневая папка сайта/ |
14 | Копируем созданные бэкапы с сервера на свой компьютер (эта команда скачивает файл backup.zip с сервера на текущий компьютер в папку folder) | scp user-name@server-ip:backup.zip /local/folder |
Живенько! Бум проверять… ещё бы “Как развернуть сайт по ssh”. Для полноты комплекта… ?
)))) Как развернуть сайт по SSH (кратко или живенько как Вы говорите):
1) Перекачиваем файлы своего сайта на новый хостинг. Для этого сначала архивируем их, а затем переносим архив с одного сервера на другой.
2) Подключаемся к MySQL как root.
3) Создаем для нового сайта базу данных и пользователя.
4) Прописываем название БД, имя пользователя и пароль в конфигурационном файле сайта.
5) Экспортируем базу данных со старого сайта.
6) Заливаем (импортируем) базу данных на новый сайт.
Все эти команды прописаны здесь: https://wilhard.ru/tech/terminal-ubuntu/