Серверы · 6 min read · Sep 22, 2025
Идеальный сервер – CentOS 7.1 с Apache2, Postfix, Dovecot, Pure-FTPD, BIND и ISPConfig 3
Этот учебник показывает, как установить ISPConfig 3 на сервере CentOS 7.1 (64Bit). ISPConfig 3 – это панель управления веб-хостингом, которая позволяет вам настраивать следующие службы через веб-браузер: веб-сервер Apache, почтовый сервер Postfix, MySQL, сервер имен BIND, PureFTPd, SpamAssassin, ClamAV, Mailman и многие другие. Начиная с версии 3.0.4, ISPConfig полностью поддерживает веб-сервер nginx в дополнение к Apache; этот учебник охватывает настройку сервера, который использует Apache, а не nginx.
1 Требования
Для установки такой системы вам понадобятся следующие компоненты:
- Минимальная серверная система Centos 7.1. Это может быть сервер, установленный с нуля, как описано в нашем учебнике по минимальному серверу Centos 7.1, или виртуальный сервер или корневой сервер от хостинг-компании, на котором установлена минимальная настройка Centos 7.1.
- Быстрое интернет-соединение.
2 Предварительная заметка
В этом учебнике я использую имя хоста server1.example.com с IP-адресом 192.168.1.100 и шлюзом 192.168.1.254. Эти настройки могут отличаться у вас, поэтому вам нужно заменить их, где это необходимо.
3 Установите раскладку клавиатуры
В случае, если раскладка клавиатуры сервера не соответствует вашей клавиатуре, вы можете переключиться на правильную раскладку (в моем случае “de” для немецкой раскладки клавиатуры) с помощью команды localectl:
localectl set-keymap deЧтобы получить список всех доступных раскладок, выполните:
localectl list-keymapsЯ хочу установить ISPConfig в конце этого учебника, ISPConfig поставляется со скриптом брандмауэра Bastille, который я предпочитаю использовать в качестве брандмауэра, поэтому я отключаю брандмауэр CentOS по умолчанию. Конечно, вы можете оставить брандмауэр CentOS включенным и настроить его по своим потребностям (но тогда вам не следует использовать какой-либо другой брандмауэр позже, так как он, скорее всего, будет мешать брандмауэру CentOS).
Запустите…
yum -y install net-tools
systemctl stop firewalld.service
systemctl disable firewalld.serviceчтобы остановить и отключить брандмауэр CentOS.
Затем вам следует проверить, что брандмауэр действительно был отключен. Для этого выполните команду:
iptables -LВывод должен выглядеть так:
[root@server1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destinationChain FORWARD (policy ACCEPT)
target prot opt source destinationChain OUTPUT (policy ACCEPT)
target prot opt source destinationИли используйте команду firewall-cmd:
firewall-cmd --state[root@server1 ~]# firewall-cmd --state
not running
[root@server1 ~]#Теперь я установлю редактор конфигурации сети и текстовый редактор “nano”, который я буду использовать на следующих этапах для редактирования конфигурационных файлов:
yum -y install nano wget NetworkManager-tuiЕсли вы не настроили свою сетевую карту во время установки, вы можете сделать это сейчас. Запустите…
nmtui… и перейдите к редактированию соединения:

Выберите ваш сетевой интерфейс:

Затем заполните свои сетевые данные - отключите DHCP и заполните статический IP-адрес, маску подсети, ваш шлюз и один или два DNS-сервера, затем нажмите ОК:

Затем выберите ОК, чтобы подтвердить изменения, которые вы внесли в сетевые настройки

и Выйти, чтобы закрыть инструмент настройки сети nmtui.

Теперь вам следует выполнить
ifconfigчтобы проверить, правильно ли установил установщик ваш IP-адрес:
[root@server1 ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fecd:cc52 prefixlen 64 scopeid 0x20
ether 00:0c:29:cd:cc:52 txqueuelen 1000 (Ethernet)
RX packets 55621 bytes 79601094 (75.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28115 bytes 2608239 (2.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 Если ваша сетевая карта не отображается там, значит, она не включена при загрузке. В этом случае откройте файл /etc/sysconfig/network-scripts/ifcfg-eth0
nano /etc/sysconfig/network-scripts/ifcfg-ens33и установите ONBOOT в yes:
[...]
ONBOOT=yes
[...] и перезагрузите сервер.
Проверьте ваш /etc/resolv.conf, если он перечисляет все DNS-серверы, которые вы ранее настроили:
cat /etc/resolv.confЕсли DNS-серверы отсутствуют, выполните
nmtuiи добавьте отсутствующие DNS-серверы снова.
Теперь перейдем к конфигурации…
4 Настройка /etc/hosts
Далее мы редактируем /etc/hosts. Сделайте его таким:
nano /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.100 server1.example.com server1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain65 Отключение SELinux
SELinux – это расширение безопасности CentOS, которое должно обеспечивать повышенную безопасность. На мой взгляд, вам не нужно это для настройки безопасной системы, и оно обычно вызывает больше проблем, чем преимуществ (подумайте об этом после того, как вы провели неделю, устраняя неполадки, потому что какая-то служба не работала так, как ожидалось, а затем вы обнаруживаете, что все было в порядке, только SELinux вызывал проблему). Поэтому я отключаю его (это обязательно, если вы хотите установить ISPConfig позже).
Отредактируйте /etc/selinux/config и установите SELINUX=disabled:
nano /etc/selinux/config# Этот файл управляет состоянием SELinux в системе.
# SELINUX= может принимать одно из этих трех значений:
# enforcing - Политика безопасности SELinux применяется.
# permissive - SELinux выводит предупреждения вместо применения.
# disabled - Политика SELinux не загружена.
SELINUX=disabled
# SELINUXTYPE= может принимать одно из этих двух значений:
# targeted - Защищены целевые процессы,
# mls - Защита многоуровневой безопасности.
SELINUXTYPE=targeted
После этого мы должны перезагрузить систему:
reboot6 Включение дополнительных репозиториев и установка программного обеспечения
Сначала мы импортируем GPG-ключи для программных пакетов:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*Затем мы включаем репозиторий EPEL в нашей системе CentOS, так как многие из пакетов, которые мы собираемся установить в ходе этого учебника, недоступны в официальном репозитории CentOS 7:
yum -y install epel-releaseyum -y install yum-prioritiesОтредактируйте /etc/yum.repos.d/epel.repo…
nano /etc/yum.repos.d/epel.repo… и добавьте строку priority=10 в секцию [epel]:
[epel]
name=Дополнительные пакеты для Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[...]Затем мы обновляем существующие пакеты в системе:
yum updateТеперь мы устанавливаем некоторые программные пакеты, которые понадобятся позже:
yum -y groupinstall 'Development Tools'7 Квота
(Если вы выбрали другую схему разбиения, чем я, вам нужно будет настроить эту главу так, чтобы квота применялась к разделам, где она вам нужна.)
Чтобы установить квоту, мы выполняем эту команду:
yum -y install quotaТеперь мы проверяем, включена ли квота для файловой системы, где хранятся данные веб-сайта (/var/www) и почтового ящика (var/vmail). В этой примерной настройке у меня один большой корневой раздел, поэтому я ищу ‘ / ‘:
mount | grep ' / '[root@server1 ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
[root@server1 ~]#Если у вас есть отдельный раздел /var, используйте:
mount | grep ' /var 'вместо этого. Если строка содержит слово “ noquota “, то продолжайте следующие шаги, чтобы включить квоту.
Включение квоты на корневом разделе / (root)
Обычно вы включаете квоту в файле /etc/fstab, но если файловая система является корневой файловой системой “/“, то квота должна быть включена с помощью параметра загрузки ядра Linux.
Отредактируйте файл конфигурации grub:
nano /etc/default/grubпоиск строки, которая начинается с GRUB_CMDLINE_LINUX и добавьте rootflags=uquota,gquota к параметрам командной строки, чтобы результирующая строка выглядела так:
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto vconsole.keymap=us rhgb quiet rootflags=uquota,gquota"и примените изменения, выполнив следующую команду.
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak
grub2-mkconfig -o /boot/grub2/grub.cfgи перезагрузите сервер.
rebootТеперь проверьте, включена ли квота:
mount | grep ' / '[root@server1 ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
[root@server1 ~]#Когда квота активна, мы можем увидеть “ usrquota,grpquota “ в списке параметров монтирования.
Включение квоты на отдельном разделе /var
Если у вас есть отдельный раздел /var, отредактируйте /etc/fstab и добавьте,uquota,gquota к разделу / ( /dev/mapper/centos-var):
nano /etc/fstab
#
# /etc/fstab
# Создано anaconda в Вск Сен 21 16:33:45 2014
#
# Доступные файловые системы, по ссылке, поддерживаются в '/dev/disk'
# См. страницы man fstab(5), findfs(8), mount(8) и/или blkid(8) для получения дополнительной информации
#
/dev/mapper/centos-root / xfs defaults 1 1
/dev/mapper/centos-var /var xfs defaults,uquota,gquota 1 2
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot xfs defaults 1 3
/dev/mapper/centos-swap swap swap defaults 0 0Затем выполните
mount -o remount /varquotacheck -avugm
quotaon -avugчтобы включить квоту. Если вы получите ошибку, что нет раздела с включенной квотой, то перезагрузите сервер, прежде чем продолжить.
8 Установка Apache, MySQL, phpMyAdmin
Мы можем установить необходимые пакеты одной командой:
yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadminGet new posts in your inbox
No spam. Unsubscribe anytime.