Основы работы с виртуальным сервером

VPS

Во время работы сайта на виртуальном хостинге может потребоваться большая свобода настройки: доустановить какой-то компонент PHP, настроить сервер по своим нуждам, выжав максимум производительности, поэкспериментировать. Для этих целей виртуальный хостинг не пригоден, но отлично подходит виртуальный сервер (VPS).
Возможно, скоро услуга виртуального сервера заменит собой услугу виртуального хостинга. Предпосылки для этого - большая гибкость и современность. Всего несколько лет назад витруальный сервер стоил слишком дорого. Сейчас же цены  на недорогой виртуальный сервер близки к ценам на виртуальный хостинг.
Для тестирования использовался VPS  с памятью 256МБ и двумя ядрами серверного процессора по 2,4 ГГц и 3 Гб на SSD.

Клиент SSH

Для управления виртуальным сервером по протоколу SSH использован терминальный SSH-клиент Bitwise.
В его составе кроме терминала имеется простой двухпанельный менеджер SFTP, в котором можно удобно совершать операции с файлами на сервере.
Поддерживается сохранение конфигурации подключения к серверу в файле профиля программы, в том числе, пароль подключения.
Имеется удобная поддержка текстовых операций "копировать-вставить", что может быть очень удобно для безошибочного ввода команд в терминале.
При первом подключении потребуется принять самоподписанный сертификат сервера для дальнейшей работы в защищенном режиме.

Текстовый редактор Nano

Микроскопических консольный текстовый редактор "Nano" обладает необходимым минимумом функций.
Команда редактирования файла:

nano /путь/к/файлу

Самые нужные команды в нем:

поиск строки: [F6]
вырезать текущую строку: [F9]
вставить текстовыю строку в текущую позицию: [F10]
выйти: [ctrl-x]
сохранить: [ctrl-o]

Перечень остальных команд доступен в справке по [F1].

В дальнейшем указание команд, начинающихся словом "nano", подразумевают редактирование указанного файла в данном редакторе и сохранение полученных результатов в файле.
Естественно, ничто не мешает использовать другой текстовый редактор, например, vim.

Работа с архивами

Закачка архива с файлами CMS занимает на несколько порядков меньше времени, чем закачка каждого из них (а это тысячи файлов!) по отдельности.
Поэтому целесообразно использовать для переноса файлов между вашим компьютером и виртуальным сервером архивирование. 
Команда распаковка архива a.zip в папку var/www/htm выглядит так:

cd var/www/html
unzip a.zip

Указанное выше справедливо и для обратной закачки данных с сервера, например, для резервного копирования.
Пример команды упаковки содержимого папки  /var/www в архив b.zip с максимальным сжатием:

zip -r -9 b.zip /var/www/*

Права доступа к файлам

Работая от root, или другого пользователя, не соответствующего пользователю, от которого работает веб-сервер Лайти, получаем проблемы с доступом к файлам, особенно на запись.

Во избежание этого после операций с архивами и файлами потребуется установить права пользователя, от которого работает Lighttpd, на папку с файлами обслуживаемых им сайтов. Пример такой команды для папки  /var/www для пользователя www-data:

chown -R www-data: /var/www

Операции с базой данных и  резервное копирование

Для операций с базами данных в веб-интерфейсе: загрузки / выгрузки на сайт, ручной правки данных и т.д. удобно использовать phpMyAdmin, скачав архив последней версии с официального сайта. Распаковать полученный файл в папку сайта на сервере. Желательно использовать нестандартное имя для папки для снижения риска атак на phpMyAdmin. Дальнейшие действия описаны в документации.

К сожалению, для больших баз данных phpMyAdmin плохо применим.

Те же операции можно провести и "вручную", что показано ниже.

Входим от пользователя root при помощи команды:

mysql -u root -p

Вводим пароль от root.
После входа и получения приглашения (промта) "mysql>" подтверждающего работу с MariaDB, вводим команды, которые должны заканчиваться точкой с запятой. Если про этот знак препинания забыть, то последовательно введенные строки будут восприняты, как одна команда.

Создаем базу "baza":

mysql> create database baza;

Предоставляем доступ к базе новому пользователю pupkin с паролем dlinnosheee:

mysql> grant all privileges on baza.* to pupkin@'localhost' identified by 'dlinnosheee';

Выходим из управления базами данных

mysql> exit

Резервное копирование той базы с тем же пользователем и паролем в файл текущей папки с именем backup:

mysqldump -u pupkin -pdlinnosheee baza > backup

Извлечение данных из файла обратно в базу

mysql -u pupkin -pdlinnosheee baza < backup

Меры безопасности

Внимание! Изменение описанных ниже настроек может привести в невозможности доступа к серверу. Внимательно проверяйте, что делаете, надежно запоминайте, а лучше - записывайте и  храните в надежном месте все пароли.

Часто пароль, который генерируется провайдером вашего VPS, малоустойчив к подбору.
Также почти наверняка на ваш сервер будут совершать "набеги" боты и атаковать стандартный 22-й порт SSH

Для снижения нагрузки на сервер и некоторого увеличения безопасности, рекомендуется, как минимум:

1. Сменить пароль для root  командой passwd. (новый пароль придется ввести дважды).

2. Сменить SSH-порт на не используемый (желательно использовать порт с номером больше 1024 во избежание конфликтов с занятыми портами):

nano /etc/ssh/sshd_config

Найти строку "Port 22", заменить в ней стандартный порт "22" на новый номер порта. Не забудьте записать этот номер.

Для принятия изменений перезапустить сервис SSH:

service ssh restart

В случае дальнейшей паранойи также можно завести нового пользователя, задать ему пароль, затем заблокировать доступ пользователя "root" к SSH, внеся изменения в тот же файл  "/etc/ssh/sshd_config", заменив в нем в строке "PermitRootLogin yes" слово "yes" на "no". (перезапустить сервис SSH). Затем можно работать с SSH уже от нового пользователя, для повышения полномочий - использовать: SUDO <команда>. Кроме того,  для большей безопасности рекомендуют использовать для SSH не пароль, а доступ по ключу - "publickey".  А если и этих мер безопасности кажется мало,  подробности - в отдельной статье.