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

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
howto:установка_сервера_8.10 [2009/01/08 17:43]
— (текущий)
Строка 1: Строка 1:
-====== 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. 
- 
-<​code>​sudo su</​code>​ 
- 
-<​code>​sudo passwd root</​code>​ 
- 
-Теперь мы можем работать в консоли под пользователем root. 
- 
-Устанавливаем openssh сервер. 
- 
-<​code>​apt-get install ssh openssh-server</​code>​ 
- 
-Устанавливаем MC командер (Midnight Commander). 
- 
-<​code>​apt-get install mc</​code>​ 
- 
-Устанавливаем поддержку русского языка в консоли:​ 
- 
-<​code>​apt-get install console-cyrillic</​code>​ 
- 
-===== 2. Замечания по редактированию конфигурационных файлов ===== 
- 
-В дальнейшем нам придется неоднократно в ручную редактировать различные конфигурационные файлы. 
- 
-Я предлагаю использовать для этого два варианта. 
- 
-**Первый вариант**:​ Установить пакет файлового менеджера Midnight Commander, сокращенно MC и использовать его внутренний редактор. 
-(Как я писал выше установить MC, можно с помощью команды:​ **apt-get install mc** 
- 
-Покажу,​ как можно использовать MC, на примере редактирования файла sources.list 
- 
-Находясь в консоле под пользователем root, набираем команду mc, чтобы запустить файловый менеджер Midnight Commander (буду называть его MC-командер) : 
- 
-<​code>​mc</​code>​ 
- 
-По исполнению команду мы увидим классический двуоконный менеджер,​ на нижней панели которого видны команды,​ с помощью которых можно работать с файлами. 
- 
-{{:​howto:​mc.png|}} 
- 
-Находясь в MC командере,​ находим файл **interfaces**,​ который расположен в папке **/​etc/​network/​interfaces** 
- 
-и нажав клавишу <​key>​F4</​key>,​ редактируем его. 
- 
-{{:​howto:​sources.list.png|}} 
- 
-Для сохранения внесенных изменений,​ нажимаем клавишу <​key>​F2</​key>,​ и затем <​key>​Enter</​key>,​чтобы эти изменения сохранить. 
- 
-{{:​howto:​save-sources.list.png|}} 
- 
-<​note>​ В дальнейшем я буду подразумевать использование MC-командера для редактирования любых конфигурационных файлов! </​note>​ 
- 
-**Второй вармант:​** 
- 
-С помощью редактора NANO, который установлен в системе по умолчанию и вызывается следующей командой:​ 
- 
-<​code>​nano -w /​etc/​apt/​sources.list</​code>​ 
- 
-Вот так он будет выглядеть в консоли:​ 
- 
-{{:​howto:​nano.png|}} 
- 
-Внизу видна подсказка в виде сочетания так называемых горячих клавиш:​ 
- 
-<​key>​∧-O</​key> ​  - записать изменения 
- 
-<​key>​∧-X </​key> ​ - выйти из редактора,​ и т.д. 
- 
-Для завершения команд,​ надо нажать клавишу <​key>​Enter</​key>​. 
- 
-Естественно,​ не кто не запрещает пользоваться и другими редакторами. (VIM) 
- 
- 
-===== 3. Настройка сетевых интерфейсов ===== 
- 
-Допустим,​ что IP адрес, который предполагается использовать для сервера,​ это: **192.168.0.100**,​ шлюз (gateway) 192.168.0.1 
-Доменное имя сервера:​ **server.home.net** 
- 
-Проверяем и при необходимости редактируем конфигурационный файл - /​etc/​network/​interfaces. 
- 
-Находясь в MC командере,​ находим файл **interfaces**,​ который расположен в папке **/​etc/​network/​interfaces** и редактируем его, как было описано выше. 
- 
-Или это можно сделать и с помощью редактора ​ **nano**, введя команду:​ 
- 
-<​code>​nano -w /​etc/​network/​interfaces</​code>​ 
- 
-После всех необходимых изменений,​ этот конфигурационный файл должен выглядеть примерно вот так: 
- 
-<​code>#​ 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</​code>​ 
- 
-Перестартуем сетевую службу,​ чтобы наши изменения вступили в силу: 
- 
-<​code>/​etc/​init.d/​networking restart</​code>​ 
- 
-Точно так же редактируем с помощью MC командера файл: 
-  
-<​code>/​etc/​hosts</​code>​ 
- 
-Этот конфигурационный файл должен выглядеть примерно вот так: 
- 
-<​code>​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</​code>​ 
- 
-Вносим изменения в файл **/​etc/​hostname** с помощью команды **echo**, сохраняем ​ и применяем эти изменения:​ 
- 
-<​code>​echo server.home.net > /​etc/​hostname 
-/​etc/​init.d/​hostname.sh start</​code>​ 
- 
-Проверяем правильность введенных названий,​ нашего сервера,​ путем ввода следующих команд:​ 
- 
-<​code>​hostname 
-hostname -f</​code>​ 
- 
-Если все правильно,​ то мы должны увидеть следующие строки:​ 
- 
- <​code>​server.home.net</​code>​ 
- 
-Теперь приведем в порядок конфигурационный файл отвечающий за репозитарии,​ с которыми будет работать наш сервер,​ для этого редактируем файл ​ **sources.list**. 
- 
-<​code>/​etc/​apt/​sources.list</​code>​ 
- 
-У меня он выглядет так: 
- 
-<​file>#​ 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</​file>​ 
- 
-<​code>​apt-get update</​code>​ 
- 
-обновляем базу данных для apt 
- 
-<​code>​apt-get upgrade</​code>​ 
- 
-Устанавливаем последние обновления,​ проследите,​ чтобы обновилось ядро. И перезагрузите систему. 
- 
-<​code>​reboot</​code>​ 
- 
-<​code>​ln -sf /bin/bash /​bin/​sh</​code>​ 
- 
-Удаляем apparmor (некоторые службы нашего сервера,​ могут некорректно работать при установленном пакете **''​apparmor''​** ) 
- 
-<​code>/​etc/​init.d/​apparmor stop 
-update-rc.d -f apparmor remove 
-apt-get remove apparmor apparmor-utils</​code>​ 
- 
-===== 4. Устанавливаем дополнительный софт. ===== 
- 
-Для установки дополнительных пакетов,​ которые могут нам потребоваться в дальнейшем,​ выполните в командной строке:​ 
- 
-<​code>​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</​code>​ 
- 
-<​note>​Эта и последующие команды выполняется одной строкой!</​note>​ 
- 
-===== 5. Сервер Apache2 ===== 
- 
-<​code>​apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec libexpat1 ssl-cert</​code>​ 
- 
-===== 6. Устанавливаем и настраиваем MySQL сервер ===== 
- 
-для установки MySQL сервера выполните в консоли суперпользователя следующую команду:​ 
- 
-<​code>​apt-get install mysql-server mysql-client libmysqlclient15-dev</​code>​ 
- 
-По ходу установки необходимо будет ввести пароль ROOtа **для базы Mysql**, не надо его путать с ROOTом который используется для доступа к самой системе):​ 
- 
-Т. е по ходу установки вводим два раза пароль для доступа к MySQL (второй,​ для проверки) : 
- 
-<​code>​New password for the MySQL "​root"​ user: <-- вашrootsqlпароль 
-Repeat password for the MySQL "​root"​ user: <-- вашrootsqlпароль</​code>​ 
- 
-Конфигурационный файл используемый сервером MySQL, это файл: etc/​mysql/​my.cnf 
- 
-Например,​ если мы хотим, чтобы MySQL мог слушать на всех интерфейсах,​ а не только с локального,​ то мы отредактируем файл /​etc/​mysql/​my.cnf,​ и закоментируем строку bind-address = 127.0.0.1: 
- 
-<​code>​nano -w /​etc/​mysql/​my.cnf</​code>​ 
- 
-Это будет выглядеть вот так: 
- 
-<​file>​[...] 
-# Instead of skip-networking the default is now to listen only on 
-# localhost which is more compatible and is not less secure. 
-#​bind-address 
-[...]</​file>​ 
- 
-Перестартуем MySQL: 
- 
-<​code>/​etc/​init.d/​mysql restart</​code>​ 
- 
-Еще раз проверим,​ поднят MySQL на нашем сервере. Выполним команду:​ 
- 
-<​code>​netstat -tap | grep mysql</​code>​ 
- 
-Мы должны увидеть следующий вывод: 
- 
-<​file>​root@server1:​~#​ netstat -tap | grep mysql 
-tcp        0      0 *:​mysql ​                ​*:​* ​                    ​LISTEN ​     6724/mysqld 
-root@server1:​~#</​file>​ 
- 
-===== 7. установка PHP5 ===== 
- 
-<​code>​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</​code>​ 
- 
-<​code>​a2enmod ssl 
-a2enmod rewrite 
-a2enmod suexec 
-a2enmod include</​code>​ 
- 
-<​code>/​etc/​init.d/​apache2 restart</​code>​ 
- 
-===== 8. Устанавливаем DNS север. ===== 
- 
-<​code>​apt-get install bind9</​code>​ 
- 
-По соображениям безопасности сменим для DNS сервера корневой каталог,​ 
- 
-Остановим DNS сервер. ​ 
- 
-<​code>/​etc/​init.d/​bind9 stop</​code>​ 
- 
-Редактируем файл /​etc/​default/​bind9 так, чтобы при запуске DNS демона будет работать как непривилегированный пользователь связывать,​ chrooted c каталогом /​var/​lib/​named. 
- 
-Изменяем строку:​ **OPTIONS="​-u bind"​** , чтобы она читалась так: **OPTIONS="​-u bind -t /​var/​lib/​named"​ 
-** 
-для этого редактируем файл: 
- 
-<​code>/​etc/​default/​bind9</​code>​ 
- 
-<​code>#​ run resolvconf? 
-RESOLVCONF=yes 
- 
-# startup options for the server 
-OPTIONS="​-u bind -t /​var/​lib/​named"</​code>​ 
- 
-Создаем соответствующие директории в папке /var/lib: 
- 
-<​code>​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</​code>​ 
- 
-Сменим конфигурационную директорию /etc на директорию /​var/​lib/​named/​etc:​ 
- 
-<​code>​mv /etc/bind /​var/​lib/​named/​etc</​code>​ 
- 
-Создаем ссылку (симлинк) со старой директории на новую, чтобы в дальнейшем при обновлении пакета DNC, не возникало проблем:​ 
- 
-<​code>​ln -s /​var/​lib/​named/​etc/​bind /​etc/​bind</​code>​ 
- 
-Сделать нулевыми и случайными устройства,​ а также установить разрешения для каталогов:​ 
- 
-<​code>​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</​code>​ 
- 
-Нам необходимо изменить файл:/​etc/​default/​syslogd,​ 
- 
-чтобы важные системные сообщения могли регистрируется в системных журналах. 
- 
-Изменим строку:​ SYSLOGD=""​ на: SYSLOGD="​-a /​var/​lib/​named/​dev/​log":​ 
- 
-<​code>/​etc/​default/​syslogd</​code>​ 
- 
-<​file>#​ 
-# 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"</​file>​ 
- 
-Перезапустим sysklogd демон: 
- 
-<​code>/​etc/​init.d/​sysklogd restart</​code>​ 
- 
-Запустим сервер BIND, и проверим файл /​var/​log/​syslog на наличие ошибок,​ если все сделано правильно,​ то ошибок не должно быть: 
- 
-<​code>/​etc/​init.d/​bind9 start</​code>​ 
- 
-===== 8. Почтовый сервер. ===== 
- 
-Если вы хотите,​ чтобы ваш Web узел отправлял свои сообщения на ваш почтовый ящик, то просто поставьте пакет postfix: 
- 
-<​code>​apt-get install postfix</​code>​ 
- 
-Если в будующем планируете установить свой почтовый сервер то поставьте следующие пакеты:​ 
- 
-<​code>​apt-get install bsd-mailx dovecot-common dovecot-imapd dovecot-pop3d landscape-common mailx mutt postfix procmail</​code>​ 
- 
-===== 9. Дополнительные сервисные пакеты. ===== 
- 
-Пакет для сбора статистики о вашем WEB узле: 
- 
-<​code>​apt-get install webalizer</​code>​ 
- 
-Пакет для синхронизации времени вашего сервера,​ через интернет:​ 
- 
-<​code>​apt-get install ntp ntpdate</​code>​ 
- 
-===== 10. установка Proftpd сервера ===== 
- 
-Для установки Proftpd сервера , выполните следующую команду:​ 
- 
-<​code>​apt-get install proftpd ucf</​code>​ 
- 
-Согласитесь с вопросом:​ 
- 
-<​code>​Run proftpd: <-- standalone (самостоятельно)</​code>​ 
- 
-для безопасности работы сервера,​ так же подправим конфигурационный файл Proftpd сервера:​ 
- 
-<​code>​vi /​etc/​proftpd/​proftpd.conf</​code>​ 
- 
-<​file>​[...] 
-DefaultRoot ~ 
-IdentLookups off 
-ServerIdent on "FTP Server ready."​ 
-[...]</​file>​ 
- 
-Для принятия изменений,​ перестартуем сервер Proftpd: 
- 
-<​code>/​etc/​init.d/​proftpd restart</​code>​ 
- 
-и сервер Apache2: 
- 
-<​code>/​etc/​init.d/​apache2 force-reload</​code>​ 
- 
-<​note>​Одной строкой можно установить все пепечисленные пакеты,​ выполнив следующую команду:</​note>​ 
- 
-<​code>​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</​code>​ 
- 
- 
-Конечно здесь описаны основные настройки конфигурационных файлов,​ т. е самые необходимые! 
- 
-Все остальное в Ваших руках!