howto:установка_сервера_8.10

Это старая версия документа.


LAMP сервер на базе 8.10 Ubuntu Server

Предполагается использовать установочный диск- Ubuntu-8.10-server.

Дистрибутив сервера вы можете загрузить по вот этой ссылке:

ftp://releases.ubuntu.com/releases/8.10/ubuntu-8.10-server-i386.iso

И следующее дополнительное программное обеспечение:

  • Web сервер: Apache 2.2 вместе с PHP 5.2.6 и Ruby
  • Сервер базы данных: MySQL 5.0
  • FTP сервер: proftpd
  • Webalizer- пакет для сбора статистики вашего web сайта
  • NTP

1. Первый шаг: подготовка основных настроек.

Итак, считаем, что используя дистрибутив сервера 8.10, мы провели все необходимые операции для его установки, и после перезагрузки, находимся в командной строке сервера, под своим логином суперпользователя.

Первым делом, активизируем пользователя ROOT.

sudo su
sudo passwd root

Теперь мы можем работать в консоли под пользователем root.

Устанавливаем openssh сервер.

apt-get install ssh openssh-server

Устанавливаем MC командер (Midnight Commander).

apt-get install mc

Устанавливаем поддержку русского языка в консоли:

apt-get install console-cyrillic

2. Замечания по редактированию конфигурационных файлов

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

Я предлагаю использовать для этого два варианта.

Первый вариант:

Установить пакет файлового менеджера Midnight Commander, сокращенно MC и использовать его внутренний редактор. (Как я писал выше установить MC, можно с помощью команды: apt-get install mc

Покажу, как можно использовать MC, на примере редактирования файла sources.list

Находясь в консоли под пользователем root, набираем команду mc, чтобы запустить файловый менеджер Midnight Commander (буду называть его MC-командер) :

mc

По исполнению команду мы увидим классический двухоконный менеджер, на нижней панели которого видны команды, с помощью которых можно работать с файлами.

Находясь в MC командере, находим файл sourkes.list, который расположен в папке /etc/apt/sourkes.list, наводим на него курсор

и нажав клавишу F4, редактируем его.

Для сохранения внесенных изменений, нажимаем клавишу F2, и затем Enter,чтобы эти изменения сохранить.

Примечание: В дальнейшем я буду подразумевать использование MC-командера для редактирования любых конфигурационных файлов!

Второй вариант:

С помощью редактора NANO, который установлен в системе по умолчанию и вызывается следующей командой:

nano -w /etc/apt/sources.list

Вот так он будет выглядеть в консоли:

Внизу видна подсказка в виде сочетания так называемых горячих клавиш:

+O - записать изменения

+X - выйти из редактора, и т.д.

Для завершения команд, надо нажать клавишу Enter.

Естественно, не кто не запрещает пользоваться и другими редакторами. (например: VIM и т.д)

3. Настройка сетевых интерфейсов

Допустим, что IP адрес, который предполагается использовать для сервера, это: 192.168.0.100, шлюз (gateway) 192.168.0.1 Доменное имя сервера: server.home.net

Проверяем и при необходимости редактируем конфигурационный файл - /etc/network/interfaces.

Находясь в MC командере, находим файл interfaces, который расположен в папке /etc/network/interfaces и редактируем его, как было описано выше.

Или это можно сделать и с помощью редактора nano, введя команду:

nano -w /etc/network/interfaces

После всех необходимых изменений, этот конфигурационный файл должен выглядеть примерно вот так:

# 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

Точно так же редактируем с помощью MC командера файл:

/etc/hosts

Этот конфигурационный файл должен выглядеть примерно вот так:

127.0.0.1       localhost.localdomain   localhost
192.168.0.100   server.home.net     server

# 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
ff02::3 ip6-allhosts

Вносим изменения в файл /etc/hostname с помощью команды echo, сохраняем и применяем эти изменения:

echo server.home.net > /etc/hostname
/etc/init.d/hostname.sh start

Проверяем правильность введенных названий, нашего сервера, путем ввода следующих команд:

hostname
hostname -f

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

server.home.net

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

/etc/apt/sources.list

У меня он выглядет так:

# deb cdrom:[Ubuntu 8.10 _Intrepid Ibex_ - Release i386 (20081028.2)]/ intrepid main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.

deb http://ru.archive.ubuntu.com/ubuntu/ intrepid main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ intrepid-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://ru.archive.ubuntu.com/ubuntu/ intrepid universe
deb http://ru.archive.ubuntu.com/ubuntu/ intrepid-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://ru.archive.ubuntu.com/ubuntu/ intrepid multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ intrepid-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-src http://ru.archive.ubuntu.com/ubuntu/ intrepid-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 intrepid partner
# deb-src http://archive.canonical.com/ubuntu intrepid partner

deb http://security.ubuntu.com/ubuntu intrepid-security main restricted
deb http://security.ubuntu.com/ubuntu intrepid-security universe
deb http://ru.archive.ubuntu.com/ubuntu/ intrepid-proposed restricted main multiverse universe
deb http://security.ubuntu.com/ubuntu intrepid-security multiverse
apt-get update

обновляем базу данных для apt

apt-get upgrade

Устанавливаем последние обновления, проследите, чтобы обновилось ядро. И перезагрузите систему.

reboot
ln -sf /bin/bash /bin/sh

Удаляем apparmor (некоторые службы нашего сервера, могут некорректно работать при установленном пакете apparmor )

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

4. Устанавливаем дополнительный софт.

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

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

Примечание: Эта и последующие команды выполняется одной строкой!

5. Сервер Apache2

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

6. Устанавливаем и настраиваем MySQL сервер

для установки MySQL сервера выполните в консоли суперпользователя следующую команду:

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

По ходу установки необходимо будет ввести пароль ROOtа для базы Mysql, не надо его путать с ROOTом который используется для доступа к самой системе):

