понедельник, 29 декабря 2014 г.

Первоначальная настройка VPS на базе CentOS


Завел себе очередной VPS для своих проектов. На этот раз выбор пал на компанию FastVPS. Сервер находится в Германии, но соотношение конфигурация/цена меня привлекли. Так как сервер предоставляется "голым", с предустановленной ОС на выбор (мой выбор - CentOS 7), то нужно его настраивать. Делаю это не часто, так что порой забываю какие-то моменты. Хотел записать полный лог производимых действий, дабы сделать пошаговую шпаргалку. Итак, буду описывать шаги "под себя". Так как изначально дается доступ под root, то первые шаги делаем без всяких sudo. Затем мы запретим коннект из под рута вне локалхоста и настроим судо. Мне комфортнее работать с MC и MCEDIT вместо VIM (раньше пользовлася, но, все таки, он не прижился у меня как инструмент). Соответственно, первым делом ставим Midnight Commander.
В отличие от Debian/Ubuntu, где нужно было указывать пакеты с MC, в CentOS этого делать не нужно. Просто пишем сразу команду:

# yum install mc  

Все должно пройти просто и гладко.

Настраиваем локали

Смотрим вывод команды locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

Шаг 1. Для того чтобы проверить наличие готовых локалей в системе выполняем команду

$ locale -a | grep ru  

Для случая с кодировкой UTF-8 необходимая локаль имеет вид ru_RU.utf8.Если же при выводе команды нет нужной локали, то ее необходимо создать. Команда для этого выглядит так:

$ localedef -i ru_RU -f UTF-8 ru_RU.UTF-8  

Эта команда берет из директории  /usr/share/i18n/locales/ файл ru_RU (это файл с русской локалью), а из директории /usr/share/i18n/charmaps файл UTF-8.gz (это символьная карта для юникода) и на основе этиф файлов генерит нужную нам локаль ru_RU.UTF-8.

Шаг 2. Создаем файл /etc/sysconfig/i18n командой:

$ mcedit /etc/sysconfig/i18n  

После чего в файл пишем следующие строки:
LANG="ru_RU.UTF-8"
SUPPORTED="ru_RU.UTF-8:ru_RU:ru"
SYSFONT="latarcyrheb-sun16"



Шаг 3. После этих изменений сохраняем файл, выходим из терминала и заходим заново.
Сразу же проверяем локаль командой locale.

Если ничего не изменилось или не достигнут результат, а он должен выглядеть так:

LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC=C
LC_TIME=POSIX
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES=POSIX
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=


то проверяем наличие в системе библиотеки glibc-common. Ищем подходящую

$ yum search glibc-common  

у меня 64 разрядная ОС, значит библиотека имеет такое имя:

$ yum install glibc-common.x86_64 

Устанавливаем. Повторяем все с шага 2.

И если опять же ничего не установилось, то выполняем команду:

$ localectl set-locale LANG="ru_RU.UTF-8" LC_NUMERIC="C" LC_TIME="POSIX" LC_MESSAGES="POSIX" 

И снова перелогиниваемся. На этот раз уж точно должно все заработать. Если возникли проблемы и в этот раз... Либо пробуем все пройти заново. проверяя каждый шаг, либо идем гуглить что может быть еще не так. Запускаем screen и переходим к настройке прав доступа и созданию пользователей.

Создаем рабочего пользователя и настраиваем SSH.
Добавляем нашего пользователя oxy командой

$ useradd oxy                                
$ passwd oxy                                 
# Вводим пароль для нашего пользователя      

Теперь нужно запретить возможность логиниться из под root через SSH
Редактируем /etc/ssh/sshd_config

# Authentication:
PermitRootLogin no

далее применяем изменения

$ service sshd reload  

Открываем новую сессию по SSH и пробуем войти по рутом (этого не должно получиться) и затем пробуем войти под нашим пользователем. Теперь все операции из под рута можно делать либо через sudo (если он настроен), либо через вход через su.
Незабываем сменить пароль через passwd для рута на свой, вместо выданного хостером (который светится в биллинг панели).

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

Скачиваем готовый конфиг

cd
git clone https://github.com/i0z/myshellconfig.git
./myshellconfig/install root

Под пользователем, соотвественно, выполняем следующее:

cd
git clone https://github.com/i0z/myshellconfig.git
./myshellconfig/install user

и получаем красивую и комфортную для работы консоль.

Когда начнёте собирать Nginx и прочие тулзы, то ОС будет говорить вам, что нет никакого cc и вообще...

Не заморачиваемся и сразу ставим прям весь пакет для разработчика:

$ yum group install "Development Tools"  

После чего у вас будут все нужные библиотеки и компиляторы, в том числе и cc.
Проверить можно командой:

$ whereis cc  

.

Комментариев нет:

Отправить комментарий