headermask image

Notice: Undefined variable: t in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15

Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

Идеальный сервер: настройка Ubuntu 7.10 Server для ISP

Трудитесь сисадмином у провайдера или на хостинге? Или возможно у вас есть желание открыть собственный бизнес в данном направлении? Или у вас просто руки чешуться попробовать чего-нибудь поставить? В этом вам окажет неоценимую помощь данное руководство

Статья рассказывает о настройке системы для требований интернет-провайдеров и хостеров, на базе Ubuntu 7.10 Server.

Эта статья расскажет о подробной установке веб-сервера Apache (+SSL), почтового сервера Postfix (+ SMTP-AUTH и TLS), BIND DNS сервера, Proftpd FTP сервера, MySQL сервера, Courier POP3/IMAP, Quota, Firewall, и т.п.

Рассматривается установка на 32-х битную версию Ubuntu Server, для иных версий (x64, UltraSPARC) возможны небольшие отличия.

Используемое ПО:
# веб-сервер: Apache 2.2
# сервер баз данных: MySQL 5.0
# почтовый сервер: Postfix
# DNS сервер: BIND9
# FTP сервер: proftpd
# POP3/IMAP: используется формат Maildir с установкой Courier-POP3/Courier-IMAP.
# Webalizer для статистики

В итоге, вы получите надежную работающую систему, и сможете поверх нее установить бесплатную систему для удаленного управления веб-хостингом ISPConfig.

Для установки нам нужен CD с Ubuntu Server 7.10 x86 и хорошее соединение с интернетом. В статье будет использовано имя хоста server1.example.com с IP-адресом 192.168.0.100 и шлюзом 192.168.0.1. Эти установки могут отличаться от нужных вам, просто замените их своими данными.

Шаги установки, на которых система будет требовать от вас действий:

  1. 1. Ставим диск с Ubuntu Server 7.10 x86 и загружаемся с него.
    2. Перед началом установки выбираем опцию F2 и выбираем русский язык.
    3. Выбираем “Установить на жесткий диск”.
    4. Выбираем способ переключения языковой раскладки (у меня например Alt+Shift).
    5. Вводим имя компьютера.
    6. Разметка диска (Авто – использовать весь диск), либо на ваше усмотрение.
    7. Выбрать диск для разметки (если их несколько, выберите нужный).
    8. Подтверждаем изменения на диске.
    9. Выбираем часовой пояс.
    10. Указываем, что системные часы показывают UTC.
    11. Заводим учетную запись пользователя с административными привелегиями.
    12. Забиваем и подтверждаем пароль для этого пользователя.
    13. Выбираем какие пакеты мы поставим. ВНИМАНИЕ: нужно выбрать только OpenSSH.
    14. Завершаем установку, вынимаем диск, перезагружаемся.

После перезагрузки, заходим в систему под тем пользователем и паролем, который мы создали.

Дальнейшая работа будет происходить под суперпользователем root, для этого зададим ему пароль:

$ sudo passwd root

указываем пароль для него и начинаем работать уже из-под root

$ su

если вы вдруг не поставили OpenSSH сервер во время установки, это можно исправить установив его сейчас

# apt-get install ssh openssh-server

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

В оригинале статьи автор использует консольный редактор vim, я предлагаю начинающим использовать ee (easy editor), а бывалые пользователи пусть используют, что им по вкусу.
Ставим ee:

#apt-get install ee

Настраиваем сеть:
По умолчанию установщик сконфигурировал наш сетевой интерфейс на получение настроек по DHCP, но наш сервер должен иметь статический IP-адрес, для этого надо поправить настройки в файле /etc/network/interfaces

# ee /etc/network/interfaces

Пример файла конфигурации (тут вам надо использовать уже ваши данные, вместо примера данных, описывающих iface eth0 inet static, то есть укажите ваш адрес, маску сети, сеть и броадкаст):

# 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

