Управление виртуальным сервером осуществляется с помощью командной строки. Для этих целей удобнее всего использовать бесплатную программу PuTTy. Она не требует установки: скачав и запустив утилиту, вы можете тут же подключиться к VDS по протоколу SSH, введя IP-адрес (номер порта по умолчанию - 22) и нажав на кнопку “Open”. После этого на экране появится окно консоли с приглашением к авторизации “login as:”. Введите root, нажмите “Enter”, далее укажите полученный при заказе услуги пароль и вновь подтвердите действие клавишей ввода. Теперь можно начинать работу.
Сама процедура настройки VDS представляет собой ввод в консоль текстовых команд, с помощью которых можно осуществлять практически любые операции над сервером. Ниже рассмотрена последовательность базовых действий, которые необходимо осуществить сразу после запуска виртуальной машины, а также пошаговая установка связки программного обеспечения, необходимого для размещения веб-сайтов. Примеры адаптированы для двух наиболее распространенных семейств Линукс: Debian (к ней относится, например популярный Ubuntu) и Centos (в него входит сам Centos, Fedora и ряд других).
Первоначальная настройка VDS
Обновление программного обеспечения
Начинать настройку VDS необходимо с глобального обновления. Запустить апдейт в Debian-подобных операционных системах можно следующим образом:
apt-get update && apt-get upgrade
для Centos команда иная:
yum update
В процессе обновления вас спросят о том, хотите ли вы установить новые пакеты. Отвечайте утвердительно, используя клавишу Y, и подтвердите свой выбор, нажав “Enter”.
Добавление нового пользователя
Работать с сервером под учетной записью root настоятельно не рекомендуется - лучше всего создать нового пользователя и передать ему необходимые права. В Debian-подобных системах это делается командой:
adduser username
где username следует заменить на желаемое имя пользователя. После ее выполнения вас попросят задать пароль, а затем предложат заполнить дополнительные поля (делать это необязательно - их можно оставить пустыми).
При работе с Centos также используется команда:
adduser username
Однако пароль задается отдельно:
passwd username
Передача привилегий root
После создания нового пользователя ему необходимо передать права суперадминистратора, в противном случае вы не сможете полноценно настроить VDS. Делается это через добавление вновь созданной учетной записи в соответствующую группу. Для Debian-подобных:
gpasswd -a username sudo
для Centos-подобных:
gpasswd -a username wheel
Управление SSH
В целях безопасности необходимо проделать ряд манипуляций с конфигурационным файлом sshd_config, который, как легко догадаться, отвечает за настройку удаленного подключения к серверу по SSH. В разных дистрибутивах Линукс для редактирования используются различные утилиты, соответственно, и команды для них будут несколько различаться. В Debian-подобных применяется nano:
nano /etc/ssh/sshd_config
Для сохранения внесенных изменений необходимо нажать комбинацию клавиш Ctrl+X, затем Y и “Enter”. Centos имеет в своем составе редактор vi:
vi /etc/ssh/sshd_config
Сохранение информации осуществляется командой :x, после чего необходимо нажать “Enter”.
В sshd_config следует запретить вход с помощью учетной записи root, заменив
PermitRootLogin yes
на
PermitRootLogin no
а также поменять порт SSH, используемый по умолчанию, заменив
Port 22
например, на
Port 50132
Номер порта лучше выбирать из диапазона 49152-65535 - это позволит избежать возможных конфликтов с различными службами и сервисами Линукс. После описанных манипуляций необходимо перезапустить SSH. В Debian это делается так:
service ssh restart
а в Centos:
systemctl reload sshd
Теперь необходимо переподключиться к серверу через назначенный порт под новой учетной записью, после чего настройку VDS можно продолжать.
Установка и настройка LEMP
Большинство современных CMS написаны на языке программирования PHP. Это означает, что для размещения практически любого сайта, независимо от типа и функционала, нам понадобится LEMP. Данная аббревиатура обозначает связку современного и очень быстрого веб-сервера Nginx, интерпретатора php-fpm и системы управления базами данных MySQL. Процедура установки достаточно проста и не займет много времени.
Установка Nginx
Начнем с установки Nginx. В Debian-подобных дистрибутивах это делается одной строчкой:
sudo apt-get install nginx
после чего сервер будет автоматически запущен.
В Centos сперва необходимо добавить репозиторий EPEL:
sudo yum install epel-release
и только после этого производить установку:
sudo yum install nginx
Финальный этап - запуск Nginx:
sudo systemctl start nginx
Установка MySQL
В Debian-подобных операционных системах сервис баз данных устанавливается командой:
sudo apt-get install mysql-server mysql-client
В процессе вас попросят задать пароль администратора MySQL.
В Centos-подобных дистрибутивах вместо MySQL используется форк MariaDB, обладающий теми же функциональными возможностями. После его установки:
sudo yum install mariadb-server mariadb
сервер баз данных необходимо запустить, а также добавить в список автозагрузки:
sudo systemctl start mariadb sudo systemctl enable mariadb
Настройка MySQL
Первичная настройка сервера баз данных осуществляется с помощью специального скрипта, идущего в комплекте с основным ПО:
sudo mysql_secure_installation
После запуска вас попросят ввести пароль администратора MySQL, который мы задали на предыдущем этапе, а затем зададут ряд вопросов, отвечать на которые необходимо кнопками Y (да) и N (нет), подтверждая выбор клавишей “Enter”:
- Хотите ли вы сменить пароль? (Change the root password?) - Нет (N)
- Удалить анонимных пользователей? (Remove anonymous users?) - Да (Y)
- Запретить удаленную авторизацию с правами суперпользователя? (Disallow root login remotely?) - Да (Y)
- Удалить тестовую базу данных? (Remove test database and access to it?) - Да (Y)
- Перезагрузить таблицу привилегий? (Reload privilege tables now?) - Да (Y)
Добавление новой базы данных
Управление базами данных осуществляется через консоль MySQL. Чтобы в нее войти, необходимо ввести команду:
mysql -u root -p
после чего авторизоваться, используя пароль администратора.
Для размещения динамического сайта необходимо создать базу данных, с которой будет работать движок. Обычно для каждого проекта создается отдельная БД и отдельный пользователь, который может ей управлять. Давайте создадим базу данных sitedb, пользователя site_user, а затем передадим последнему права на управление sitedb (вы можете заменить предложенные имена на любые другие).
Делается это следующим образом:
Создаем базу данных:
CRE ATE DATABASE sitedb;
Создаем пользователя (вместо password укажите уникальный пароль)
CREATE USER site_user@localhost IDENTIFIED BY 'password';
Передаем права управления sitedb пользователю site_user:
GRANT ALL PRIVILEGES ON sitedb.* TO site_user@localhost IDENTIFIED BY 'password';
Обновляем данные о привилегиях:
FLUSH PRIVILEGES;
По завершении всех операций выйдите из консоли MySQL:
exit
Установка PHP
Важный этап настройки VDS - установка и конфигурирование интерпретатора PHP. Команды для разных дистрибутивов Линукс отличаются. Инсталляция в Debian осуществляется так:
sudo apt-get install php5-fpm php5-mysql
В Centos - немного иначе:
sudo yum install php php-mysql php-fpm
Конфигурация PHP
Первый шаг - редактирование файла php.ini. В Debian и Ubuntu он располагается здесь:
sudo nano /etc/php5/fpm/php.ini
В Centos-подобных дистрибутивах - непосредственно в каталоге etc:
sudo vi /etc/php.ini
В обеих системах сперва необходимо раскомментировать и поменять значение в следующей строчке:
;cgi.fix_pathinfo=1
на
cgi.fix_pathinfo=0
Таким образом, мы закрыли важную уязвимость, с помощью которой злоумышленники могли бы получить несанкционированный доступ к сайту. На этом настройка интерпретатора на Debian завершена, осталось перезапустить PHP-процессор:
sudo service php5-fpm restart
В Centos же необходимо отредактировать и файл www.conf:
sudo vi /etc/php-fpm.d/www.conf
Здесь требуется найти строчку
listen = 127.0.0.1:9000
и заменить на
listen = /var/run/php-fpm/php-fpm.sock
Также меняем
listen.owner = nobody listen.group = nobody
на
user = nginx group = nginx
Далее запускаем интерпретатор, а также вручную добавляем его в автозагрузку:
sudo systemctl start php-fpm sudo systemctl enable php-fpm
Создание директории
Теперь необходимо создать каталог, в котором будут располагаться файлы вашего ресурса. В любой операционной системе Линукс это делается следующей командой:
sudo mkdir /var/www/sitename.ru/public_html
В данном примере sitename.ru необходимо заменить на доменное имя сайта. Что касается файлов CMS, их следует загрузить в папку public_html. По завершении загрузки необходимо передать права управления веб-серверу. Здесь есть различия в именах, используемых для обозначения Nginx. Для Debian-подобных дистрибутивов команда будет выглядеть так:
sudo chown -R www-data:www-data /var/www/html/*
В Centos иначе:
sudo chown -R nginx:nginx /var/www/html/*
Добавление нового хоста Nginx
Последний этап настройки VDS для размещения сайта - добавление виртуального хоста Nginx. Нам достаточно отредактировать файл default. В семействе Debian это делается так:
sudo nano /etc/nginx/sites-available/default
В Centos:
sudo vi /etc/nginx/conf.d/default.conf
Открыв файл, удалите из него всю информацию, заменив на код, представленный ниже (вместо sitename.ru подставьте актуальное имя сайта), и сохраните результат:
server { listen 80; server_name sitename.ru; server_name_in_redirect off; access_log /var/log/nginx/sitename.access_log; error_log /var/log/nginx/sitename.error_log; root /var/www/sitename.ru/public_html; index index.php index.html index.htm default.html default.htm; location / { try_files $uri $uri/ /index.php?$args; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Осталось перезапустить Nginx. Команда для дистрибутивов Debian:
sudo service nginx restart
Для Centos:
sudo systemctl restart nginx
Теперь виртуальный сервер полностью готов к эксплуатации, и можно начинать работу непосредственно с веб-ресурсом. Дальнейшие шаги зависят от выбранной CMS.
Комментарии
Напишите, пожалуйста, более подробно, с какой проблемой Вы столкнулись?
sudo apt-get install php5-fpm php5-mysql
Сейчас появилась новая версия 7.0, советую попробовать её.
Еще проблем возникнуть при изменении default:
sudo nano /etc/nginx/sites-available/default
перезагрузить nginx становиться невозможным:
sudo service nginx restart
Советую не удалять то что есть в этом файле, а подкорректировать его согласно тому, что предлагается в статье. Изменить пару строк похожих на то, что есть в данной статье, а остальное оставить.
При установке MySQL нет возможности задать пароль администратора (не запрашивают), в результате чего не могу создать БД, как мне быть?
Пароль должен сохраниться в логах, либо его можно поменять, команда описана в сети множество раз
Спасибо.