Серверные настройки · 9 min read · Jan 25, 2026
Идеальный сервер - Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1) - Страница 2
10 Установка Apache2, PHP, FCGI, suExec, Pear, phpMyAdmin и mcrypt
Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt можно установить следующим образом:
apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached libapache2-mod-passengerВы увидите следующие вопросы:
Web server to reconfigure automatically: <- apache2
Configure database for phpmyadmin with dbconfig-common? <- yes
Enter the password of the administrative user? <- yourrootmysqlpassword
Enter the phpmyadmin application password? <- Just press enterЗатем выполните следующую команду, чтобы включить модули Apache suexec, rewrite, ssl, actions и include (плюс dav, dav_fs и auth_digest, если вы хотите использовать WebDAV):
a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headersЧтобы убедиться, что сервер не может быть атакован через уязвимость HTTPOXY, мы отключим заголовок HTTP_PROXY в apache глобально, добавив файл конфигурации /etc/apache2/conf-available/httpoxy.conf.
sudo nano /etc/apache2/conf-available/httpoxy.confВставьте следующее содержимое в файл:
RequestHeader unset Proxy early
И включите модуль, выполнив:
a2enconf httpoxy
service apache2 restart10.1 Установка HHVM (HipHop Virtual Machine)
На этом этапе мы установим HHVM из его официального репозитория Debian. Добавьте репозиторий HHVM и импортируйте ключ.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
echo deb http://dl.hhvm.com/debian jessie main | sudo tee /etc/apt/sources.list.d/hhvm.listОбновите список пакетов:
sudo apt-get updateи установите HHVM:
sudo apt-get install hhvm10.2 Установка SuPHP (необязательно, но не рекомендуется)
ОБНОВЛЕННОЕ ЗАМЕЧАНИЕ: SuPHP больше не следует устанавливать, переходите к шагу 11
SuPHP больше не доступен для Debian Jessie. Режим suphp больше не следует использовать в ISPConfig, так как есть более лучшие режимы PHP, такие как php-fpm и php-fcgi. Если вам действительно нужен suphp по причинам совместимости, следуйте шагам в этой главе, чтобы скомпилировать его вручную. Но мы не рекомендуем его установку.
apt-get install apache2-dev build-essential autoconf automake libtool flex bison debhelper binutilscd /usr/local/src
wget http://suphp.org/download/suphp-0.7.2.tar.gz
tar zxvf suphp-0.7.2.tar.gz
wget -O suphp.patch https://lists.marsching.com/pipermail/suphp/attachments/20130520/74f3ac02/attachment.patch
patch -Np1 -d suphp-0.7.2 < suphp.patch
cd suphp-0.7.2
autoreconf -if
./configure --prefix=/usr/ --sysconfdir=/etc/suphp/ --with-apr=/usr/bin/apr-1-config --with-apache-user=www-data --with-setid-mode=owner --with-logfile=/var/log/suphp/suphp.log
make
make install Создайте каталог конфигурации suphp и файл suphp.conf:
mkdir /var/log/suphp
mkdir /etc/suphp
nano /etc/suphp/suphp.conf[global]
;Path to logfile
logfile=/var/log/suphp/suphp.log
;Loglevel
loglevel=info
;User Apache is running as
webserver_user=www-data
;Path all scripts have to be in
docroot=/var/www
;Path to chroot() to before executing script
;chroot=/mychroot
; Security options
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false
;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=true
;Send minor error messages to browser
errors_to_browser=false
;PATH environment variable
env_path=/bin:/usr/bin
;Umask to set, specify in octal notation
umask=0022
; Minimum UID
min_uid=100
; Minimum GID
min_gid=100
[handlers]
;Handler for php-scripts
x-httpd-suphp="php:/usr/bin/php-cgi"
;Handler for CGI-scripts
x-suphp-cgi=execute:!self
umask=0022Далее мы добавим файл конфигурации для загрузки модуля suphp в apache:
echo "LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so" > /etc/apache2/mods-available/suphp.loadЗатем откройте /etc/apache2/mods-available/suphp.conf…
nano /etc/apache2/mods-available/suphp.conf… и добавьте следующее содержимое:
AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
suPHP_AddHandler application/x-httpd-suphp
suPHP_Engine on
# By default, disable suPHP for debian packaged web applications as files
# are owned by root and cannot be executed by suPHP because of min_uid.
suPHP_Engine off
# # Use a specific php config file (a dir which contains a php.ini file)
# suPHP_ConfigPath /etc/php5/cgi/suphp/
# # Tells mod_suphp NOT to handle requests with the type .
# suPHP_RemoveHandler
Включите модуль suphp в apache:
a2enmod suphpПерезапустите Apache после этого:
service apache2 restart11 Установка Let’s Encrypt
ISPConfig 3.1 поддерживает бесплатный центр сертификации SSL Let’s Encrypt. Функция Let’s Encrypt позволяет вам создавать бесплатные SSL сертификаты для вашего веб-сайта из ISPConfig.
Теперь мы добавим поддержку Let’s Encrypt.
mkdir /opt/certbot
cd /opt/certbot
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-autoТеперь выполните команду certbot-auto, которая загрузит и установит программное обеспечение и его зависимости.
./certbot-autoКоманда затем сообщит вам, что “в ваших конфигурационных файлах не найдено имен” и спросит, следует ли продолжать, пожалуйста, выберите “нет”, так как сертификаты будут созданы ISPConfig.

