Это старая версия документа.
Содержание
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.4 и Ruby
- Сервер базы данных: MySQL 5.0
- FTP сервер: proftpd
- Webalizer- пакет для сбора статистики вашего web сайта
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