Перейти к содержимому

Как установить центос 7

  • автор:

Установка CentOS 7

Любая работа по администрированию сервера начинается с самого очевидного и обязательного процесса — инсталляции необходимой ОС, чем мы и займемся. Скачаем и установим CentOS 7 server в конфигурации minimal или netinstall с загрузочной флешки или по сети на обычный диск или raid раздел. Перед этим выполним небольшую подготовительную работу и познакомимся с подробностями нашего дистрибутива, которые могут быть полезны в будущем.

Онлайн-курс по Kubernetes – для разработчиков, администраторов, технических лидеров, которые хотят изучить современную платформу для микросервисов Kubernetes. Самый полный русскоязычный курс по очень востребованным и хорошо оплачиваемым навыкам. Курс не для новичков – нужно пройти вступительный тест.

Вышла новая версия Centos 8. Рекомендую воспользоваться моей статьей на эту тему — Установка Centos 8.

Цели статьи

  1. Кратко рассказать о системе Centos 7.
  2. Объяснить различия установочных образов.
  3. Показать, как сделать загрузочную флешку с Centos для установки с флешки или по сети.
  4. Подробно описать все этапы установки Centos 7 на сервер.
  5. Показать установку Centos на программный рейд mdadm на тех серверах, где нет физического рейд контроллера.

Данная статья является частью единого цикла статьей про сервер Centos.

Cистемные требования CentOS 7

7 июля 2014 года увидел свет релиз дистрибутива CentOS 7. Перед его установкой рекомендуется ознакомиться с системными требованиями. Подробно посмотреть полный список максимальных и минимальных системных требований можно на официальном wiki. Я же приведу только самые важные параметры:

Cистемные требования CentOS 7

Поддержка i386 архитектуры нет
Минимальное количество памяти 1GB
Рекомендуемое количество памяти 1GB на каждое ядро процессора
Минимальное место на диске 10GB
Рекомендуемое место на диске 20GB
Максимальный размер файла (ext3) 2TB
Максимальный размер файловой системы (ext3) 16TB
Максимальный размер файла (ext4) 16TB
Максимальный размер файловой системы (ext4) 50TB

Это официальные данные с сайта CentOS. У RHEL они такие же, я проверял. У меня лично на VDS благополучно все работает и с 512MB памяти, меньше не пробовал ставить, думаю и с 256 заведется.

Типы iso образов CentOS 7

Релиз CentOS содержал в себе несколько видов iso образов. Подробное описание каждого из них представлено в таблице:

Редакции CentOS 7

CentOS-7-x86_64-DVD Этот DVD образ содержит все пакеты, которые могут быть установлены с помощью инсталлера. Рекомендуется для большинства пользователей.
CentOS-7-x86_64-NetInstall Этот NetInstall образ для установки по сети и для восстановления. Инсталлятор спросит, откуда будет производиться установка пакетов. Удобно использовать, если у вас есть локальный репозиторий пакетов.
CentOS-7-x86_64-Everything В этом Everything образе содержится полный набор пакетов CentOS 7. Он может быть использован для установки, либо обновления локального зеркала. Для этого образа требуется двухсторонний DVD, либо флешка на 8 Гб.
CentOS-7-x86_64-LiveGNOME
CentOS-7-x86_64-LiveKDE
Эти два образа являются LiveCD CenOS 7. В зависимости от названия используется та или иная графическая оболочка. Они разработаны для тестирования окружения CentOS 7. Они не устанавливаются на жесткий диск, если вы не собираетесь этого делать принудительно. Набор установленного программного обеспечения поменять нельзя, это можно сделать только на установленной операционной системе с помощью yum.
CentOS-7-x86_64-Minimal С помощью этого Minimal образа можно установить базовую систему CentOS с минимальным набором пакетов, необходимых для работоспособности системы. Все остальное можно доустановить позже с помощью yum. Набор пакетов в этом образе будет такой же, как и на DVD при выборе установки minimal.

Я обычно использую для установки либо minimal образ, либо netinstall.

Cкачать CentOS 7

Скачать свежую на текущий момент версию CentOS 7.2.1511 можно двумя способами:

  1. Через torrent сеть
  2. С ближайшего зеркала

Я в качестве такого зеркала предпочитаю использовать CentOS Yandex Mirror:

Скачать CentOS 7

Torrent Yandex Mirror Размер
Скачать CentOS 7 DVD torrent Скачать CentOS 7 DVD iso 4G
СкачатьCentOS 7 NetInstall torrent СкачатьCentOS 7 NetInstall iso 360M
СкачатьCentOS 7 Everything torrent СкачатьCentOS 7 Everything iso 7G
СкачатьCentOS 7 LiveGNOME torrent СкачатьCentOS 7 LiveGNOME iso 1G
СкачатьCentOS 7 LiveKDE torrent СкачатьCentOS 7 LiveKDE iso 1G
СкачатьCentOS 7 Minimal torrent СкачатьCentOS 7 Minimal iso 634M

Напоминаю, что 32 bit или i386 редакции CentOS 7 не существует. Все дистрибутивы только x86_64, то есть 64 bit.

Загрузочная флешка для CentOS 7

Последнее время лично я практически не пользуюсь обычными CD, предпочитая им загрузочные флешки. Они удобнее, занимают меньше места, проще обновить дистрибутив на них. Но иногда приходится заморочиться для создания загрузочной флешки. Например, для создания загрузочной флешки CentOS 6 я раньше пользовался программой unetbootin, но с 7-й версией этот номер не прошел. Созданная в ней флешка не позволяет установить CentOS 7, так как сам инсталлятор в какой-то момент не видит источник установки на флешке.

Но на выручку пришла бесплатная программа Win32DiskImager. С ее помощью без проблем удается создать загрузочную флешку CentOS 7. Вот как это делается:

загрузочная флешка centos 7

  1. Скачиваем дистрибутив программы.
  2. Скачиваем дистрибутив CentOS 7. Я для теста использовал версию Minimal.
  3. Вставляем чистую флешку, запускаем программу и указываем настройки:
  4. Нажимаем Write и ждем окончания записи.
  5. Загрузочная флешка CentOS 7 готова.

Этого достаточно для создания флешки. Теперь ей можно пользоваться для установки операционной системы с флешки.

Установка CentOS 7 с флешки

После создания загрузочной флешки, можно приступить к установке. Вставляем флешку в сервер, указываем в качестве источника загрузки USB и запускаем компьютер. Нас встречает начальное меню установки CentOS:

установка centos 7 с флешки

Выбираем первый пункт: Install CentOS 7 и жмем enter . После загрузки инсталлера, нас встречает окно с выбором языка, который будет использоваться во время установки. Я всегда выбираю Еnglish , мне так привычнее:

язык установки centos 7

Дальше загружается страница с выбором основных параметров установки. Она уже будет отличаться в зависимости от типа ISO образа, с которого происходит установка центос.

CentOS 7 minimal

Если вы используете диск centos minimal iso, то увидите следующий экран:

меню установки centos 7

Здесь вам предлагают указать параметры установки. Восклицательным знаком помечен раздел, без настройки которого продолжение невозможно. Для настройки доступны следующие параметры установки:

  1. Выбор часового пояса centos.
  2. Выбор раскладки клавиатуры.
  3. Поддержка каких языков будет осуществляться на сервере.
  4. Откуда будет происходить установка. Так как у нас дистрибутив centos minimal, установка будет с локального iso.
  5. Выбор пакетов для установки. В образе minimal доступен только минимальный набор софта.
  6. Разбивка жесткого диска. Подробнее коснемся этого пункта, когда будем разбирать установку на raid.
  7. Настройка сетевых интерфейсов.

Для продолжения установки необходимо выполнить как минимум разбивку жесткого диска. Без этого продолжение установки невозможно. Но мы пройдемся по всем параметрам и установим необходимые для нас значения.

