8Dle
Авторизация

Веб-сервер под CentOS 7

Задача: развернуть выделенную площадку для размещения нескольких веб-сайтов. Рассматриваем процесс с нуля, разделяя на несколько этапов.
В качестве операционной системы для будущей хостинг-площадки вполне рационально выбрать операционную систему Linux, диструбутив Centos версии 7.0. Свой выбор на Centos остановим, так как дистрибутив стабильный, прекрасно обновляется, поддерживает работу с пакетами. А самое главное - является вариантом Red Hat Enterprise Linux.

Удивительные вещи, которые ждут нас в седьмой версии:

  • 1. Отказ от iptables, теперь вместо него firewall

  • 2. Отказ от chkconfig - теперь вместо него systemd

  • 3. Переход с MySQL к MariaDB.

Установка операционной системы


На данный момент актуальной является CentOS 7, ориентированный исключительно на архитектуру x86_64. Скачиваем образ ISO и устанавливаем с диска, но можно поставить и с флэшки.

В процессе установки выбираем вариант Desktop: он достаточно лёгкий (не будет тащить за собой кучу лишних пакетов), а кроме того позволит на первых порах отлаживать систему в графическом режиме. В будущем установим дополнительные пакеты вручную.

Аппаратная часть


В нашем распоряжении оказался уже морально устаревший двухядерный компьютер на базе процессора E3300, имеющий 2 Гб оперативной памяти. Как показала практика, его вполне достаточно.

Разделы диска


На шаге Installation Destination нам предлагается выбрать диск для установки системы. Если ничего не трогать (Automatically Configure Partitioning), то инсталлятор самостоятельно справится с разбиением на разделы. Считаю, такие важные вещи нельзя пускать на самотёк, они требуют вмешательства; поэтому наш выбор - I will configure partitioning. Видим диалоговое окно, показанное ниже.

Распределяем место на диске.

  • 1 Нам необходимо выделить более 82 Мб для раздела boot.

  • 2 Всё оставшееся место за исключением размера оперативной памяти отводим под корневой раздел.

  • 3 Наконец, остаток отдаём под файл подкачки, помечая его swap.

В результате разделы будут видны примерно таким образом.

Веб-сервер под CentOS 7


В отличие от шестой версии, файловой системой по умолчанию в седьмой версии является XFS, а не ext4. К сожалению, в сети довелось натыкаться на негативные отзывы о ней, однако не могу высказать своё собственное мнение: я вынужден использовать ext4 для совместимости с некоторым необходимым программно-аппаратным обеспечением.

Результат команды
df -h
после установки:
Веб-сервер под CentOS 7


Отладка


Первое, что надо сделать – отключить систему безопасности SELinux.

Например, включенный selinux не позволит подключаться по протоколу ftp к серверу, если в будущем поставим vsftpd, клиент будет получать сообщения об ошибке
500 OOPS: cannot change directory:/home/username

В CentOS отключение SELinux выглядит просто. Открываем файл конфига
mcedit /etc/sysconfig/selinux

меняем значение
SELINUX=disabled

перезагружаем
reboot

Сделано, теперь нас не будут поджидать сюрпризы в будущем. Скептикам, ратующим за безопасность системы, сразу сообщаю, что наш сервер будет надёжно защищён настройкой firewall (пришёл на смену iptables). В соответствии с функциональным назначением нашего сервера настраиваем firewall, открывая для общего доступа порты 80 и 443:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https


Перезапускаем Фаерволл:
firewall-cmd --reload


Проверяем, что yum установлен. Если его нет, придётся вручную тащить пакет mirror.centos. org/centos/7/os/x86_64/Packages/ и устанавливать через менеджер пакетов.

Устанавливаем необходимые пакеты, которые непосредственно отвечают за функционирование веб-сервера. В нашем случае это apache, mysql, php (для комплекса LAMP) или nginx, mysql, php (для комплекса LEMP), а возможно, и всё вместе.

Например, установка веб-сервера apache выглядит следующим образом:
yum -y install httpd httpd-devel

Запускаем службу, добавляем в автозагрузку, проверяем результат:
systemctl start httpd.service
systemctl enable httpd.service

Если потребуется перезапустить apache после каких либо настроек (или после установки php), пригодится команда
systemctl restart httpd.service

Привычная утилита setup теперь отсутствует. Убеждаемся, что все службы будут стартовать при запуске системы с помощью systemctl is-enabled служба.
Варианты использования systemctl:
Остановка службы systemctl stop httpd.service
Запуск службы systemctl start httpd.service
Перечитать файл конфигурации systemctl reload httpd.service
Перезапуск службы systemctl restart httpd.service
Перезапуск службы, если она уже запущена systemctl try-restart httpd.service
Проверка статуса службы systemctl status httpd.service
Добавить в автозапуск systemctl enable httpd.service
Исключить из автозапуска systemctl disable httpd.service
Проверка присутствия в автозапуске systemctl is-enabled httpd.service
Вывести список служб systemctl list-unit-files --type=service

Устанавливаем PHP.
yum -y install php php-mysql php-common php-gd php-xml php-mbstring

Вариант наиболее полной установки PHP, с расчётом на разворачивание платформ для современных популярных движков Joomla, Wordpress и Drupal, будет выглядеть следующим образом:
yum -y install php php-gd php-mysql php-common php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel


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

Устанавливаем и запускаем MySQL.
yum -y install mysql mysql-server

systemctl enable mysqld

systemctl start mysqld

Не забываем задать пароль root для MySQL.

Альтернативный вариант: устанавливаем и запускаем MariaDB:
yum install -y mariadb mariadb-server
systemctl enable mariadb
systemctl start mariadb

Теперь готовимся к отказу от графического интерфейса.
Во всём семействе Red Hat Linux (Fedora, Red Hat, CentOS) используется следующая система уровней выполнения

  • 1. Single-user text mode (without networking)

  • 2. Not used (user-definable)

  • 3. Full multi-user text mode.

  • 4. Not used (user-definable)

  • 5. Full multi-user graphical mode (with an X-based login screen)

  • 6. Reboot.

Состояние подготовки к выключению кодируется нулём.
Так как перед нами стоит задача развернуть выделенный сервер, наиболее рационально выбрать уровень 3, который является многопользовательским, но не использует графику.
Редактируем
/etc/inittab

Прописываем
id:3:initdefault:

Теперь третий уровень выполнения становится уровнем по умолчанию, именно на нём будет работать система в случае перезапуска.
В любой момент времени проверить текущий уровень можно командой runlevel:
/sbin/runlevel


Теперь дело за малым:

  • 1. Настроить mysql, однако необходимо заметить, что компания Red Hat предпочитает на данный момент альтернативную базу данных MariaDB

  • 2. Настроить высокопроизводительный веб-сервер (например, связку nginx+apache), или оставить только службу httpd

  • 3. Настроить php.

Если все шаги выполнены, то у нас всё готово.

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

Жмите на Кнопу ниже, или подписывайтесь!


Читайте также
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
mobilas rampas
metallica-spb.com


Dle это движок который изначально проектировался для создания новостных сайтов, но по мере своего развития движка значительно расширил свою функциональность и стал универсальным средством разработки и сопровождения сайтов и блогов различной направленности и тематики. По сравнению с другими бесплатными (и некоторыми платными) CMS системами движок dle обладает довольно обширными возможности.

Авторизация