Указали свои данные? Сохраните файл и перезапустите сеть:

# /etc/init.d/networking restart

Затем поправьте файл /etc/hosts

# ee /etc/hosts

Он должен выглядеть примерно так (только с вашими данными):
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 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Теперь выполните
# echo server1.example.com > /etc/hostname
# /etc/init.d/hostname.sh start

Затем:
# hostname
# hostname -f

Обе команды должны вывести server1.example.com (или то имя, которое указали вы)

Правим файл /etc/apt/sources.list и проводим апдейт для нашей системы

# ee /etc/apt/sources.list

Закомментируем или удалим ссылки на установочный CD из этого файла и удостоверимся, что репозитории universe и multiverse доступны, т.е. файл будет выглядеть примерно так:

#
# deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]/ gutsy main restricted
#deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]/ gutsy 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/ gutsy main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted
## 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
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://de.archive.ubuntu.com/ubuntu/ gutsy universe
deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy universe
deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-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/ gutsy multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy multiverse
deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-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/ gutsy-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-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 gutsy partner
# deb-src http://archive.canonical.com/ubuntu gutsy partner
deb http://security.ubuntu.com/ubuntu gutsy-security main restricted
deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted
deb http://security.ubuntu.com/ubuntu gutsy-security universe
deb-src http://security.ubuntu.com/ubuntu gutsy-security universe
deb http://security.ubuntu.com/ubuntu gutsy-security multiverse
deb-src http://security.ubuntu.com/ubuntu gutsy-security multiverse

Затем запускаем обновление базы данных ПО:

# apt-get update

и устанавливаем последние обновления (если они есть):

# apt-get upgrade

Теперь нам необходимо сменить шелл, поскольку иначе мы не сможем установить ISPConfig.

/bin/sh это символическая ссылку на /bin/dash, а нам нужно /bin/bash, а не /bin/dash

Поправляем это таким образом:

# ln -sf /bin/bash /bin/sh

Теперь нам нужно установить кое-какие пакеты, которые нам потребуются в дальнейшем.

# apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential

Внимание: эта команда идет одной строкой!

Настройка квот.

Если вы сделали разметку своего диск как-то по своему, то вам придется применять квотирование к тем разделам где это вам нужно.

Установим:

# apt-get install quota

Поправим /etc/fstab. Мой выглядит так(я добавил usrquota, grpquota к основному разделу с точкой монтирования /):
# ee /etc/fstab
# /etc/fstab: static file system information.
#
#

proc /proc proc defaults 0 0
# /dev/sda1
UUID=9fc157ff-975c-4f20-9fef-6a70085abdbd / ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1
# /dev/sda5
UUID=48fb7dd8-f099-4d63-ac1b-30e886ac7436 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec 0 0
Для активации квоты выполните:

# touch /quota.user /quota.group

# chmod 600 /quota.*

# mount -o remount /

# quotacheck -avugm

# quotaon -avug

Настройка DNS

Выполните:

# apt-get install bind9

Про соображениям безопасности BIND надо запускать через chroot:

# /etc/init.d/bind9 stop

Правим файл /etc/default/bind9 так, чтобы демон запускался как непривелигированный пользователь bind, с chroot в /var/lib/named. Поправьте строку: OPTIONS=”-u bind” на OPTIONS=”-u bind -t /var/lib/named”:
# ee /etc/default/bind9
OPTIONS=”-u bind -t /var/lib/named”
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

Создадим необходимые директории в /var/lib:

# mkdir -p /var/lib/named/etc

# mkdir /var/lib/named/dev

# mkdir -p /var/lib/named/var/cache/bind

# mkdir -p /var/lib/named/var/run/bind/run

Переместим директорию с конфигами из /etc в /var/lib/named/etc:

# mv /etc/bind /var/lib/named/etc

Создадим символическую ссылку на новую директорию с конфигами ( чтобы не было проблем с обновлением bind в дальнейшем):