Т. е по ходу установки вводим два раза пароль для доступа к MySQL (второй, для проверки) :

New password for the MySQL "root" user: <-- вашrootsqlпароль
Repeat password for the MySQL "root" user: <-- вашrootsqlпароль

Конфигурационный файл используемый сервером MySQL, это файл: etc/mysql/my.cnf

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

nano -w /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
[...]

Перестартуем MySQL:

/etc/init.d/mysql restart

Еще раз проверим, поднят MySQL на нашем сервере. Выполним команду:

netstat -tap | grep mysql

Мы должны увидеть следующий вывод:

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

7. установка PHP5

apt-get install libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-python php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include
/etc/init.d/apache2 restart

8. Устанавливаем DNS север.

apt-get install bind9

По соображениям безопасности сменим для DNS сервера корневой каталог,

Остановим DNS сервер.

/etc/init.d/bind9 stop

Редактируем файл /etc/default/bind9 так, чтобы при запуске DNS демона будет работать как непривилегированный пользователь связывать, chrooted c каталогом /var/lib/named.

Изменяем строку: OPTIONS=«-u bind» , чтобы она читалась так: OPTIONS=«-u bind -t /var/lib/named» для этого редактируем файл:

/etc/default/bind9
# run resolvconf?
RESOLVCONF=yes

# startup options for the server
OPTIONS="-u bind -t /var/lib/named"

Создаем соответствующие директории в папке /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

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

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

Сделать нулевыми и случайными устройства, а также установить разрешения для каталогов:

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»:

/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"

Перезапустим sysklogd демон:

/etc/init.d/sysklogd restart

Запустим сервер BIND, и проверим файл /var/log/syslog на наличие ошибок, если все сделано правильно, то ошибок не должно быть:

/etc/init.d/bind9 start

8. Почтовый сервер.

Если вы хотите, чтобы ваш Web узел отправлял свои сообщения на ваш почтовый ящик, то просто поставьте пакет postfix:

apt-get install postfix

Если в будующем планируете установить свой почтовый сервер то поставьте следующие пакеты:

apt-get install bsd-mailx dovecot-common dovecot-imapd dovecot-pop3d landscape-common mailx mutt postfix procmail

9. Дополнительные сервисные пакеты.

Пакет для сбора статистики о вашем WEB узле:

apt-get install webalizer

Пакет для синхронизации времени вашего сервера, через интернет:

apt-get install ntp ntpdate

10. Установка Proftpd сервера

Для установки Proftpd сервера , выполните следующую команду:

apt-get install proftpd ucf

Согласитесь с вопросом:

Run proftpd: <-- standalone (самостоятельно)

для безопасности работы сервера, так же подправим конфигурационный файл Proftpd сервера:

vi /etc/proftpd/proftpd.conf
[...]
DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."
[...]

Для принятия изменений, перестартуем сервер Proftpd:

/etc/init.d/proftpd restart

и сервер Apache2:

/etc/init.d/apache2 force-reload
Одной строкой можно установить все пепечисленные пакеты, выполнив следующую команду:
apt-get install ssh openssh-server vim-nox apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec libexpat1 ssl-cert libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-python php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl 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 bind9 mysql-server mysql-client libmysqlclient15-dev phpmyadmin mysql-admin libapache2-mod-auth-mysql mysql-query-browser php-image-graph imagemagick alien

Конечно здесь описаны основные настройки конфигурационных файлов, т. е самые необходимые!

Все остальное в Ваших руках! — victor53p 08.01.2009 15:52