Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | |||
howto:установка_сервера_8.10 [2009/01/09 10:47] удалено |
— (текущий) | ||
---|---|---|---|
Строка 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.6 и Ruby | ||
- | |||
- | * Сервер базы данных: MySQL 5.0 | ||
- | |||
- | * FTP сервер: proftpd | ||
- | |||
- | * Webalizer- пакет для сбора статистики вашего web сайта | ||
- | |||
- | * NTP, сетевой протокол службы времени, используется для поддержания точности компьютерных часов посредством синхронизации их с серверами Интернет или локальной сети. | ||
- | |||
- | ===== 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 командере, находим файл **sourkes.list**, который расположен в папке **/etc/apt/sourkes.list**, наводим на него курсор | ||
- | |||
- | и нажав клавишу <key>F4</key>, редактируем его. | ||
- | |||
- | {{:howto:sources.list.png|}} | ||
- | |||
- | Для сохранения внесенных изменений, нажимаем клавишу <key>F2</key>, и затем <key>Enter</key>,чтобы эти изменения сохранить. | ||
- | |||
- | {{:howto:save-sources.list.png|}} | ||
- | |||
- | Примечание: В дальнейшем я буду подразумевать использование MC-командера для редактирования любых конфигурационных файлов! | ||
- | |||
- | **Второй вариант:** | ||
- | |||
- | С помощью редактора NANO, который установлен в системе по умолчанию и вызывается следующей командой: | ||
- | |||
- | <code>nano -w /etc/apt/sources.list</code> | ||
- | |||
- | Вот так он будет выглядеть в консоли: | ||
- | |||
- | {{:howto:nano.png|}} | ||
- | |||
- | Внизу видна подсказка в виде сочетания так называемых горячих клавиш: | ||
- | |||
- | <key>∧-O</key> = <key>C-o</key> - записать изменения | ||
- | |||
- | <key>∧-X </key> = <key>C-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> | ||
- | |||
- | :!:**Примечание: Эта и последующие команды выполняется одной строкой!** | ||
- | |||
- | ===== 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> | ||
- | |||
- | |||
- | Конечно здесь описаны основные настройки конфигурационных файлов, т. е самые необходимые! | ||
- | |||
- | Все остальное в Ваших руках! | ||
- | |||
- | --- //[[victor@liski.vrn.ru|victor53p]] 08.01.2009 15:52// |