# ln -s /var/lib/named/etc/bind /etc/bind

Создадим null и random устройства, исправим разрешения для директорий:

# mknod /var/lib/named/dev/null c 1 3

# mknod /var/lib/named/dev/random c 1 8

# chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random

# chown -R bind:bind /var/lib/named/var/*

# chown -R bind:bind /var/lib/named/etc/bind

Изменим /etc/default/syslogd чтобы мы могли получать важные сообщения в лога�
Исправьте строку: SYSLOGD=”” на эту SYSLOGD=”-a /var/lib/named/dev/log”:

# ee /etc/default/syslogd
#
# Top configuration file for syslogd
#
# Full documentation of possible arguments are found in the manpage
# syslogd(8).
#
#
# For remote UDP logging use SYSLOGD=”-r”
#
SYSLOGD=”-a /var/lib/named/dev/log”

Перезапускаем демон логов:

# /etc/init.d/sysklogd restart

Запускаем BIND, и проверяем /var/log/syslog на ошибки:

# /etc/init.d/bind9 start

MySQL

Устанавливаем пакет:

# apt-get install mysql-server mysql-client libmysqlclient15-dev

Вас спросят ввести пароль для root пользователя MySQL – этот пароль будет использоваться как для пользователя root@localhost , так и для root@server1.example.com, так что нам не придется указывать пароль для рута MySQL позже(как это было в предыдущих версиях):

New password for the MySQL “root” user: введите-свой-пароль

Нам нужно чтобы MySQL слушал на других интерфейсах, а не только на localhost, для этого правим /etc/mysql/my.cnf и закомментируем строку bind-address = 127.0.0.1:

# ee /etc/mysql/my.cnf
[…]
# 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:

# /etc/init.d/mysql restart

Проверьте, что MySQL доступен для сети:

# netstat -tap | grep mysql

Вывод должен быть примерно таким:

root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 5286/mysqld
root@server1:~#

Postfix с SMTP-AUTH и TLS

По шагам:

# apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules libdb3-util procmail

Вам зададут два вопроса, отвечать надо примерно так:

General type of mail configuration: <– Internet Site
System mail name: <– server1.example.com

затем запустите

# dpkg-reconfigure postfix

И опять ответьте на вопросы:

General type of mail configuration: <– Internet Site
System mail name: <– server1.example.com
Root and postmaster mail recipient: <– [blank]
Other destinations to accept mail for (blank for none): <– server1.example.com, localhost.example.com, localhost.localdomain, localhost
Force synchronous updates on mail queue? <– No
Local networks: <– 127.0.0.0/8
Use procmail for local delivery? <– Yes
Mailbox size limit: <– 0
Local address extension character: <– +
Internet protocols to use: <– all

Затем, сделайте следующее:

# postconf -e ’smtpd_sasl_local_domain =’
# postconf -e ’smtpd_sasl_auth_enable = yes’
# postconf -e ’smtpd_sasl_security_options = noanonymous’
# postconf -e ‘broken_sasl_auth_clients = yes’
# postconf -e ’smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination’
# postconf -e ‘inet_interfaces = all’
# echo ‘pwcheck_method: saslauthd’ >> /etc/postfix/sasl/smtpd.conf
# echo ‘mech_list: plain login’ >> /etc/postfix/sasl/smtpd.conf

После этого создадим сертификаты для TLS:

# mkdir /etc/postfix/ssl

# cd /etc/postfix/ssl/

# openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

# chmod 600 smtpd.key

# openssl req -new -key smtpd.key -out smtpd.csr

# openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

# openssl rsa -in smtpd.key -out smtpd.key.unencrypted

# mv -f smtpd.key.unencrypted smtpd.key

# openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

И сконфигурируем Postfix для TLS (удостоверьтесь, что вы используете правильное имя компьютера для myhostname):

# postconf -e ‘myhostname = server1.example.com’

