Итак у нас есть пустой сервер с CentOS 7 и пора его превратить в полноценный веб-сервер, где можно будет размещать сайты и самое главное – удобно управлять всем хозяйством. Но перед этим надо произвести первичную конфигурацию операционной системы, чем и займемся. Если сервера у вас нет – то ознакомьтесь с первой частью – Веб-сервер на Linux. Часть 1. Установка CentOS 7. Все ниже описанное применимо так же любой пустой VPS/VDS.
Устанавливаем дополнительные программы
Минимальная установка операционной системы хороша тем, что в ней нет ни чего лишнего. Но вместе с тем нет и много полезного. Давайте исправим.
Добавим репозиторий epel
, где есть много полезного ПО, которое не вклюбчено в базовый репозиторий CentOS:
# yum install epel-release
Ставим текстовый редактор nano
:
# yum install nano
Улучшенный монитор процессов htop
:
# yum install htop
htop
это улучшенная версия системного монитора top
, обладает более широким функционалом. Если вам придется искать утечки памяти – без него не обойтись. Да и просто как монитор ресурсов он более нагляден. Запускается просто:
# htop
Выглядит так:
Инструменты для работы с доменами – dig
, host
, whois
:
# yum install bind-utils whois
Эти утилиты незаменимы для получения подробной информации по домену. Например, whois
(что делает я думаю очевидно):
# whois yandex.ru % By submitting a query to RIPN's Whois Service % you agree to abide by the following terms of use: % http://www.ripn.net/about/servpol.html#3.2 (in Russian) % http://www.ripn.net/about/en/servpol.html#3.2 (in English). domain: YANDEX.RU nserver: ns1.yandex.ru. 213.180.193.1, 2a02:6b8::1 nserver: ns2.yandex.ru. 93.158.134.1, 2a02:6b8:0:1::1 state: REGISTERED, DELEGATED, VERIFIED org: YANDEX, LLC. registrar: RU-CENTER-RU admin-contact: https://www.nic.ru/whois created: 1997.09.23 paid-till: 2017.10.01 free-date: 2017.11.01 source: TCI
C помощью dig
можно получить дополнительную информацию о доменной зоне, например о почтовой сервере:
# dig MX yandex.ru ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> MX yandex.ru ;; global options: +cmd ;; Got answer: ;; ->>HEADER<
Проверяем настройки времени/даты
# date Fri Jan 13 06:08:00 EST 2017
У нас стоит EST – североамериканское восточное время. Давайте поменяем на MSK – московское.
Сначала обновим список временных зон:
# yum -y update tzdata
делаем копию текущей зоны:
# mv /etc/localtime /etc/localtime.bak/pre> Устанавливаем нашу:
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Проверяем:
# date Fri Jan 13 20:17:06 MSK 2017
Соответственно если вам не нужна Москва выберите, ту зону которая вам нужна в той же папке /usr/share/zoneinfo/Europe
# ls /usr/share/zoneinfo/Europe Amsterdam Berlin Chisinau Isle_of_Man Lisbon Mariehamn Paris San_Marino Stockholm Vaduz Zagreb Andorra Bratislava Copenhagen Istanbul Ljubljana Minsk Podgorica Sarajevo Tallinn Vatican Zaporozhye Astrakhan Brussels Dublin Jersey London Monaco Prague Saratov Tirane Vienna Zurich Athens Bucharest Gibraltar Kaliningrad Luxembourg Moscow Riga Simferopol Tiraspol Vilnius Belfast Budapest Guernsey Kiev Madrid Nicosia Rome Skopje Ulyanovsk Volgograd Belgrade Busingen Helsinki Kirov Malta Oslo Samara Sofia Uzhgorod Warsaw
Синхронизируем время:
# ntpdate pool.ntp.org 13 Jan 16:19:20 ntpdate[1232]: step time server 195.91.239.8 offset -14402.286056 sec
Как видите у меня разница была значительная, больше 4 часов.
Теперь давайте настроим автоматическую синхронизацию времени. Для этого воспользуемся новой утилитой которая появилась в CentOS 7 – chrony
. Устанавливаем:
yum -y install chrony
Добавляем в автозагрузку и запускаем:
# systemctl enable chronyd # systemctl start chronyd
Проверить работает ли синхронизация можно через статус сервиса:
systemctl status chronyd -l
Настраиваем русскую локаль и раскладку клавиатуры
Смотрим, что у нас имеется:
# localectl System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: us
А какие русские есть?
# localectl list-locales | grep ru ru_RU ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 ru_UA ru_UA.koi8u ru_UA.utf8 russian
Отлично ru_RU.utf8
то, что нам надо. Устанавливаем:
# localectl set-locale LANG="ru_RU.UTF-8" LC_NUMERIC="C" LC_TIME="POSIX" LC_MESSAGES="POSIX"
На что тут надо обратить внимание – для формата выдачи времени и сообщений системы оставлена POSIX, что бы получать сообщения именно в том виде, как нам сообщает система, а не как перевел переводчик. Так же формат чисел установлен в системный.
Добавляем раскладки клавиатуры:
# localectl set-keymap us ru --no-convert
Для того что бы настройки заработали как надо – перезапустите сеанс.
Увеличиваем лимиты процессов и открытых файлов в CentOS
По умолчанию в CentOS стоит весьма низкие лимиты на количество одновременно открытых файлов и запущенных процессов. Если вы используете сервер только для разработки или тестирования, то вряд ли это доставит вам проблем. Но если у вас крутиться на сервере реальный проект (или несколько), то даже при небольшой посещаемости вы можете получить, например, от MySQL такую ошибку:
OS error code 24: Too many open files
Проверяем, что у нас:
процессы на пользователя
# ulimit -u 4096
количество одновременно открытых файлов
# ulimit -n 1024
Если с процессами более менее, то с кол-вом файлов все плохо. Исправляем:
# nano /etc/security/limits.conf
Добавляем в конец файла строки:
* - nofile 8192 # меняем лимит на файлы * - nproc 8192 # на процессы # End of file
Так как мы переопределили лимиты для всех пользователей, то сервер придется перезагрузить. После перезагрузки проверяем:
#ulimit -n -u open files (-n) 8192 max user processes (-u) 8192
Хочу отдельно отметить, что увеличение лимитов для всех пользователей не совсем корректно. Лучше переопределять лимиты под конкретные задачи. Например, если действительно возникаем проблема с MySQL, то меняем значения для того пользователя, под которым запускаются процессы (обычно mysql).
mysql - nofile 8192 # меняем лимит на файлы mysql - nproc 8192 # на процессы # End of file
Но давайте пока оставим все как есть.
На этом пока все, в следующей статье будем уже непосредственно настраивать среду веб-сервера.
View Comments (4)
Про лимиты - попробовал, но у меня почему-то осталось без изменений...
В файле - сохранил. Может, ребут надо сделать?
И с установкой времени - не пошло - решилось по-другому.. https://scontent-amt2-1.xx.fbcdn.net/v/t1.0-9/19149074_1552201441479154_8256966176834466265_n.jpg?oh=486441e2fadb45c2ee048e97c21af4fd&oe=59A04900
zb9s7r
gc4zyw