12 Установка PHP-FPM и XCache
XCache - это бесплатный и открытый кэш PHP opcode для кэширования и оптимизации промежуточного кода PHP. Он похож на другие кэши PHP opcode, такие как eAccelerator и APC. Настоятельно рекомендуется установить один из этих кэшей, чтобы ускорить вашу PHP-страницу.
12.1 PHP-FPM (рекомендуется)
Начиная с ISPConfig 3.0.5, есть дополнительный режим PHP, который вы можете выбрать для использования с Apache: PHP-FPM.
Чтобы использовать PHP-FPM с Apache, нам нужен модуль Apache mod_fastcgi (пожалуйста, не путайте его с mod_fcgid - они очень похожи, но вы не можете использовать PHP-FPM с mod_fcgid). Мы можем установить PHP-FPM и mod_fastcgi следующим образом:
apt-get install libapache2-mod-fastcgi php5-fpmУбедитесь, что вы включили модуль и перезапустили Apache:
a2enmod actions fastcgi alias
service apache2 restart12.2 Установка XCache
XCache можно установить следующим образом:
apt-get install php5-xcacheТеперь перезапустите Apache:
service apache2 restart13 Установка Mailman
ISPConfig позволяет вам управлять (создавать/изменять/удалять) почтовыми списками Mailman. Если вы хотите воспользоваться этой функцией, установите Mailman следующим образом:
apt-get install mailmanВыберите хотя бы один язык, например:
Languages to support: <-- en (English)
Missing site list <-- OkПеред тем как мы сможем запустить Mailman, необходимо создать первый почтовый список с именем mailman:
newlist mailmanroot@server1:~# newlist mailman
Enter the email of the person running the list: <-- admin email address, e.g. [email protected]
Initial mailman password: <-- admin password for the mailman list
To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:
## mailman mailing list
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Hit enter to notify mailman owner... <-- ENTER
root@server1:~#Откройте /etc/aliases после этого…
nano /etc/aliases… и добавьте следующие строки:
[...]
## mailman mailing list
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"Запустите:
newaliasesи перезапустите Postfix:
service postfix restartНаконец, мы должны включить конфигурацию Mailman для Apache:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.confЭто определяет псевдоним /cgi-bin/mailman/ для всех виртуальных хостов Apache, что означает, что вы можете получить доступ к интерфейсу администратора Mailman для списка по адресу http://server1.example.com/cgi-bin/mailman/admin/, а веб-страница для пользователей почтового списка будет доступна по адресу http://server1.example.com/cgi-bin/mailman/listinfo/.
По адресу http://server1.example.com/pipermail вы можете найти архивы почтового списка.
Перезапустите Apache после этого:
service apache2 restartЗатем запустите демон Mailman:
service mailman start14 Установка PureFTPd и Quota
PureFTPd и quota можно установить с помощью следующей команды:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatoolОтредактируйте файл /etc/default/pure-ftpd-common…
nano /etc/default/pure-ftpd-common… и убедитесь, что режим запуска установлен на standalone и VIRTUALCHROOT=true:
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...] Теперь мы настраиваем PureFTPd для разрешения FTP и TLS-сессий. FTP - это очень небезопасный протокол, так как все пароли и все данные передаются в открытом виде. Используя TLS, вся связь может быть зашифрована, что делает FTP гораздо более безопасным.
Если вы хотите разрешить FTP и TLS-сессии, выполните
echo 1 > /etc/pure-ftpd/conf/TLSЧтобы использовать TLS, мы должны создать SSL-сертификат. Я создаю его в /etc/ssl/private/, поэтому сначала создаю этот каталог:
mkdir -p /etc/ssl/private/После этого мы можем сгенерировать SSL-сертификат следующим образом:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pemCountry Name (2 letter code) [AU]: <-- Введите название вашей страны (например, "DE").
State or Province Name (full name) [Some-State]: <-- Введите название вашего штата или провинции.
Locality Name (eg, city) []: <-- Введите ваш город.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Введите название вашей организации (например, название вашей компании).
Organizational Unit Name (eg, section) []: <-- Введите название вашего структурного подразделения (например, "IT Department").
Common Name (eg, YOUR name) []: <-- Введите полное доменное имя системы (например, "server1.example.com").
Email Address []: <-- Введите ваш адрес электронной почты.Измените права доступа к SSL-сертификату:
chmod 600 /etc/ssl/private/pure-ftpd.pemЗатем перезапустите PureFTPd:
service pure-ftpd-mysql restartОтредактируйте /etc/fstab. Мой выглядит так (я добавил, usrjquota=quota.user, grpjquota=quota.group, jqfmt=vfsv0 к разделу с точкой монтирования /):
nano /etc/fstab# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
# / was on /dev/sda1 during installation
UUID=3dc3b58d-97e5-497b-8254-a913fdfc5408 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# swap was on /dev/sda5 during installation
UUID=36bf486e-8f76-492d-89af-5a8eb3ce8a02 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 Чтобы включить квоты, выполните следующие команды:
mount -o remount /quotacheck -avugm
quotaon -avug15 Установка BIND DNS Server
BIND можно установить следующим образом:
apt-get install bind9 dnsutilsЕсли ваш сервер является виртуальной машиной, то настоятельно рекомендуется установить демон haveged для получения более высокой энтропии для подписания DNSSEC. Вы также можете установить haveged на не виртуальных серверах, это не повредит.
apt-get install havegedОбъяснение по этой теме можно найти здесь.
16 Установка Webalizer и AWStats
Webalizer и AWStats можно установить следующим образом:
apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perlОткройте /etc/cron.d/awstats после этого…
nano /etc/cron.d/awstats… и закомментируйте все в этом файле:
#MAILTO=root
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh17 Установка Jailkit
Jailkit нужен только если вы хотите chroot пользователей SSH. Его можно установить следующим образом (важно: Jailkit должен быть установлен до ISPConfig - его нельзя установить после!):
apt-get install build-essential autoconf automake libtool flex bison debhelper binutilscd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit-2.19
./debian/rules binaryТеперь вы можете установить пакет Jailkit.deb следующим образом:
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*18 Установка fail2ban и UFW Firewall
Это необязательно, но рекомендуется, так как монитор ISPConfig пытается показать журнал:
apt-get install fail2banЧтобы сделать fail2ban монитором PureFTPd и Dovecot, создайте файл /etc/fail2ban/jail.local:
nano /etc/fail2ban/jail.local[pureftpd]
enabled = true
port = ftp
filter = pureftpd
logpath = /var/log/syslog
maxretry = 3
[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5
[postfix-sasl]
enabled = true
port = smtp
filter = postfix-sasl
logpath = /var/log/mail.log
maxretry = 3Затем создайте следующие два файла фильтров:
nano /etc/fail2ban/filter.d/pureftpd.conf[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex = nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P\S*),.*
ignoreregex = Затем, чтобы добавить строку ignoreregex в файл фильтра postfix-sasl, выполните:
echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.confПерезапустите fail2ban после этого:
service fail2ban restartЧтобы установить брандмауэр UFW, выполните эту команду apt:
apt-get install ufwGet new posts in your inbox
No spam. Unsubscribe anytime.