# postconf -e ’smtpd_tls_auth_only = no’

# postconf -e ’smtp_use_tls = yes’

# postconf -e ’smtpd_use_tls = yes’

# postconf -e ’smtp_tls_note_starttls_offer = yes’

# postconf -e ’smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key’

# postconf -e ’smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt’

# postconf -e ’smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem’

# postconf -e ’smtpd_tls_loglevel = 1′

# postconf -e ’smtpd_tls_received_header = yes’

# postconf -e ’smtpd_tls_session_cache_timeout = 3600s’

# postconf -e ‘tls_random_source = dev:/dev/urandom’

теперь файл /etc/postfix/main.cf должен выглядеть примерно так:

# cat /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
# 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:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_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
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_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

Перезапускаем Postfix:

# /etc/init.d/postfix restart

Аутентификация будет производится saslauthd. Нужно кое-что изменить, чтобы это работало как надо.
Поскольку Postfix работает через chroot в /var/spool/postfix мы делаем так:

# mkdir -p /var/spool/postfix/var/run/saslauthd

Теперь мы правим /etc/default/saslauthd для того чтобы активировать saslauthd.
Установите START значение yes и измените строку OPTIONS=”-c” на OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd -r”:

# ee /etc/default/saslauthd
#
# Settings for saslauthd daemon
#
# Should saslauthd run automatically on startup? (default: no)
START=yes
# 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)
# See the saslauthd man page for information about these options.
#
# Example for postfix users: “-c -m /var/spool/postfix/var/run/saslauthd”
# Note: See /usr/share/doc/sasl2-bin/README.Debian
OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd -r”

Теперь запускаем saslauthd:

# /etc/init.d/saslauthd start

Чтобы удостоверится, что SMTP-AUTH и TLS работают правильно, проверим так:

# telnet localhost 25

После соединения с Postfix наберите:

ehlo localhost

Если вы увидети строки:

250-STARTTLS

и

250-AUTH PLAIN LOGIN

значит все в порядке

Вывод на моей системе выглядел так:

root@server1:/etc/postfix/ssl# telnet localhost 25
Trying 127.0.0.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#

наберите

quit

и вернитесь в шелл

Courier-IMAP/Courier-POP3

Устанавливаем Courier-IMAP/Courier-IMAP-SSL (для IMAP на порту 993) и Courier-POP3/Courier-POP3-SSL (для POP3 на порту 995):

# apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0

Вам зададут вопросы:

Create directories for web-based administration ? <– No
SSL certificate required <– Ok

Если вы не захотите использовать систему управления ISPConfig, сконфигурируйте Postfix на доставку почты в Maildir* пользователя:

# postconf -e ‘home_mailbox = Maildir/’

# postconf -e ‘mailbox_command =’

# /etc/init.d/postfix restart

*Обратите внимание: вам не надо этого делать, если вы будете использовать ISPConfig, поскольку он сам выполнит необходимое конфигурирование. При этом, вам лучше убедится в этом самостоятельно – удостоверьтесь что Maildir задействован в Management -> Server -> Settings -> EMail (в веб-интерфейсе ISPConfig).

Apache/PHP5

Ставим Apache:

# apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

Затем PHP5:

# apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Отвечаем на вопрос:

Continue installing libc-client without Maildir support? <– Yes

Далее правим /etc/apache2/mods-available/dir.conf:

# ee /etc/apache2/mods-available/dir.conf

Правим строку DirectoryIndex (в IfModule mod_dir.c):

#DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml

Теперь надо активировать некоторые модули Apache (SSL, rewrite, suexec и include):

# a2enmod ssl

# a2enmod rewrite

# a2enmod suexec

# a2enmod include

Перезагружаем конфигурацию Apache:

# /etc/init.d/apache2 force-reload

Отключаем глобальную работу PHP (если вы не планируете установку ISPConfig пропустите этот раздел!)