Итак, нажимаем на DATE & TIME и настраиваем параметры времени:

настройка времени centos 7

настройка ntp серверов

  1. Указываем регион.
  2. Выбираем город.
  3. Включаем при необходимости службу времени для синхронизации часов centos с внешними серверами.
    Это возможно сделать только если вы уже настроили сетевые параметры. Если нет, то вернитесь к этой настройке позже.
  4. Выбираем список внешних серверов для синхронизации времени:
  5. Указываем формат, в котором будет отображаться текущее время.
  6. При необходимости изменяем дату сервера.

После завершения настроек жмем сверху синюю кнопку Done .

Идем в следующую настройку — KEYBOARD LAYOUT :

centos 7 выбор раскладки

  1. Добавляем необходимые раскладки. Я добавил Russian .
  2. Нажимаем Options и выбираем, как будет происходить переключение раскладок.
  3. Тестируем раскладки и переключение. Если все в порядке, идем дальше.

Нажимаем LANGUAGE SUPPORT :

centos 7 настройка языка

Выбираем дополнительные языки, которые будет поддерживать система. Чаще всего мне это не нужно, но для примера добавим поддержку русского языка. Это может пригодиться, например, при создании файлового архива с русскими названиями в файлах. С поддержкой русского языка можно работать в консоли с русскими названиями папок и файлов. Если у вас, к примеру, сервер настраивается для работы в качестве шлюза, поддержка дополнительных языков скорее всего не пригодится. После выбора снова жмем Done .

Теперь выполним сетевые настройки. Идем в раздел NETWORK & HOSTNAME . Подробно о настройке сетевых интерфейсов я указывал в одной из своих статей, поэтому останавливаться на этом вопросе не буду. Включаем ползунок в положение ON и получаем автоматически настройки по dhcp:

centos 7 настройка сети

  1. Включение ползунка в положение ON активирует интерфейс, он получает настройки по dhcp.
  2. Если вы хотите изменить эти настройки, нажимаете Configure.
  3. Указываете hostname . Если забудете, то после установки этот параметр можно изменить.

Завершаем настройку нажатием на Done . Теперь можно вернуться в настройки часов и активировать Network Time .

Теперь перейдем в раздел INSTALLATION SOURCE . При установке centos minimal менять этот параметр нет необходимости. Там по-умолчанию установлен локальный источник, нам это подходит. Можно ничего не трогать:

centos 7 minimal install

В разделе SOFTWARE SELECTION при minimal установке тоже нечего выбрать, уже указан единственно возможный вариант:

centos 7 minimal программы

Нам осталось рассмотреть последнюю обязательную настройку, без которой установка centos не начнется — INSTALLATION DESTINATION . Зайдя в нее вы увидите список подключенных к серверу дисков. В моем случае это один жесткий диск.

centos 7 выбор диска

Если ваш диск определился правильно, выбираете его и нажимаете Done . Выскакивает окошко с предупреждением, что для установки системе понадобится примерно 1 Гб места на жестком диске, а на вашем жестком диске нет необходимого свободного места. Это происходит потому, что раньше на этом диске была установлена другая система и она занимала весь жесткий диск. Нам нужно удалить всю старую информацию для установки новой системы. Делаем это, нажимая Reclaim space:

centos 7 очистка разделов

Выбираем диск и удаляем все существующие разделы на нем — жмем сначала Delete all, а потом Reclaim space:

centos 7 удаление разделов

centos 7 reclaim space

После этого установщик выберет весь диск в качестве диска для установки. После этого можно начать непосредственно установку centos, нажав кнопку Begin Installation.

Дальше рассмотрим вариант, когда вы выполняете установку с образа netinstall.

CentOS 7 netinstall

Установка Centos 7 с образа netinstall отличается от прочих только одним моментом. Во время подготовки к установке по сети в разделе INSTALLATION SOURCE вам вместо локального источника необходимо указать путь к образу, расположенному где-то в сети. Очевидно, что перед этим необходимо выполнить настройку сети и убедиться, что у компьютера есть доступ в интернет.

В качестве источника для установки я буду использовать упомянутое ранее зеркало яндекса. CentOS netinstall url — https://mirror.yandex.ru/centos/7/os/x86_64/

На скриншоте указан старый url. После череды обновлений он стал неактуален. Правильная ссылка выше в тексте.

CentOS netinstall url

Указываем путь и жмем Done . После проверки доступности источника, в разделе SOFTWARE SELECTION можно выбрать необходимый для установки набор софта:

centos 7 выбор программ для установки

Дальше можно начинать установку, указав все остальные параметры, которые мы рассмотрели выше.

CentOS 7 установка на raid

Теперь рассмотрим наиболее сложный вариант установки. Мы будем ставить CentOS 7 на программный рейд. Для примера возьмем 2 диска и raid 1. Все установки будут такие же, как мы рассмотрели ранее, кроме одной — INSTALLATION DESTINATION .

Подключаем 2 диска к системе, загружаемся с установочного диска и идем в раздел разбивки диска. Видим 2 жестких диска. Выбираем оба и отмечаем пункт I will configure partition:

centos 7 установка на raid

Жмем Done . Открывается немного кривое окно управления разделами жесткого диска.

centos 7 разбивка диска

Здесь мы первым делом удаляем все существующие разделы:

centos 7 удаление файловых систем

И создаем свои новые, нажимая плюсик. Нам нужно создать 3 раздела: boot , swap и корень / . Размеры разделов выбирайте сами, исходя из своих потребностей и оперативной памяти на сервере. Для раздела boot достаточно 500Мб, для swap хватит объема оперативной памяти. Все остальное можно либо заполнить одним корневым разделом, либо создать несколько, если в этом есть необходимость. Device Type ставим RAID . Тип файловой системы выбирайте на свое усмотрение. Что лучше — xfs или ext4 зависит от конкретной ситуации. Считается, что xfs работает лучше с большими файлами, ext4 с кучей мелких. Это тема отдельного разговора. RAID Level указываем RAID1 .

Должно получиться примерно так:

centos 7 создание raid1

Нажимаем Done , когда закончим. В новом окне подтверждаем разбивку диска, нажимая Accept Сhanges:

centos 7 destroy partitions

Все остальные параметры выставляем как было рассказано выше. Теперь можно начинать установку CentOS 7 на программный raid, который мы только что создали.

Во время установки нужно указать пароль root , либо создать дополнительных пользователей. Пароль рекомендую установить, пользователей по необходимости.

centos install process

После завершения установки на raid зайдем в систему и проверим состояние массива:

# df -h # cat /proc/mdstat

cat /proc/mdstat

Посмотрим информацию о корневом массиве:

# mdadm -D /dev/md126

информация о mdadm массиве

Все в порядке, установка сервера закончена. Рейд раздел нормально функционирует, обеспечивая отказоустойчивость сервера.

Я очень рекомендую использовать софтовый raid линукса mdadm в повседневной деятельности. Он намного надежнее, понятнее и стабильнее встроенных в материнскую плату контроллеров. Отдавать предпочтение аппаратному рейду следует только в том случае, если он действительно аппаратный, он имеет батарейку и он действительно увеличивает производительность сервера. Во всех остальных случаях рекомендую пользоваться mdadm.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Видео установки CentOS 7 на raid 1

Онлайн курс по Kubernetes

Онлайн-курс по Kubernetes – для разработчиков, администраторов, технических лидеров, которые хотят изучить современную платформу для микросервисов Kubernetes. Самый полный русскоязычный курс по очень востребованным и хорошо оплачиваемым навыкам. Курс не для новичков – нужно пройти вступительный тест.

  • устали тратить время на автоматизацию?
  • хотите единообразные окружения?
  • хотите развиваться и использовать современные инструменты?
  • небезразлична надежность инфраструктуры?
  • приходится масштабировать инфраструктуру под растущие потребности бизнеса?
  • хотите освободить продуктовые команды от части задач администрирования и автоматизации и сфокусировать их на развитии продукта?

