ISPconfig 2 бесплатная панель с большими возможностями теперь и на Ubuntu server 10.10. В этом материале показано, как настроить Ubuntu Maverick Meerkat (Ubuntu 10.10) server, который предлагает все услуги, необходимые интернет-провайдерам и хостерам: веб-сервер Apache (SSL-совместимых), Postfix почтовый сервер с SMTP-AUTH и TLS, BIND DNS сервера, Proftpd FTP-сервер, сервер MySQL, Courier POP3/IMAP, квоты, брандмауэр и так далее. В конечном варианте Вы получите надежную систему, с установленной бесплатной панель управления веб-хостингом ISPConfig 2.
Обратите внимание, что эта установка не применима для ISPConfig 3! Это справедливо только для ISPConfig 2! Я буду использовать следующее программное обеспечение:
- Веб-сервер: Apache 2.2.16 PHP 5.3.3 с, Python, Ruby, и WebDAV
- Сервер баз данных: MySQL 5.1.49
- Почтовый сервер: Postfix
- DNS-сервер: bind9
- FTP-сервер: ProFTPD
- POP3/IMAP: Я буду использовать Maildir формат и, следовательно, установлю Courier-POP3/Courier-IMAP.
- Webalizer для статистики сайта
Это не единственный способ создания такой системы. Есть много способов достижения этой цели, это всего лишь один из них.
Требования для установки ISPconfig 3
- Ubuntu 10,10 сервера компакт-диск
- Быстрое подключение к Интернету.
Предварительные замечания
В данной статье я использую имя хоста server1.example.com с IP-адреса 192.168.0.100 и шлюз 192.168.0.1. Эти параметры могут отличаться в Вашем случае, поэтому придется заменить их при необходимости.
Базовая система Ubuntu server 10.10
Вставьте установочный диск Ubuntu в вашу систему и загрузиться с него. Выберите язык:
Затем выберите Установить Ubuntu Server:
Затем выберите ваше местоположение:
Выберите раскладку клавиатуры (если Вы выбрали не определять раскладку клавиатуры, то Вам будет предложено нажать несколько клавиш, и программа установки попытается определить раскладку клавиатуры, основанную на ключах нажатии):
Установщик проверяет установочный компакт-диск, оборудовании и конфигурирует сеть с DHCP, если есть DHCP-сервера в сети.
Введите имя хоста. В этом примере, моя система называется server1.example.com, так что я ввожу server1:
Пожалуйста, проверьте установленный часовой пояс. Если согласны, выберите Да, в противном случае нет:
Теперь Вам предлагается выбрать жесткой диск. Для простоты я выбираю Авто - использовать весь диск и настроить LVM - это создаст группу томов с двумя логическими томами, один для файловой системы, а другой для подкачки (разумеется, разметка полностью зависит от Вас - если Вы знаете, что делать, Вы можете создать свои разделы вручную).
Выберите диск, который вы хотите разбить:
Когда вас попросят внести изменения на диски и настроить LVM, выберите Да:
Если вы выбрали Авто - использовать весь диск и настроить LVM, разметки будет создана одна большая группа томов, используя все дисковое пространство. Теперь Вы можете указать, сколько дискового пространства, должно быть использовано на логические тома для и подкачку. Имеет смысл оставить некоторое пространство неиспользованным, что бы в дальнейшем можно было расширить существующие логические тома или создавать новые.
По окончанию нажмите Да, на вопрос о записи изменений на диск:
После этого ваши новые разделы создаются и форматируются. И начнется установка базовой системы. Создайте пользователя, например Administrator с именем пользователя Administrator (не используйте имя пользователя Admin, так как это зарезервированное имя на Ubuntu 10,10):
Мне не нужно зашифровывать домашний каталог, так что я выбираю нет:
Следующая настройка менеджера пакетов APT. Так как у меня нет Proxy сервера я оставляю поле пустым:
Что бы иметь больше контроля, поэтому я выбираю не автоматическое обновление. Конечно, это зависит от Вас, что Вы выберите здесь:
Мы должны установить DNS, почтовый и LAMP сервера, но тем не менее я не выбираю их, потому что, я хотел бы иметь полный контроль над установленым на моей системе. Мы установим необходимые пакеты вручную позже. Единственное, я выбираю здесь OpenSSH сервер для того что бы я мог сразу же подключиться к системе с SSH клиент, такой как PuTTY после завершения установки:
Установка продолжается. Выберите Да, когда Вас попросят установить загрузчик GRUB в главную загрузочную запись:
Базовая установка системы в настоящее время закончена. Извлеките установочный компакт - диск из дисковода и нажмите Продолжить для перезагрузки системы:
Активация root
После перезагрузки вы можете Войти с ранее созданное имя пользователя (например Administrator). Потому что мы должны выполнить все шаги из этого учебника с привилегиями суперпользователя root, для этого активируем его (Вы можете воспользоваться sudo su или sudo passwd root):
переключение на пользователя root (1 команда) |
|
Если хотите что каждый раз не активировать пользователя root выполните следующее:
Активируем суперпользователя root (1 команда) |
|
Таким образом Вы можете входить непосредственно как root, но по различным причинам не это не одобрено разработчиками и сообществом Ubuntu.
Установка SSH-сервера (необязательно)
Если Вы не установите OpenSSH сервер во время базовой установки системы, можете сделать это сейчас:
Запуск SSH (1 команда) |
|
С этого момента Вы можете использовать SSH клиент, такой как PuTTY что бы связать Вашу рабочую станцию с вашим сервером на Ubuntu server 10.10 и выполните продолжить установку ISPConfig 3.
Настройка сети
Поскольку установка Ubuntu настроила систему, на получение настроек сети через DHCP, то сейчас мы должны изменить, что бы сервер имел статический IP-адрес. Отредактируем /etc/network/interfaces и настроим его под свои нужды (в данном примере установки я буду использовать IP-адрес 192.168.0.100):
Настроим сеть (1 команда) |
|
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1
Перезапустим сеть и отредактируем hosts (1 команда) |
|
127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1 # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Запустим новые:
Перезапустим сеть и отредактируем hosts (1 команда) |
|
Проверим наши настройки:
Перезапустим сеть и отредактируем hosts (1 команда) |
|
Обе команды должны сослаться на server1.example.com
Обновим Ubuntu server 10.10
Отредактируем /etc/apt/sources.list
Отредактируем sources.list (1 команда) |
|
Здесь необходимо раскомментировать universe и multiverse репозитории. Файл должен выглядеть следующим образом:
# # deb cdrom:[Ubuntu-Server 10.10 _Maverick Meerkat_ - Release i386 (20101007)]/ maverick main restricted #deb cdrom:[Ubuntu-Server 10.10 _Maverick Meerkat_ - Release i386 (20101007)]/ maverick main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://de.archive.ubuntu.com/ubuntu/ maverick main restricted deb-src http://de.archive.ubuntu.com/ubuntu/ maverick main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://de.archive.ubuntu.com/ubuntu/ maverick-updates main restricted deb-src http://de.archive.ubuntu.com/ubuntu/ maverick-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://de.archive.ubuntu.com/ubuntu/ maverick universe deb-src http://de.archive.ubuntu.com/ubuntu/ maverick universe deb http://de.archive.ubuntu.com/ubuntu/ maverick-updates universe deb-src http://de.archive.ubuntu.com/ubuntu/ maverick-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://de.archive.ubuntu.com/ubuntu/ maverick multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ maverick multiverse deb http://de.archive.ubuntu.com/ubuntu/ maverick-updates multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ maverick-updates multiverse ## Uncomment the following two lines to add software from the 'backports' ## repository. ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. # deb http://de.archive.ubuntu.com/ubuntu/ maverick-backports main restricted universe multiverse # deb-src http://de.archive.ubuntu.com/ubuntu/ maverick-backports main restricted universe multiverse ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. ## This software is not part of Ubuntu, but is offered by Canonical and the ## respective vendors as a service to Ubuntu users. # deb http://archive.canonical.com/ubuntu maverick partner # deb-src http://archive.canonical.com/ubuntu maverick partner ## Uncomment the following two lines to add software from Ubuntu's ## 'extras' repository. ## This software is not part of Ubuntu, but is offered by third-party ## developers who want to ship their latest software. # deb http://extras.ubuntu.com/ubuntu maverick main # deb-src http://extras.ubuntu.com/ubuntu maverick main deb http://security.ubuntu.com/ubuntu maverick-security main restricted deb-src http://security.ubuntu.com/ubuntu maverick-security main restricted deb http://security.ubuntu.com/ubuntu maverick-security universe deb-src http://security.ubuntu.com/ubuntu maverick-security universe deb http://security.ubuntu.com/ubuntu maverick-security multiverse deb-src http://security.ubuntu.com/ubuntu maverick-security multiverse
Запустим процесс обновления и перезагрузим систему
Обновление и перезапуск Ubuntu server (3 команды) |
|
Изменение оболочки по умолчанию
Если Вы не сделаете этого, установить ISPConfig не получиться. Так как /bin/sh является символичной ссылкой на /bin/dash , Однако нам надо /bin/bash, а не /bin/dash. Поэтому мы выполним следующее:
Переконфигурируем dash (1 команда) |
|
На вопрос установки dash как /bin/sh отвечаем No
Отключим AppArmor
AppArmor является модулем безопасности (аналог SELinux), который должен обеспечить расширенную безопасность. На мой взгляд, Вам не нужно настраивать безопасность системы, обычно это вызывает больше проблем, чем преимуществ. Поэтому я советую отключить его (это необходимо, если вы хотите установить ISPConfig позже).
Отключение AppArmor (3 команды) |
|
Синхронизация системных часов
Это хорошая идея, чтобы синхронизировать системные часы с NTP Network TIME рrotocol) сервером через Интернет. Просто запустите:
Автоматическая синхронизация времени (1 команда) |
|
Установка некоторых программ
Теперь установим несколько пакетов, которые необходимы нам в дальнейшем:
Автоматическая синхронизация времени (1 команда) |
|
Журналирование квоты
Если вы выбрали другую схему разбиения диска, нежели у меня, то здесь Вы должны настроить квоту так чтобы она распространялась на разделы, где это необходимо.·Изменить /etc/fstab. Отредактировав файл fstab для этого необходимо в строке после слова errors=remount-ro добавить ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 как показано ниже:
Установим и отредактируем /etc/fstab (1 команда) |
|
# /etc/fstab: static file system information. # # Use 'blkid -o value -s UUID' 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). # #proc /proc proc nodev,noexec,nosuid 0 0 /dev/mapper/server1-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1 # /boot was on /dev/sda1 during installation UUID=a8f37dcf-5836-485c-a451-3ae2f0f47720 /boot ext2 defaults 0 2 /dev/mapper/server1-swap_1 none swap sw 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
Включим квоту, выполнив команды:
Запуск квоты (3 команды) |
|
DNS-сервер
BIND может быть установлен следующим образом:
Установка BIND (1 команда) |
|
По соображениям безопасности мы хотим запустить BIND изолированный поэтому мы выполним следующие шаги:
Остановим и настроим BIND (2 команда) |
|
Отредактируем файл /etc/default/bind9, так что бы демон работал, как обычный пользователь bind, изолированной в /var/lib/named. Изменить строку OPTIONS="-u bind" на OPTIONS="-u bind -t /var/lib/named":
# run resolvconf? RESOLVCONF=yes # startup options for the server OPTIONS="-u bind -t /var/lib/named"
Создадим необходимые каталоги в /var/lib:
Остановим и настроим BIND (2 команда) |
|
Затем переместим каталог конфигурации из /etc в /var/lib/named/etc:
Переместим каталог конфигурации (1 команда) |
|
Создадим символические ссылки на новые конфигурации каталога из старого места (чтобы избежать проблем при связывают обновленных в будущем):
Создаем ссылку (1 команда) |
|
Сделаем нулевое и случайное устройство, и исправим разрешения каталогов:
Создаем устройства и правим разрешения (5 команд) |
|
Нам нужно создать файл /etc/rsyslog.d/bind-chroot.conf ...
Правим файл bind-chroot.conf (5 команд) |
|
... и добавьте следующее, что бы мы могли получать важные сообщения записывающиеся в системный журнал:
$AddUnixListenSocket /var/lib/named/dev/log
Перезагрузите протоколирования, Запуск BIND, и проверить /var/log/syslog на наличие ошибок:
Проверка работоспособности (2 команды) |
|
MySQL
Для установки MySQL, мы запускаем:
Установка MySQL (1 команда) |
|
Вам будет предложено ввести пароль для пользователя MySQL root - это пароль действителен для пользователей root@localhost , а также Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., поэтому мы не должны указать пароль администратора MySQL позже вручную :
- Новый пароль для MySQL "корень" Пользователь: - Ваш пароль на MySQL
- Повторите пароль для MySQL "корень" Пользователь: - повторите Ваш пароль на MySQL
Мы хотим, чтобы MySQL слушать на всех интерфейсах, а не только локальный, поэтому мы редактируем / и т.д. / MySQL / my.cnf и закомментируйте строку привязки-адрес = 127.0.0.1:
Редактируем MySQL (1 команда) |
|
[...] # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...]
Перезапустим MySQL (1 команда) |
|
Следующая команда покажет правильность нашей настройки
Убедимся, что сеть работает (1 команда) |
|
показания будут выглядеть примерно так:
root@server1:~# netstat -tap | grep mysql tcp 0 0 *:mysql *:* LISTEN 6796/mysqld root@server1:~#
Postfix с SMTP-AUTH и TLS
Для того чтобы установить Postfix с SMTP-AUTH и TLS выполним следующие шаги:
Установим postfix libsasl2-2 sasl2-bin libsasl2-modules procmail (1 команда) |
|
Вам будет предложено два вопроса. Ответим на них следующим образом:
- Общий тип настройка почты: - Интернет-сайт
- Система почты имя: - server1.example.com
Затем выполним:
Перенастройка postfix (1 команда) |
|
- Общий тип настройка почты: - Интернет-сайта
- Система почты имя: - server1.example.com
- Корневые и почты получателя почтмейстер: - [пробел]
- Другие направления принимать почту (пусто, нет): - server1.example.com, localhost.example.com, localhost.localdomain, локальный
- Группа синхронного обновления почтовой очереди? - нет
- Локальные сети: - 127.0.0.0 / 8 [:: FFFF: 127.0.0.0] / 104 [:: 1] / 128
- Используйте Procmail для локальной доставки? - Да
- Почтовый ящик предельный размер (байт): - 0
- Локальный характер расширения адрес: - +
- Интернет-протоколов для использования: - все
Далее, сделайте следующее:
Настройка SMTP (9 команд) |
|
Затем мы создаем сертификаты для TLS:
Создаем сертификаты TLS (9 команд) |
|
Далее настроить Postfix для TLS (убедитесь, что вы используете правильные имя хоста для myhostname):
Создаем сертификаты TLS (12 команд) |
|
Файл /etc/postfix/main.cf должен выглядеть примерно так:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # TLS parameters smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = server1.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = server1.example.com, localhost.example.com, localhost.localdomain, localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_tls_auth_only = no smtp_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
Аутентификация будет сделано saslauthd. Мы должны изменить несколько вещей, чтобы заставить ее работать должным образом. Поскольку Postfix работает изолированной в /var/spool/postfix мы должны сделать следующее:
Редактируем saslauthd (1 команда) |
|
# # Settings for saslauthd daemon # Please read /usr/share/doc/sasl2-bin/README.Debian for details. # # Should saslauthd run automatically on startup? (default: no) START=yes # Description of this saslauthd instance. Recommended. # (suggestion: SASL Authentication Daemon) DESC="SASL Authentication Daemon" # Short name of this saslauthd instance. Strongly recommended. # (suggestion: saslauthd) NAME="saslauthd" # Which authentication mechanisms should saslauthd use? (default: pam) # # Available options in this Debian package: # getpwent -- use the getpwent() library function # kerberos5 -- use Kerberos 5 # pam -- use PAM # rimap -- use a remote IMAP server # shadow -- use the local shadow password file # sasldb -- use the local sasldb database file # ldap -- use LDAP (configuration is in /etc/saslauthd.conf) # # Only one option may be used at a time. See the saslauthd man page # for more information. # # Example: MECHANISMS="pam" MECHANISMS="pam" # Additional options for this mechanism. (default: none) # See the saslauthd man page for information about mech-specific options. MECH_OPTIONS="" # How many saslauthd processes should we run? (default: 5) # A value of 0 will fork a new process for each connection. THREADS=5 # Other options (default: -c -m /var/run/saslauthd) # Note: You MUST specify the -m option or saslauthd won't run! # # WARNING: DO NOT SPECIFY THE -d OPTION. # The -d option will cause saslauthd to run in the foreground instead of as # a daemon. This will PREVENT YOUR SYSTEM FROM BOOTING PROPERLY. If you wish # to run saslauthd in debug mode, please run it by hand to be safe. # # See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information. # See the saslauthd man page and the output of 'saslauthd -h' for general # information about these options. # # Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd" #OPTIONS="-c -m /var/run/saslauthd" OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
Затем добавьте в Postfix пользователя sasl группы (это гарантирует, что Postfix имеет разрешение на доступ к saslauthd):
Добавляем пользователя sasl (1 команда) |
|
Теперь перезапустить Postfix и запустим saslauthd: (2 команды) |
|
Чтобы убедиться, что SMTP-AUTH и TLS работать Теперь запустите следующую команду:
Проверка Telnet: (1 команда) |
|
Вы увидите: 250-STARTTLS и 250-AUTH PLAIN LOGIN, значит все в порядке. На моей системе это выглядит так:
root@server1:/etc/postfix/ssl# telnet localhost 25 Trying ::1... Connected to localhost.localdomain. Escape character is '^]'. 220 server1.example.com ESMTP Postfix (Ubuntu) ehlo localhost 250-server1.example.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit 221 2.0.0 Bye Connection closed by foreign host. root@server1:/etc/postfix/ssl#
Возврат в системную оболочку: (1 команда) |
|
Courier-IMAP/Courier-POP3
Запустим установку Courier-IMAP/Courier-IMAP-SSL (для IMAPS на порт 993) и Courier-POP3/Courier-POP3-SSL (для POP3S на порт 995):
Установка пакетов Courier-IMAP/Courier-POP3: (1 команда) |
|
Вам будет предложено два вопроса:
- Создание папок для веб-администрирования? - нет
- SSL сертификат требуется - Ok
Во время установки SSL сертификаты для IMAP-и POP3-SSL-SSL создаются с хоста локальный. Чтобы изменить это правильное имя хоста (server1.example.com в этом руководстве), удалим сертификаты ...
Удаление сертификатов + отредактируем imapd.cnf: (4 команды) |
|
... и изменить следующие два файла, заменить CN=localhost на CN=server1.example.com (вы можете также изменить другие значения, если это необходимо):
[...] CN=server1.example.com [...]
Отредактируем pop3d.cnf: (1 команда) |
|
[...] CN=server1.example.com [...]
Пересоздадим сертификаты и перезапустим их: (4 команды) |
|
Apache/PHP5/Ruby/Python/WebDAV
Теперь мы установим Apache:
Необходимые пакеты Apache: (1 команда) |
|
Далее установим PHP5, Ruby, и Python (все три в виде модулей Apache):
Установка PHP5, Ruby, и Python: (1 команда) |
|
Изменим /etc/apache2/mods-available/dir.conf:
Редактируем dir.conf: (1 команда) |
|
<ifmodule> #DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml </ifmodule>
Теперь мы должны включить некоторые модули Apache (SSL , rewrite , suexec , include , and WebDAV):
Редактируем dir.conf: (1 команда) |
|
Перезапустим Apache:
Редактируем dir.conf: (1 команда) |
|
Мы должны исправить небольшие проблемы с Ruby. Если вы устанавливаете ISPConfig и разрешили Ruby для веб-сайта, .rbx файлов, будут выполняться штрафы и отображаются в браузере, но это не работает для .rb файлов - вам будет предложено загрузить .rb файлы - То же самое происходит, если настроить вручную для Ruby виртуальных хостов (то есть, это не имеет ничего общего с ISPConfig). Чтобы это исправить, мы открываем /etc/mime.types ...
Редактируем mime.types: (1 команда) |
|
... и закомментируйте application/x-ruby строку:
[...] #application/x-ruby rb [...]
Перезапускаем Apache: (1 команда) |
|
Сейчас .rb файлы, будут выполняться и отображаться в браузере, так же, как .rbx файлы.
В следующей главе мы собираемся отключить PHP (это необходимо, только если вы хотите установить ISPConfig на этом сервере). В отличие от PHP, Ruby и Python по умолчанию отключены, поэтому мы не должны делать это.
Отключение глобального PHP
В ISPConfig Вам необходимо настроить PHP отдельно для каждого сайта, т.е. вы можете указать, какие веб-сайты могут работать с PHP скриптами и какие не могут. Это работает только, если PHP отключена глобально, иначе все сайты будут иметь возможность запускать PHP скрипты, независимо от того, что вы указываете в ISPConfig.
Чтобы отключить глобальное PHP, мы отредактировать /etc/mime.types и закомментируйте application/x-httpd-php строки:
Редактируем mime.types: (1 команда) |
|
[...] #application/x-httpd-php phtml pht php #application/x-httpd-php-source phps #application/x-httpd-php3 php3 #application/x-httpd-php3-preprocessed php3p #application/x-httpd-php4 php4 #application/x-httpd-php5 php5 [...]
Отредактируем /etc/apache2/mods-enabled/php5.conf и за комментируем SetHandler строку:
Редактируем php5.conf: (1 команда) |
|
<IfModule mod_php5.c> <FilesMatch "\.ph(p3?|tml)$"> #SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> #SetHandler application/x-httpd-php-source </FilesMatch> # To re-enable php in user directories comment the following lines # (from 111IfModule ...> to 111/IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. <IfModule mod_userdir.c> 111Directory /home/*/public_html> php_admin_value engine Off </Directory> </IfModule> </IfModule>
Перезапустим Apache:
Перезапуск Apache: (1 команда) |
|
Proftpd
Для того чтобы установить Proftpd, выполним:
Установка Proftpd: (1 команда) |
|
Вам будет задан вопрос:
Запустить ProFTPD: - автономное
По соображениям безопасности добавить следующие строки в /etc/proftpd/proftpd.conf
Редактируем Proftpd: (1 команда) |
|
[...] DefaultRoot ~ ServerIdent on "FTP Server ready." [...]
ISPConfig ожидает нахождение конфигурацию в /etc/proftpd.conf вместо /etc/proftpd/proftpd.conf, поэтому мы создаем символическую ссылку (вы можете пропустить эту команду, если вы не хотите устанавливать ISPConfig):
Ставим ссылку на /etc/proftpd.conf и перезапустим proftpd: (2 команда) |
|
Webalizer
Чтобы установить Webalizer, просто запустите:
Установка Webalizer: (1 команда) |
|
Синхронизация системного времени
Это хорошая идея, чтобы синхронизировать системные часы с NTP (Network TIME рrotocol) сервером через Интернет. Просто запустите:
Синхронизация системного: (1 команда) |
|
и системное время всегда будут синхронизированы.
Установка некоторых Perl модулей, необходимых SpamAssassin
Установка Perl модулей: (1 команда) |
|
ISPConfig
Конфигурация сервера в настоящее время закончена, и теперь можно установить на него ISPConfig.
Перед установкой ISPConfig, есть одна важная вещь, которую Вы должны сделать. Открыть /usr/include/stdio.h и заменить getline с parseline строке 671:
Редактируем stdio.h: (1 команда) |
|
[...] This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern _IO_ssize_t parseline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __wur; #endif [...]
Если вы не сделаете этого, установка будет прервана из-за следующей ошибки:
htpasswd.c:101: error: conflicting types for 'getline' /usr/include/stdio.h:671: note: previous declaration of 'getline' was here make[2]: *** [htpasswd.o] Error 1 make[2]: Leaving directory `/home/ISPConfig-2.2.stable/install_ispconfig/compile_aps/apache_1.3.41/src/support' make[1]: *** [build-support] Error 1 make[1]: Leaving directory `/home/ISPConfig-2.2.stable/install_ispconfig/compile_aps/apache_1.3.41' make: *** [build] Error 2 ERROR: Could not make Apache
Вы можете отменить изменения в /usr/include/stdio.h после успешной установки ISPConfig.
Примечание На Suexec
Если вы хотите запустить CGI-скрипты под Suexec, вы должны указать /var/www как домашний каталог для сайтов, созданных на ISPConfig как в Suexec Ubuntu собран с /var/www как doc_root. Выполните:
Указываем домашний каталог: (1 команда) |
|
а вывод должен выглядеть следующим образом:
root@server1:~# /usr/lib/apache2/suexec -V -D AP_DOC_ROOT="/var/www" -D AP_GID_MIN=100 -D AP_HTTPD_USER="www-data" -D AP_LOG_EXEC="/var/log/apache2/suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=100 -D AP_USERDIR_SUFFIX="public_html" root@server1:~#