В ISPConfig вы сконфигурируете PHP под каждый веб-сайт, т.е. укаже кто может использовать скрипты PHP, а кто нет. Это можно сделать только при отключении глобальной работы PHP, потому что иначе все вебсайты смогут запускать скрипты PHP, несмотря на установки в ISPConfig.

Для отключения мы правим /etc/mime.types и закомментируем строки application/x-httpd-php:

# ee /etc/mime.types
[…]
#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
[…]

Правим /etc/apache2/mods-enabled/php5.conf и закомментируем следующие строки в IfModule mod_php5.c:

# ee /etc/apache2/mods-enabled/php5.conf
#AddType application/x-httpd-php .php .phtml .php3
#AddType application/x-httpd-php-source .phps

Перезагружаем Apache:

# /etc/init.d/apache2 restart

Proftpd

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

# apt-get install proftpd ucf

Отвечаем на вопрос:

Run proftpd from inetd or standalone? <– standalone

Открываем /etc/proftpd/proftpd.conf и отклбчаем UseIPv6 (off); иначе будем получать предупреждения:

- IPv6 getaddrinfo ’server1.example.com’ error: Name or service not known

или можно поправить /etc/hosts and add server1.example.com (добавив строку ::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 ip6-localhost ip6-loopback server1.example.com
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

или изменить /etc/proftpd/proftpd.conf:

[…]
UseIPv6 off
[…]

По соображениям безопасности нужно добавить следуюшие строки в /etc/proftpd/proftpd.conf (спасибо Reinaldo Carvalho; подробности здесь: http://proftpd.org/localsite/Userguide/linked/userguide.html):

# ee /etc/proftpd/proftpd.conf
[…]
DefaultRoot ~
IdentLookups off
ServerIdent on “FTP Server ready.”
[…]

ISPConfig ищет конфиг в /etc/proftpd.conf вместо /etc/proftpd/proftpd.conf, поэтому создадим символическую ссылку (можете пропустить этот шаг если вы не будете ставить ISPConfig):
p class="att"># ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf
Затем перезапустим Proftpd:

# /etc/init.d/proftpd restart

Webalizer

Просто ставим его:

# apt-get install webalizer

Синхронизируем системные часы

Через сервер NTP(network time protocol), достаточно установить:

# apt-get install ntp ntpdate

И все, часы будут синхронизированы.

Поставим некоторые модули Perl, которые потребуются SpamAssassin (который идет с ISPConfig):

# apt-get install libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl

ISPConfig

Поскольку конфигурирование нашего сервера завершено, теперь вы можете поставить на него систему управления ISPConfig, работающую через веб-интерфейс. Мануал по ее установке здесь: http://www.ispconfig.org/manual_installation.htm

Обратите внимание на SuExec

Если вы хотите запускать CGI скрипты под suExec, вам нужно указать /var/www в качестве домашней директории для вебсайтов создаваемых через ISPConfig в то время как Ubunt-овый suExec скомпилирован с /var/www в качестве Doc_Root.

Выполните:

# /usr/lib/apache2/suexec -V

Вывод будет примерно таким:

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:~#

Так что если вы будете использовать suExec с ISPconfig, не меняйте значения web-пути по умолчанию (т.е. оставьте /var/www) если вы работает в expert mode, когда будете устанавливать ISPConfig (в standard mode вы в любом случае этот путь поменять не сможете).

Источник: http://whylinux.ru

Похожие посты
  • Почти готов Windows Server 2008, плагин для Firefox, создание своего дистриба Ubuntu
  • WSUS станет опциональной ролью для Windows Server 2008 Server Manager
  • Ubuntu 7.10
  • Демонстрация Exchange Server 2007
  • Веб-трансляция: Новые приемы управления серверами в Windows Server 2008: Server Manager и PowerShell
  • Настройка Windows Server 2008 R2 в качестве RADIUS сервера для Cisco ASA, часть 2
  • Веб-трансляция: Особенности служб сертификации в Windows Server 2008
  • Пошаговые руководства по Windows Server 2008 на русском
  • 1 октября. Веб-трансляция “Windows Server Core: отличия от полной версии Windows Server 2008. Варианты применения.”
  • Веб-трансляция: Внешний доступ к службам RMS (Windows Server 2008)
  • 11 комментов оставлено (Add 1 more)

    1. посмотрел инсталятор, нашел где проверка функций

      // Check if the mysql functions are loaded in PHP
      if(!function_exists(‘mysql_connect’)) die(‘No PHP mysql functions available. Please ensure that the PHP mysql module is loaded.’);

      проверил самостоятельно

      if(!function_exists(‘mysql_connect’)) {
      echo ‘Bad’;
      }else{
      echo ‘Good’;
      }

      Возвращает Good

      1. PetrischevMV on July 23rd, 2010 at 7:40 am
    2. phpinfo() :
      _____________________________________________________
      mysqlMySQL Support enabled
      Active Persistent Links 0
      Active Links 0
      Client API version 5.0.51a
      MYSQL_MODULE_TYPE external
      MYSQL_SOCKET /var/run/mysqld/mysqld.sock
      MYSQL_INCLUDE -I/usr/include/mysql
      MYSQL_LIBS -L/usr/lib -lmysqlclient

      Directive Local Value Master Value
      mysql.allow_persistent On On
      mysql.connect_timeout 60 60
      mysql.default_host no value no value
      mysql.default_password no value no value
      mysql.default_port no value no value
      mysql.default_socket no value no value
      mysql.default_user no value no value
      mysql.max_links Unlimited Unlimited
      mysql.max_persistent Unlimited Unlimited
      mysql.trace_mode Off Off
      ————————————————————————————–
      Но почему он пишет что “No PHP mysql functions available. Please ensure that the PHP mysql module is loaded”

      2. PetrischevMV on July 23rd, 2010 at 6:25 am
    3. >> Initial configuration

      Operating System: Debian or compatible, unknown version.

      Following will be a few questions for primary configuration so be careful.
      Default values are in [brackets] and can be accepted with .
      Tap in “quit” (without the quotes) to stop the installer.

      Select language (en,de) [en]:

      Installation mode (standard,expert) [standard]:

      Full qualified hostname (FQDN) of the server, eg server1.domain.tld [localhost.localdom]:

      No PHP mysql functions available. Please ensure that the PHP mysql module is loaded

      Как можно исправить????

      3. PetrischevMV on July 22nd, 2010 at 9:22 am
    4. Установка на VMWare. Ubuntu версии 10.04 Server установлен с опцией – минимальная установка виртуальной машины. При выполнении действий по этой статье в момент выполнения команды:
      # /etc/init.d/hostname.sh start
      пишет:
      -bash: /etc/init.d/hostname.sh: Нет такого файла или каталога
      Не могу найти причину (не специалист по ubuntu). Помогите пожалуйста разобраться.

      4. petris on July 13th, 2010 at 12:57 pm
    5. Огромное спасибо всем кто принимает участие в написании таких статей!

      5. Zaur on June 17th, 2010 at 12:00 pm
    6. А смысл делать
      ———-%%————
      Если в природе существует sudo -s??

      6. It-mutant.ru on February 18th, 2010 at 7:38 pm
    7. Долгое время выдовало ошибку:
      Г
      Jan 19 00:48:32 ubuntu named[7437]: starting BIND 9.5.0-P2 -u bind -t /var/lib/named
      Jan 19 00:48:32 ubuntu named[7437]: found 1 CPU, using 1 worker thread
      Jan 19 00:48:32 ubuntu named[7437]: loading configuration from ‘/etc/bind/named.conf’
      Jan 19 00:48:32 ubuntu kernel: [ 3000.663793] type=1503 audit(1232311712.505:68): operation=”inode_permission” requested_mask=”r::” denied_mask=”r::” fsuid=115 name=”/var/lib/named/etc/bind/named.conf” pid=7438 profile=”/usr/sbin/named”
      Jan 19 00:48:32 ubuntu named[7437]: none:0: open: /etc/bind/named.conf: permission denied
      Jan 19 00:48:32 ubuntu named[7437]: loading configuration: permission denied
      Jan 19 00:48:32 ubuntu named[7437]: exiting (due to fatal error)
      Jan 19 00:48:39 ubuntu named[7467]: starting BIND 9.5.0-P2 -u bind -t /var/lib/named
      Jan 19 00:48:39 ubuntu named[7467]: found 1 CPU, using 1 worker thread
      Jan 19 00:48:39 ubuntu named[7467]: loading configuration from ‘/etc/bind/named.conf’
      Jan 19 00:48:39 ubuntu kernel: [ 3008.072701] type=1503 audit(1232311719.917:69): operation=”inode_permission” requested_mask=”r::” denied_mask=”r::” fsuid=115 name=”/var/lib/named/etc/bind/named.conf” pid=7468 profile=”/usr/sbin/named”
      Jan 19 00:48:39 ubuntu named[7467]: none:0: open: /etc/bind/named.conf: permission denied
      Jan 19 00:48:39 ubuntu named[7467]: loading configuration: permission denied
      Jan 19 00:48:39 ubuntu named[7467]: exiting (due to fatal error)

      Решение:
      /etc/init.d/apparmor stop
      update-rc.d -f apparmor remove

      7. Dima on January 19th, 2009 at 1:03 am
    8. Всё классно – кто нибудь сталкивался с 530 при попытке залогинится на фтп с юзером из ispconfig???

      8. Gluk on October 13th, 2008 at 3:08 am
    9. Ошибка на ubuntu server 8.04:

      Aug 8 15:14:01 i-serv named[4901]: starting BIND 9.4.2-P1 -u bind -t /var/lib/named
      Aug 8 15:14:01 i-serv named[4901]: found 1 CPU, using 1 worker thread
      Aug 8 15:14:01 i-serv named[4901]: loading configuration from ‘/etc/bind/named.conf’
      Aug 8 15:14:01 i-serv named[4901]: none:0: open: /etc/bind/named.conf: permission denied
      Aug 8 15:14:01 i-serv named[4901]: loading configuration: permission denied
      Aug 8 15:14:01 i-serv named[4901]: exiting (due to fatal error)

      РЕШАЕТСЯ так:
      http://www.howtoforge.org/forums/showthread.php?p=116893

      9. ioan on August 8th, 2008 at 5:31 pm
    10. инфа супер, только есть одно но: после попытки запуска bind он мне выдает fail. Ползу в логи и вижу такую штуку:
      Mar 10 02:28:16 all***t named[9539]: starting BIND 9.4.1-P1 -u bind -t /var/lib/named
      Mar 10 02:28:16 all***t named[9539]: found 1 CPU, using 1 worker thread
      Mar 10 02:28:16 all***t named[9539]: loading configuration from ‘/etc/bind/named.conf’
      Mar 10 02:28:16 all***t named[9539]: /etc/bind/named.conf.options:2: change directory to ‘/var/cache/bind’ failed: file not found
      Mar 10 02:28:16 all***t named[9539]: /etc/bind/named.conf.options:2: parsing failed
      Mar 10 02:28:16 all***t named[9539]: loading configuration: file not found
      Mar 10 02:28:16 all***t named[9539]: exiting (due to fatal error)
      Помогите плиз, в чем трабла, он походу не видит символическую ссылку, как сделать что б он ее видел?
      Спасибо

      10. Igor on March 10th, 2008 at 3:38 am
    11. Спасибо за информацию.

      11. ЮАР on February 4th, 2008 at 7:35 pm