Настройка web сервера в CentOS 7

Сегодня займемся поднятием одной из наиболее востребованных ролей любого linux сервера, которые занимают в этом функциональном сегменте лидирующую роль. Настройка web сервера CentOS 7 на базе связки популярного http сервера apache, интерпретатора php и сервера баз данных mysql, или коротко — установка lamp. Данная связка является самой популярной конфигурацией на сегодняшний день среди веб хостинга. Хотя последнее время ей на пятки наступает та же компания, но на базе nginx, возможно уже и опередила, точных данных у меня нет на этот счет.

Онлайн-курс по Kubernetes – для разработчиков, администраторов, технических лидеров, которые хотят изучить современную платформу для микросервисов Kubernetes. Самый полный русскоязычный курс по очень востребованным и хорошо оплачиваемым навыкам. Курс не для новичков – нужно пройти вступительный тест.

Данная статья устарела. Читайте новую актуальную статью по настройке web сервера apache на centos 8.

Данная статья является частью единого цикла статьей про сервер Centos.

Web сервер на CentOS 7

Итак, наш веб сервер centos будет состоять из трех основных компонентов — http сервера apache, интерпретатора языка программирования php и сервера баз данных mysql. Познакомимся немного с каждым из них:

  1. Apache — http сервер или просто веб сервер апач. Является кросплатформенным ПО, поддерживающим практически все популярные операционные системы, в том числе и Windows. Ценится прежде всего за свою надежность и гибкость конфигурации, которую можно существенно расширить благодаря подключаемым модулям, которых существует великое множество. Из недостатков отмечают большую требовательность к ресурсам, по сравнению с другими серверами. Держать такую же нагрузку, как, к примеру, nginx, apache не сможет при схожих параметрах железа.
  2. PHP — язык программирования общего назначения, который чаще всего применяется в веб разработке. На сегодняшний день это самый популярный язык в этой области применения. Поддерживается практически всеми хостинг-провайдерами.
  3. Mysql — система управления базами данных. Завоевала свою популярность в среде малых и средних приложений, которых очень много в вебе. Так что, как и php, на сегодняшний день является самой популярной бд, использующейся на веб сайтах. Поддерживается большинством хостингов. В CentOS вместо mysql устанавливается mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Последнее время я встречал информацию, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. На практике мне не довелось это наблюдать, так как никогда не работал с нагруженными базами данных. А в обычных условиях разница не заметна.

Подопытным сервером будет выступать виртуальная машина от ihor, характеристики следующие:

Процессор 2 ядра
Память 8 Gb
Диск 150 Gb SSD

Это кастомная настройка параметров. Они не оптимальны по цене, но мне были нужны именно такие.

Хочу сразу уточнить, что разбираю базовую дефолтную настройку. Для улучшения быстродействия, повышения надежности и удобства пользования нужно установить еще несколько инструментов, о чем я расскажу отдельно. В общем случае для организации веб сервера будет достаточно того, что есть в этой статье.

Если у вас еще нет сервера, то вам надо выполнить установку CentOS 7. А если сервер уже установлен, то не забудьте его настроить. Рекомендую обратить внимание именно на настройку, так как там много полезной информации, которую в рамках этой статьи я не даю — обновление системы, настройка фаервола, установка редактора и многое другое.

Настройка apache в CentOS 7

В CentOS служба apache называется httpd. Когда я только знакомился с этим дистрибутивом, мне было непривычно. В Freebsd и Debian, с которыми я до этого работал служба веб сервера называлась apache, хотя где-то я замечал, кажется во фрюхе, что файл конфигурации имеет имя httpd.conf. До сих пор я не знаю, почему распространились оба эти названия. Был бы рад, если бы со мной кто-то поделился информацией на этот счет в комментариях.

Теперь приступим к установке apache. В CentOS 7 это делается очень просто:

# yum install -y httpd

Добавляем apache в автозагрузку:

# systemctl enable httpd

Запускаем apache в CentOS 7:

# systemctl start httpd

Проверяем, запустился ли сервер:

# netstat -tulnp | grep httpd tcp6 0 0 . 80 . * LISTEN 21586/httpd

Все в порядке, повис на 80-м порту, как и положено. Уже сейчас можно зайти по адресу http://ip-address и увидеть картинку:

установка apache на centos 7

Теперь займемся настройкой apache. Я предпочитаю следующую структуру веб хостинга:

/web раздел для размещения сайтов
/web/site1.ru/www директория для содержимого сайта
/web/site1.ru/logs директория для логов сайта

Создаем подобную структуру:

# mkdir /web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs # chown -R apache. /web

Дальше редактируем файл конфигурации apache — httpd.conf по адресу /etc/httpd/conf . Первым делом проверим, раскомментированна ли строчка в самом конце:

IncludeOptional conf.d/*.conf

Если нет, раскомментируем и идем в каталог /etc/httpd/conf.d. С оздаем там файл site1.ru.conf :

# mcedit /etc/httpd/conf.d/site1.ru.conf
 ServerName site1.ru ServerAlias www.site1.ru DocumentRoot /web/site1.ru/www Options FollowSymLinks AllowOverride All Require all granted ErrorLog /web/site1.ru/logs/error.log CustomLog /web/site1.ru/logs/access.log common 

Перезапуск apache в centos

Теперь делаем restart apache :

# systemctl restart httpd

Если возникли какие-то ошибки — смотрим лог apache /var/log/httpd/error_log . Если все в порядке, то проверим, нормально ли настроен наш виртуальный хост. Для этого создадим в папке /web/site1.ru/www файл index.html следующего содержания:

# mcedit /web/site1.ru/www/index.html

Апач настроен!

# chown apache. /web/site1.ru/www/index.html

Дальше в винде правим файл hosts , чтобы обратиться к нашему виртуальному хосту. Добавляем туда строчку:

192.168.1.25 site1.ru

где 192.168.1.25 ip адрес нашего веб сервера.

Теперь в браузере набираем адрес http://site1.ru . Если видим картинку:

Проверка apache в centos 7

значит все правильно настроили. Если какие-то ошибки, то идем смотреть логи. Причем в данном случае не общий лог httpd , а лог ошибок конкретного виртуального хоста по адресу /web/site1.ru/logs/error.log .

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

Чтобы настроить ротацию логов виртуальных хостов, необходимо отредактировать файл /etc/logrotate.d/httpd . Он создается во время установки apache и включает в себя настройку ротации стандартного расположения логов. А так как мы перенесли логи каждого виртуального хоста в индивидуальную папку, необходимо добавить эти папки в этот файл:

# mcedit /etc/logrotate.d/httpd
/web/*/logs/*.log /var/log/httpd/*log < missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service >/dev/null 2>/dev/null || true endscript >

Мы добавили одну строку в самое начала файла. Теперь логи всех виртуальных хостов в папке /web будут ротироваться по общему правилу.

В принципе, простейший веб сервер уже готов и им можно пользоваться. Но вряд ли сейчас найдутся сайты со статическим содержимым, которым достаточно поддержки только html. Так что продолжим нашу настройку.

Если вам необходимо организовать работу сайта по протоколу https, то воспользуйтесь руководством по настройке ssl в apache.

Установка php в CentOS 7

Для поддержки динамического содержимого сайтов выполним следующий шаг. Установим php в CentOS 7:

# yum install -y php

И следом еще несколько полезных компонентов. Установим популярные модули для php:

# yum install -y php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

Выполним перезапуск apache:

# systemctl restart httpd

Создадим файл в директории виртуального хоста и проверим работу php:

# mcedit /web/site1.ru/www/index.php
 phpinfo(); ?>
# chown apache. /web/site1.ru/www/index.php

Заходим по адресу http://site1.ru/index.php

centos php

Вы должны увидеть вывод информации о php. Если что-то не так, возникли какие-то ошибки, смотрите лог ошибок виртуального хоста, php ошибки будут тоже там.

Где лежит php.ini

После установки часто возникает вопрос, а где хранятся настройки php? Традиционно они находятся в едином файле настроек. В CentOS php.ini лежит в /etc, прямо в корне. Там можно редактировать глобальные настройки для все виртуальных хостов. Персональные настройки каждого сайта можно сделать отдельно в файле конфигурации виртуального хоста, который мы сделали раньше. Давайте добавим туда несколько полезных настроек:

# mcedit /etc/httpd/conf.d/site1.ru.conf

Добавляем в самый конец, перед

php_admin_value date.timezone 'Europe/Moscow' php_admin_value max_execution_time 60 php_admin_value upload_max_filesize 30M

Для применения настроек нужно сделать restart apache. Теперь в выводе phpinfo можно увидеть изменение настроек.

Обновление до php 5.6 в CentOS 7

В нашем примере мы установили на CentOS 7 php 5.4 из стандартного репозитория. А что делать, если нам нужна более новая версия, например php 5.6? В таком случае нужно выполнить обновление php.

# wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm # rpm -Uvh remi-release-7*.rpm

Теперь обновляем php 5.4 до php 5.6:

# yum --enablerepo=remi,remi-php56 install php php-common php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd
# systemctl restart httpd

И идем смотреть вывод phpinfo — http://site1.ru/index.php

centos 7 php 5.6

Отлично, мы обновили php до версии 5.6.

Установка MySQL в CentOS 7

Как я уже писал ранее, сейчас все большее распространение получает форк mysql — mariadb. Она имеет полную совместимость с mysql, так что можно смело пользоваться. Я предпочитаю использовать именно ее.

Устанавливаем mariadb на CentOS 7:

# yum install -y mariadb mariadb-server

Добавляем mariadb в автозапуск:

# systemctl enable mariadb.service
# systemctl start mariadb

Проверяем, запустилась или нет:

# netstat -tulnp | grep mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 22276/mysqld

Обращаю внимание, что она даже в системе отображается как сервис mysqld . Теперь запускаем стандартный скрипт настройки безопасности:

# /usr/bin/mysql_secure_installation

Не буду приводить весь вывод работы этого скрипта, там все достаточно просто и понятно. Сначала задаем пароль для root (текущий пароль после установки пустой), потом удаляем анонимных пользователей, отключаем возможность подключаться root удаленно, удаляем тестового пользователя и базу.

Файл настроек mysql/mariadb лежит в /etc/my.cnf. Для обычной работы достаточно настроек по-умолчанию. Но если вы решите изменить их, не забудьте перезапустить службу баз данных.

Перезапуск mariadb/mysql в CentOS 7:

# systemctl restart mariadb

На этом все. Базовый функционал web сервера на CentOS 7 настроен.

Если вам нужен phpmyadmin воспользуйтесь моим подробным руководством по установке и настройке phpmyadmin на centos 7.

Буду рад замечаниям и комментариям по теме статьи. Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Онлайн курс по Kubernetes

Онлайн-курс по Kubernetes – для разработчиков, администраторов, технических лидеров, которые хотят изучить современную платформу для микросервисов Kubernetes. Самый полный русскоязычный курс по очень востребованным и хорошо оплачиваемым навыкам. Курс не для новичков – нужно пройти вступительный тест.

  • устали тратить время на автоматизацию?
  • хотите единообразные окружения?
  • хотите развиваться и использовать современные инструменты?
  • небезразлична надежность инфраструктуры?
  • приходится масштабировать инфраструктуру под растущие потребности бизнеса?
  • хотите освободить продуктовые команды от части задач администрирования и автоматизации и сфокусировать их на развитии продукта?
Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале — https://t.me/srv_admin/425 или на сайте в контактах.

93 комментария

Небольшое дополнение — в конце скрипта iptables команда должна быть service iptables save
Без этого после перезагрузки сервера будет сюрприз в виде откатившихся в исходное настроек iptables (возможно эта грабля работает только у RUVDS)

Вы о каком скрипте говорите? Я во всех своих скриптах делаю сохранение правил в /etc/sysconfig/iptables. В Centos из этого файла берутся настройки iptables во время загрузки. Это типовое поведение сервера. Я сотни серверов настраивал на centos и везде это так работает, если специально ничего не менять.

Промахнулся окном для комментария, на самом деле) Имелось в виду вот сюда https://serveradmin.ru/centos-nastroyka-servera/
Конкретно на RUVDS проблема возникла, там ихуевая версия centos7 предустановленная (vps)
Не отрабатывает последняя команда /sbin/iptables-save > /etc/sysconfig/iptables
А вот service iptables save сохраняет настройки корректно.

Шаблон может какой-то кастомизированный используют.

Добрый день, Владимир!
Статья полезная, спасибо!
Можете подсказать в чем может быть проблема:
На физическом сервере есть виртуальный сервер битрикс и на нем настроено nginx version: nginx/1.16.1, Server version: Apache/2.2.15 (Unix).
два хоста к примеру name1.ru name2.ru
Что интересно name2.ru работает, а name1.ru не работает.
лог: 2021/02/02 05:34:03 [error] 7163#0: *899664 connect() failed (110: Connection timed out) while connecting to upstream, client: ext_ip, server: name1.ru, request: «GET /favicon.ico HTTP/2.0», upstream: «http://192.168.0.1:8888/favicon.ico», host: «name1.ru», referrer: «https://name1.ru/»
что может быть?

Тут что угодно может быть. Прямо указана ошибка — 110: Connection timed out. Невозможно подключиться, соединение отваливается по таймауту. Подключение вот сюда 192.168.0.1:8888 не проходит. Разбирайтесь, почему на этом порту не отвечает apache.

Хорошая статья. Есть одно маленькое замечание. После установки апача было бы правильно намекнуть на фаирвол.

Спасибо автору.
Все шаги на Вашем примере сайта. Это очень продуктивно.
Понимаешь как это работает.
Если что-то не получается, смотри в комментах.

Данная инструкция не работает. Автор не понимает о чем пишет = типичный рерайтер, который повыдергивал инфы из интернета для уникальности.

Подскажи еще, откуда я рерайчу, чтобы наполнить свой сайт уникальными авторскими статьями :)))
Видимо самоизоляция так пагубно влияет на мозг..
Автору спасибо, отличные маны отличный сайт
Здравствуйте.
В чем разница между
chown -R apache. /web
и
chown -R apache /web
?
Первое аналог команды:
chown -R apache:apache /web
С точкой просто короче запись.
Спасибо! Отличная статья)
На рутрекере выложил готовую виртуалку для ESXI с nextcloud на базе центоси7
Очень полезная статья. Прям все по шагам получилось сделать. Большое спасибо!

Сюда — что бы всем было видно. Прошу прощения, если кому помешал.
Моя ошибка — в правилах iptables(по вышенаписанным статьям), скопировал предыдущее не посмотрев содержание.
открывать порт для сервера нужно правилом в /etc/iptables_rules.sh:
$IPT -A INPUT -i $WAN -p tcp —dport 80 -j ACCEPT
а не
$IPT -A INPUT -i $WAN -p udp —dport 80 -j ACCEPT http работает по tcp протоколу. PS При копировании текста с интернетстраницы в файл — пишется неправильная кодировка и браузер показывает вопросики, писать надо в UTF-8(например поменяв ее в редакторе WinSCP)
Еще нужно постоянно помнить, что если создавать файлы из под root-а — сервер к ним может не иметь доступ, меняется это или через менюшку того же SCP или через команды:
chown -R apache:apache /web — смена владельца всех файлов в папке /web на апач

Здравствуйте! Хорошая статья. Вот только не работает. Selinux упорно блокирует апач. После шага mcedit /etc/httpd/conf.d/site1.ru.conf и перезапуска апача.

В этой статье подразумевается, что selinux отключен. Его настройка отдельная история. У меня так и не дошли руки ее описать.

То есть сначала нужно отключить его полностью, а потом уже ставить и настраивать web server по инструкции выше, правильно я понял. А отключить его можно вот так да:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing — SELinux security policy is enforced.
# permissive — SELinux prints warnings instead of enforcing.
# disabled — No SELinux policy is loaded.
SELINUX=disable
# SELINUXTYPE= can take one of three values:
# targeted — Targeted processes are protected,
# minimum — Modification of targeted policy. Only selected processes are protected.
# mls — Multi Level Security protection.
SELINUXTYPE=targeted

У меня рассказано как отключить в статье про настройку centos — https://serveradmin.ru/centos-7-nastroyka-servera/ на которую была ссылка в начале статьи.

Спасибо большое :))))

Добрый день.
Подскажите, пожалуйста, в чем может быть проблема или где ковырять.
У меня сервак CentOS 7 с ip 192.168.7.1. По вашей инструкции поставил apache. Страница Testing 123 отобразилась.
Далее создал html «Апач работает» и поправил hosts. IP-шник тот же — 192.168.7.1! Картинка вылазит таже.
Подозреваю, что где-то нужно было присвоить ip сайту1, отличный от IP сервака. Может нужно Linux на один IP, apache на второй, сайт site1 на третий?
В Linuxs-е новичек. Только обучаюсь.

вот такой у меня лог в «лог ошибок конкретного виртуального хоста по адресу /web/site1.ru/logs/error.log»:
-rw-r—r— 1 root root 0 июн 29 15:24 /web/site1.ru/logs/error.log

Нашел ошибку. «» Тут каким-то чудным образом порт 80 не вписал! 😀
Zerox, спасибо за статьи. Изучаю Linux по ним =)

Вот лог из /var/log/httpd
[Mon Oct 08 14:25:14.297124 2018] [mpm_prefork:notice] [pid 3923] AH00170: caught SIGWINCH, shutting down gracefully
[Mon Oct 08 14:25:14.385539 2018] [suexec:notice] [pid 4089] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Oct 08 14:25:14.424370 2018] [auth_digest:notice] [pid 4090] AH01757: generating secret for digest authentication .
[Mon Oct 08 14:25:14.425280 2018] [lbmethod_heartbeat:notice] [pid 4090] AH02282: No slotmem from mod_heartmonitor
[Mon Oct 08 14:25:14.427915 2018] [mpm_prefork:notice] [pid 4090] AH00163: Apache/2.4.6 (CentOS) configured — resuming normal operations
[Mon Oct 08 14:25:14.427952 2018] [core:notice] [pid 4090] AH00094: Command line: ‘/usr/sbin/httpd’
[Mon Oct 08 14:25:47.587920 2018] [mpm_prefork:notice] [pid 4090] AH00170: caught SIGWINCH, shutting down gracefully
[Mon Oct 08 14:25:47.667801 2018] [suexec:notice] [pid 4123] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Oct 08 14:25:47.703020 2018] [auth_digest:notice] [pid 4124] AH01757: generating secret for digest authentication .
[Mon Oct 08 14:25:47.703907 2018] [lbmethod_heartbeat:notice] [pid 4124] AH02282: No slotmem from mod_heartmonitor
[Mon Oct 08 14:25:47.706538 2018] [mpm_prefork:notice] [pid 4124] AH00163: Apache/2.4.6 (CentOS) configured — resuming normal operations
[Mon Oct 08 14:25:47.706571 2018] [core:notice] [pid 4124] AH00094: Command line: ‘/usr/sbin/httpd’

Какая ошибка в браузере?

На локальном при подключению по адресу: «Сервер не найден» на на компе в сети не удаётся: «получить доступ к сайту»

Сама служба httpd запущена? В списке процессов есть? 80-й порт слушает? Судя по логу, он таки запускается. Возможно firewall блокирует подключение к web серверу.

Ага, Iptables отключил и заработало, хотя вроде настраивал по вашей же статье)

Сделал всё по инструкции, но апач открывает только по ip адресу и то только на локальной машине, по адресу выдаёт ошибку

Дальше логично посмотреть, что за ошибка и подумать, с чем она связана. Заодно посмотреть логи.

[Был бы рад, если бы со мной кто-то поделился информацией на этот счет в комментариях.]
Если ещё интересно, то зайдите на https://projects.apache.org/projects.html

Зашел и не понял, почему в одних дистрах Апач зовется apache, а в других httpd.
Константин

На ступени: Перезапуск apache в centos
Ошибка:
[root@localhost ~]# systemctl restart httpd.service
● httpd.service — The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Пт 2018-03-16 15:50:38 MSK; 7min ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 34132 ExecStop=/bin/kill -WINCH $ (code=exited, status=1/FAILURE)
Process: 34131 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 34131 (code=exited, status=1/FAILURE) мар 16 15:50:38 localhost.localdomain systemd[1]: Starting The Apache HTTP Server.
мар 16 15:50:38 localhost.localdomain httpd[34131]: AH00558: httpd: Could not reliably determine the . age
мар 16 15:50:38 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, st. URE
мар 16 15:50:38 localhost.localdomain kill[34132]: kill: cannot find process «»
мар 16 15:50:38 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited . s=1
мар 16 15:50:38 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server.
мар 16 15:50:38 localhost.localdomain systemd[1]: Unit httpd.service entered failed state.
мар 16 15:50:38 localhost.localdomain systemd[1]: httpd.service failed.
Hint: Some lines were ellipsized, use -l to show in full. Вроде всё просто и centos 7 minimal читый.
Помогите новичку.

Поддерживаю! Такая же ошибка при попытке запуска httpd.
Здравствуйте, у меня не устанавливается httpd, не может подключится к зеркалам
Неправильно настроил сеть. Исправился.
Только хотел написать, что надо сеть проверить 🙂
А как обновить до последней версии Apache?

Нужно использовать какой-то сторонний репозиторий, где будут последние версии apache. Например, вот этот — https://repo.codeit.guru/

Спасибо! Весьма удобное руководство, всё прошло как по маслу. Правда я устанавливал PHP 7.1, наверное, уже есть смысл отредактировать это руководство для установки современной версии PHP.

В самом начале есть ссылка на свежую статью, как раз с php 7.1.

Действительно, проглядел. Спасибо Вам за полезные материалы, уже вижу, что есть и другие полезные статьи, которые надо бы прочитать.

Мне тут стала любопытна тема Антивируса на веб-сервере. Linux’у в большинстве плевать на вирусню, но вот веб сервису в частности не очень. Что посоветуете?

Таких антивирусов не существует. Есть некоторые средства для ручной проверки файлов сайта на наличие вирусов, но это не полноценный антивирус. Пример такого скрипта — ai-bolit. Защита веб сервера это комплекс мер. У меня есть в планах написание статьи по настройке максимально защищенного веб сервера, но пока это только планы, даже черновика нет.

Для начала огромное СПАСИБО за статьи! Много полезного и интересного для начинающих линуксоидов. Уже на основе этой статьи запустил чат Mattermost, а также Zabbix. Все работает, но теперь воюю с Nextcloud’ом. Вроде запустился и работает, но хочеться что бы пользователи были не локальные, а Active Directory. Поставил компонент php-ldap и обновил его до версии 5.6. Но Nextcloud’у все равно чего то не хватает, AD видет, а группы и пользователей нет:( говорит чего-то ему не хватает, а чего ХЗ.

К слову, я успешно прикрутил Nexcloud к AD
Это стабильный продукт, его можно в продакшене использовать?

А это предстоит еще проверить)) Он у меня готов к использованию, но пака что я его не запускал в массы.

На этапе настроек и знакомства в основном функционале глюков не заметил. Есть куча дополнений которые можно установить, но их функционал это отдельная история. А так гонять под нагрузкой нужно в несколько пользователей, а не в одно лицо.

HamsterPunk

Добрый день.
Подскажите в чём может быть проблема, установил nginx, но когда захожу, то пишет что: Not Found The requested URL /nginx was not found on this server.

А куда заходишь? По ошибке вижу, что по адресу http://ip-адрес/nginx
Зачем /nginx на конце? У тебя по этому пути на веб-сервере ничего нет.

HamsterPunk
я ввожу IP адрес сервера пишет apache настроен(
HamsterPunk

не обратил внимания ошибка выскочила
Job for nginx.service failed becouse th control process exite with errore code
See «systemctl status nginx.service» and journalctl -xe@ for details

создал файл index.php с содержимым phpinfo.
Если обратиться в корень сайта, то отображается информация phpinfo, но если например index.php переименовать в phpinfo.php, то при обращении по http://адрессервера/phpinfo.php открывается просто белая страница. Мне кажется апач не отрабатывает *.php кроме index.php, т.к переношу сайт с ubuntu где php 5.3 на Centos 7 где php 5.4 — и страница сайта index.php — отображается с кучей ошибок, и так же если обращаться напрямую к страницам *.php в корне сайта, то получаем белый экран.

Сам нашел ответ на свой вопрос.
В CentOS 7 по умолчанию в php.ini прописано short_open_tag=Off, нужно было переключить в «on» чтоб заработал php код.

Стесняюсь спросить, какая версия MariaDB у Вас устанавливается представленным способом — бета 10.3 или стабильная 10.2?

Добрый день! Прописал новый путь к сайту, создал файлик site1.conf, но после перезапуска апаче выдаёт ошибку
Job for httpd.service failed because the control process exited with error code. See «systemctl status httpd.service» and «journalctl -xe» for details.
В логах написанно:
ah00170 caught sigwinch, shutting down gracefully.
Подскажите в чём может быть проблема

Гугл выдает много вариантов решения этой проблемы. Предлагаю им воспользоваться. Заочно я все равно ничем не помогу.

Да, спасибо я разобрался, но теперь возникла другая проблема, я добавил сайт в новую дерикторию, создал для него файл — конфиг, но выбивает тестовая страница апаче

А есть у вас на сайте как это сделать?

Так в этой же статье и рассказано. Но нужно хоть какое-то понимание происходящего. Если совсем ничего не понятно, то лучше freepbx и сайты разнести по разным серверам. Тут все же нужен некоторый опыт и навык, чтобы все аккуратно сделать, и чтобы работало 🙂

Значит будем разбираться. Все таки первую неделю работаю с линуксом. Раз смог поднять два сервера в разных городах и настроить между ними атс, то и с этим разбирусь. А за сайт спасибо. Очень много почерпнул от сюда.

Здравствуйте. Установил я сначала FreePBX, все у меня заработало. Потом решил установить веб сервер. И получается загвоздка. Теперь через ip я захожу на apache, а на freepbx не могу зайти. Я так понимаю это из-за того, что они находятся на одном порту (*:80).
Как мне теперь настроить, что бы работал и apache и freepbx? Ну это относится и к другим сайтам (Если я создам еще несколько сайтов, то нужно наверное прописывать отдельно каждый сайт). Подскажите пожалуйста

Нужно настраивать виртуальные хосты, каждый сайт, в том числе и freepbx — отдельный виртуальный хост.

Здравствуйте! У Вас статья по установке LAMP на базе CentOS.. Почему выбор пал на данный дистрибутив, почему не Debian?

Здравствуйте! Подскажите пожалуйста, столкнулся с такой проблемой, при установке httpd и создания site1.ru.conf сразу стартует SELINUX и ни как эту заразу не отключить. То есть до создания этого конфига httpd сразу ложится. 80 порт в iptables прописан.
Вопрос вот в чем, как это можно вылечить?
Заранее спасибо.

Я ошибся, сразу после перезапуска службы httpd все ложится и стартует SELINUX

Если не получается настроить selinux, то его как минимум можно отключить:
https://serveradmin.ru/centos-7-nastroyka-servera/

Спасибо! Я до сих пор не понимаю, как он включался, как раз по этому гайду и делал.
Selinux включался после того как создавал конфиг site1.ru.conf, данная ошибка была на протяжении 4 дней. Пытался найти разобраться, потом плюнул и заново все накатил. Ошибка пропала. Делалось все один в один.
Поэтому вообще ни чего не понимаю.
А За статью огромное спасибо!

Установил на виртуальную машину. Настроил вебсервер. Все работает отлично. С хоста на гостевую заходит через веб. Но с локалки зайти не получается ни по ip ни по адресу. Пинг есть и по ip и по site.tt в обе стороны(пробовал с нескольких компов).
В файрволе удалил все правила, оставил только все разрешено во овсе стороны.
Подозреваю что все таки что то блокирует входящий трафик на http.
На виртуалке сетевое соедиенние работает как мост

Там на этапе когда у вас уже можно открыть тестовую страницу апача с 123, нужно было еще открыть 80 порт в iptables, т.к. по умолчанию в 7 centos врядли он будет открыт.
команда:
iptables -I INPUT -p tcp —dport 80 -j ACCEPT
и команда:
iptables-save>/etc/sysconfig/iptables

Я в самом начале дал ссылку на статью с настройкой сервера и сделал акцент, что настройка firewall рассматривается там. А так конечно верно, если не открыть 80-й порт, ничего не заработает.

Здравствуйте, можете мне помочь?
У меня следующая проблема: создал несколько Виртуальных хостов, но при обращение на любой из них открывается дефолтовый сайт bиз этого каталога /var/www/html.
с DNS настройками все правильно.

А чем тут заочно поможешь? Где-то ошибка, виртуальные хосты не работают. Надо внимательно проверить все конфиги.

Скайп есть у Вас?
//serveradmin.ru/kontaktyi/

Тут не нужна никакая заочная помощь.
В этом полезном мануале не указан ряд важных дополнений (как и это), без которых работать не будет.
Так,
/etc/httpd/conf нужно обязательно раскомментировать строчку NameVirtualHost *:80, включающую разрешение по именам, иначе при добавлении в conf.d/ файлов конфигурации виртуальный сайтов, висящих на одном порту, апач будет предупреждать, что они перекрываются по портам и что будет открываться только первый доступный.

Игорь, здесь: /etc/httpd/conf/httpd.conf ? Что-то найти не могу.

Здравствуйте, Подскажите новичку: я установил апач и создал на нем свой сайт — как настроить доступ к нему с других пк в локальной сети без редактирования по отдельности на каждом пк файла hosts?

Только настройкой dns сервера, который обслуживает эти компьютеры. В него надо добавить запись о вашем сайте.

Не подскажете,что делать со следующей проблемкой. По дури решил переустановить mariadb, с удалением каталога /var/lib/mysql В итоге выдается ошибка при запуске,что mkdir не может создать каталог /var/lib/mysql, нет доступа. запускаю от рута. На другом сервере смотрел права, каталог создан группой mysql, пользователь mysql, я вручную создал каталог с такими же правами. В итоге та же ошибка.

Пробовать надо разные варианты. С правами где-то ошибка. Либо на самом каталоге, либо по пути к нему. Создай сам пустой каталог с нужными правами.

Да, разобрался в итоге, там в итоге была проблема не в самом каталоге,а в сокет файле мускула. Теперь вот проблема с виртуальными хостами. Я поставил GLPI и все работает по ссылке типа http://x.x.x.x/glpi. Но стоит только добавить в conf.d конфиг странички, загружается только она, а gpli выдает 404 ошибку. Я так понимаю это из-за параметра DocumentRoot, указанного в моем конфиге для сайта?На этом моменте я туплю.

при выполнении
# systemctl restart httpd
выдает ошибку could not open error log file /web/site1.ru/logs/error.log
сам файл в папке есть

Я не Ванга, но возможно нужно отключить Selinux
sestatus
setenforce 0
vi /etc/selinux/config -> SELINUX=disabled
shutdown -r now
Проверяем статус sestatus
systemctl restart httpd

В самом начале можно заменить вот эту строчку создания папок:
mkdir /web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs На вот такую:
mkdir -p /web/site1.ru// А так за мануал спасибо 🙂

Да, спасибо за подсказку. Так можно сделать и я знаю об этом. В статьях стараюсь использовать конструкции как можно проще, чтобы было всем понятно, что я делаю.

Можно вообще сократить мануал и сделать немного поудобнее привязки: Часть до вывода страницы TEST 123 обязательна НО. тут забыли указать что еще нужно на firwalld открыть эти порты , иначе все увидят Фигу с маслом, делается это так:
# firewall-cmd —zone=public —add-port=80/tcp —permanent
#firewall-cmd —reload
Только после этого вы увидите заветную страницу TEST 123
—————————————————————————————————————————————————————————
Далее отключаем присловутый Selinux : /etc/sysconfig/selinux выглядеть должно так:
————————————————————————————————————-
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing — SELinux security policy is enforced.
# permissive — SELinux prints warnings instead of enforcing.
# disabled — No SELinux policy is loaded.
SELINUX=disable
# SELINUXTYPE= can take one of three values:
# targeted — Targeted processes are protected,
# minimum — Modification of targeted policy. Only selected processes are protected.
# mls — Multi Level Security protection.
SELINUXTYPE=targeted —————————————————————————————————————————————————————————
Далее По установке PHP: Установка php в CentOS 7
Для поддержки динамического содержимого сайтов выполним следующий шаг. Установим php в CentOS 7: # yum install -y php
И следом еще несколько полезных компонентов. Установим популярные модули для php: # yum install -y php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd
Выполним перезапуск apache: # systemctl restart httpd
Создадим файл в директории виртуального хоста и проверим работу php: # vim /var/www/index.php — тут создаём файлик в который добавим строку
# chown apache. /var/www/index.php — тут указываем куда смотреть Апачу НО. Он не выведет вам ничего Ибо отсюда начинается Кастом настроек.
Чтобы всё это работало надо поправить файлик httpd.conf что лежит в /etc/httpd/conf/httpd.conf следующим образом:
———————————————————————————————————————————————————
Будьте внимательны если будите копировать.
————————————————————-
—————————————————————————————————————————————————————————
В итоге у вас получится что Апач смотрит в /var/www/index.php и когда вы зададите команду http://ip-адрес сервера, то он выведет вам версию PHP, обновлять PHP или нет зависит от ПО что вы ставите, т.е есть ПО не работающее на современных версиях php7.0/7.1/7.2/7.3 и наоборот.
——————————————————————————————————————————————————————————

Отредактировал комментарий. Убрал конфиг, так как из него часть символов не перенеслись во время копирования. В комментариях не получится вставить конфиги со стрелками, в которые параметры директории указываются в конфигах apache.

Установка и базовая настройка CentOS 7

img

CentOS дистрибутив линукс основанный на коммерческом дистрибутиве RHEL от компании RED HAT. Считается, что CentOS имеет более высокую степень защиты, чем Ubuntu server. И именно поэтому системные администраторы предпочитают его устанавливать в качестве серверного ПО.

В данной статье мы рассмотрим установку данной ОС. Для тестовой установки выбрана виртуальная машина, развертывание ВМ на VMware, не является предметом данной статьи.

Установка CentOS 7

Подключаем скаченный с официального сайта CentOS дистрибутив (в нашем случае 7, версия 8 и 8.1 устанавливаются аналогично) и запускаем ВМ. Загрузчик предлагает сделать выбор:

Загрузчик предлагает сделать выбор

  • 1-й вариант — это непосредственно сама установка
  • 2-й вариант — это проверка вашего «железа» и в случае отсутствия ошибок дальнейшая установка.

выбор языка и раскладки клавиатуры

На следующем экране программа предлагает сделать выбор языка и раскладки клавиатуры.

В большинстве случаев, на данных серверах работает серверное ПО и подключаются для управления только администраторы. Не вижу большого смысла менять язык интерфейса и раскладку клавиатуры. Нажимаем Continue.

Continue

Основной экран настроек будущей Операционной системы. Предлагаю начать с настройки сети и имени сервера.

настройки сети и имени сервера

  1. Меняем hostname. Рекомендую писать понятные имена или вообще завести классификацию. В дальнейшем это очень облегчит жизнь. Вводим и нажимаем Apply
  2. Далее нажимаем кнопку Configure и проваливаемся в настройки сетевого адаптера.

настройки сетевого адаптера

  1. Идем в настройки IPv6 и отключаем данный протокол. Это делаем по следующим соображениям. Мало кто использует данный протокол в локальной сети. Для новичков он более сложен в освоении и использовании, чем протокол ipv4. Поэтому он навряд ли вам понадобится. А тот, кто умеет его использовать, данная инструкция будет не интересна.

Поэтому в поле Method щелкам и из списка выбираем Ignore.

  1. Настраиваем протокол ipv4. Данный протокол самый распространенный. Для настройки, нам потребуется сетевые параметры. Ip, mask, Gateway, DNS и если у вас есть то имя домена. Нажимаем ADD и добавляем ip , маску можно задать 2-мя вариантами CIDR или развернуто. Прописываем ip адрес шлюза. Шлюз должен иметь сетевую связанность с ip адресом машины, т. к. автоматически в системе пропишется маршрут по умолчанию через данный шлюз.
  2. DNS cервера. Если у нас один DNS сервер, то просто пишем его Ip адрес, если более их можно указать, через символ запятой.
  3. И последнее указываем домен если он у вас есть Search domains. Если нету, то можно оставить поле пустым.
  4. Если сетевые пакеты данных должны ходить, каким-то хитрым способом, то для этого есть кнопка Routers, где можно описать маршруты, но думаю новичкам это не понадобится.

Жмем кнопку Save и сохраняем настройки. Возвращаемся к главному меню. Следующее Date and Time. В отличии от windows машин, часовой пояс и время, а также синхронизация на серверах CentOS может оказаться критичной. Поэтому данный параметр лучше настроить сразу, как и синхронизацию с ntp сервером.

синхронизация на серверах CentOS

В поле Region выбираем Регион и в поле City выбираем ближайший город. Фактически данные настройки позволяют установить региональный часовой пояс. Данная настройка позволит адекватно анализировать записи логов на сервере и сопоставлять произошедшее с реальным временем. Network Time должно быть включено — это означает, что часы на сервере будут синхронизироваться с серверами ntp в глобальной сети или нажав на значок шестеренок мы можем указать другой ntp сервер с которым наша ОС, будет синхронизироваться. По окончанию настройки нажимаем Done.

Следующая настройка, это разбивка Жесткого диска на разделы.

разбивка жесткого диска на разделы

В данном разделе можно оставить все в автоматическом режиме, если нет специфических требований к логическим разделам жесткого диска. Можно галочкой отметить шифрование и ввести пароль если данная опция требуется. А также можно выбрать «I will configure partitioning«, если предполагается отклонение от рекомендуемых параметров разбивки. Если рекомендуемая конфигурация устраивает, то убедитесь, что галочка установлена как на изображении и жмите Done.

Следующий раздел Software Selection. В данном разделе можно выбрать набор прикладного ПО, которое будет установлено на сервер.

В данном разделе можно очень гибко настроить, то, что будет установлено вместе с ОС. Minimal Install — это базовая установка функционала по сути это только ОС. Конечно в процессе эксплуатации можно все доставить, но не всегда удобно. Но этого в принципе достаточно для базового функционирования сервера. Остальные пункты можно самостоятельно просмотреть и выбрать то, что необходимо.

Остальные опции настройки

Жмем на кнопку Done и выходим в главное меню. Основные параметры установки ОС настроены. Можно начинать процесс установки. Жмем Begin Installation.

Begin Installation

Начинается установка. В процессе установки необходимо задать пароль root. И можно создать пользователя, даже наделить правами Администратора (root). По окончанию процесса вам программа установки предложит перезагрузить ВМ. Жмем Reboot. Установка завершена.

Установка завершена

Базовая настройка ОС CentOS 7

Для управления серверными *nix ОС, системные администраторы используют подключение по SSH протоколу для этого на Firewall должен быть открыт 22 порт, для подключения и настроен OpenSSH. В базовой установке CentOS7 обычно сразу устанавливается OpenSSH и настраивается правило, открывающее порт 22 на сервере. НО по умолчанию запрещено подключение от пользователя root по ssh к серверу, это сделано в целях безопасности. Поэтому 2 варианта:

  1. Если вы создали на этапе установки пользователя и дали ему root права, подключится с помощью ssh.
  2. Через окно инсталляции ВМ внести изменение в конфигурацию openssh.

Для подключения по ssh в классическом варианте используется программа putty, но на самом деле можно использовать любой ssh клиент. Даже встроенный в ОС Windows.

При удачном подключении вы увидите приглашение к авторизации на сервере. Вводим логин и пароль и попадаем в консоль ОС. Примерно это выглядит так.

приглашение к авторизации на сервере

Знак «$» говорит, что мы в пользовательском режиме. Знак «#«, о том, что в привилегированном. Мы будем работать в пользовательском режиме для повышения прав используя команду «sudo«.

Первое, что необходимо сделать это поставить обновления.

sudo yum update sudo yum upgrade

После обновления для удобства рекомендую поставить Midnight Commander

sudo yum install mc -y

Устанавливаем сетевые утилиты:

sudo yum install net-tools -y sudo yum install bind-utils -y

Ставим удобный текстовый редактор nano

sudo yum install nano -y
sudo setenforce 0

Или отключаем на постоянной основе через sudo nano /etc/sysconfig/selinux и редактируем строчку SElinux=disable . Сохраняем и перезагружаем сервер. Reboot. На этом первоначальная настройка сервера закончена.

Установка CentOS 7 в Hyper-V

img

В сегодняшней статье, расскажем как установить последнюю версию операционной системы CentOS 7, в среде виртуализации Hyper-V, по средствам опции сетевой установки или Network Installation.

Примечание: В процессе сетевой установки, все файлы и пэкэджи, которые необходимы для операционной системы, будут скачиваться непосредственно из Интернета с зеркала, которое Вы укажете. Поэтому прежде чем воспользоваться данным методом, рекомендуем убедиться, что у Вас хорошее Интернет соединение.

Пошаговое видео

  • Подготовка

    Первое, что необходимо сделать, это скачать специальный загрузочный образ CentOS 7. В зависимости от архитектуры Вашей ОС, он доступен по ссылкам ниже. Например, образ для 64-разрядной системы можно скачать по это ссылке Выбираете любое понравившееся зеркало и открывайте список доступных файлов. Нам необходим образ CentOS 7 Netinstall ISO. Образ для сетевой установки, Netinstall, имеет размер всего лишь приблизительно 386 Мегабайт, тогда как полный образ CentOS 7 весит порядка 4 Гигабайт. Это связано с тем, что в образе Netinstall находятся только метаданные, позволяющие выбрать, с каким именно функционалом будет установлена операционная система.

    Установка

    Итак, давайте приступим к установке. Запускаем Hyper-V Manager и первое, что необходимо сделать это создать виртуальный свич. Для этого нажимаем Virtual Switch Manager → New virtual network switch → External и нажать Create Virtual Switch. Создать виртуальный свич Hyper-V И выбираем сетевую карту, которую нужно использовать для подключения виртуальных машин к сети и кликаем OK. Выбор сетевой карты для виртуального свича Hyper-V Теперь приступим непосредственно к созданию виртуальной машины. Для этого нажимаем New → Virtual machine, задаём машине имя и кликаем Next. Создание виртуальной машины в Hyper-V Поколение (Generation) виртуальной машины оставляем первое — Generation 1 Далее нужно выделить объём оперативной памяти, которая будет использоваться данной виртуальной машиной. По умолчанию — это 1 гигабайт (1024 MB) и для наших целей этого вполне достаточно. Объём оперативной памяти для виртуальной машины Hyper-V Далее необходимо выбрать виртуальный свич (Virtual Switch), который будет использоваться для подключения к сети нашей виртуальной машины. В нашем случае – это VSWITCH_1. Создание виртуальной машины Hyper-V для CentOS 7 Далее создаём виртуальный жёсткий диск для установки на него операционной системы CentOS 7. Выберем размер 15 Гигабайт и укажем путь на нашем локальном компьютере, где будет храниться образ данного виртуального жесткого диска. Рекомендуем выбирать место на диске D:// Создание виртуального жёсткого диска Hyper-V Далее необходимо указать способ загрузки образа нашей виртуальной машиной. Выбираем Install an operating system from bootable CD/DVD ROM → Image file и указываем путь к нашему недавно скачанному образу CentOS7 Netinstall. Указать образ CentOS в Hyper-V Итак, виртуальная машина создана. Подключаемся к ней и выбираем Install CentOS Linux 7 Install CentOS Linux 7 Через некоторое время, перед нами открывается помощник установки. Опции установщика разделяются на три части: Localization, Software и System. Установщик CentOS на виртуальной машине В части Localization, настраивается системное время, раскладки клавиатуры и поддерживаемые языки. В части Software, мы указываем источник, откуда будут загружаться файлы для нашей операционной системы и необходимый функционал. И в части System настраиваем куда будет устанавливаться наша операционная система, политики безопасности и сетевые опции. Поскольку в процессе сетевой установки все файлы для CentOS 7 будут скачиваться из Интернета, необходимо подключить наш виртуальный сервер с операционной системой к сети. Для этого выбираем Network and Hostname и “включаем” сеть, передвинув ползунок в положение ON. Тем самым мы задействовали наш виртуальный свич. Настройка сетевого интерфейса на виртуальной машине при установке CentOS Теперь можно указывать путь к репозиторию, откуда мы хотим загружать файлы. Выбираем Installation Source и в появившемся окне указываем путь. Я укажу репозиторий CentOS — http://mirror.centos.org/centos/7/os/x86_64/ Указывать путь к репозиторию при установке CentOS После этого, начнётся скачивание метаданных и спустя какое то время, источник будет выбран и мы увидим адрес репозитория, который указали. В разделе Software Selection можно выбрать функционал, для целей которого будет использоваться сервер. Теперь всё готово к установке, нажимаем Begin Installation. Пока идёт установка, можно настроить пароль для root пользователя системы. Создание пароля на root на этапе установки CentOS Процесс установки может занимать от 15 до 30 минут, это напрямую зависит от характеристик Вашего компьютера. Как только установка будет закончена, нам предложат перезапуститься. Нажимаем кнопку Reboot. После перезагрузки, наш сервер на базе операционной системы CentOS 7 будет готов к использованию. Для доступа на сервер, необходимо ввести реквизиты доступа, которые мы вводили при создании root пользователя. Операционная система CentOS 7 установлена в Hyper-V

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *