Заказать обратный звонок
Имя*
Телефон*
Время звонка*
Регион*
Введите код с картинки
CAPTCHA

Каталог товаров

Будьте в курсе!

Новости, обзоры и акции

Как собрать и настроить сервер самостоятельно на базе ОС Linux

В данной статье будет рассмотрен вопрос о самостоятельном сборе и настройке сервера. Такое часто случается, когда работаешь в небольшой фирме системным администратором и в какой-то момент твоему директору приходит мысль о создании своей базы учета (неважно чего). Написать такую базу для опытного специалиста не составит особого труда, но другое дело – сделать так, чтобы она была защищенной, данные всегда доступны для пользователей и работа была без перебоев. Вот для таких случаев и возникает необходимость в выделенном сервере. И в этом есть огромные плюсы: доступные данные, высокая скорость, полный контроль, быстрое реагирование на сбой оборудования и т.п.

Развернуть такой сервер непросто, если в фирме маломощные компьютеры и работают они под ОС Windows. Наличие данных факторов снижает скорость реагирования. Ко всему прочему ОС Windows нестабильна, уж слишком много вирусов и Троянов написано для данной операционной системы. По сравнению с  Linux – превышение в 5 раз.

С бесплатной ОС Linux таких проблем возникать не будет, так как эта операционная система совсем не требовательна к ресурсам и много месяцев подряд работает без перезагрузки. Единственным врагом для таких серверов являются лишь уборщицы.

Кроме того, собрав сервер для компании, Вы сможете приумножить свой вклад в ее развитие – собирать сервера под различные услуги типа web-хостинг, файловый сервер, почта, прокси, рассылка писем, базы данных, кластеры и т.д.

Сборка нашего сервера будет состоять из нескольких этапов:

  1. Подбор железа
  2. Установка пакетов
  3. Настройка сервера

Мы установим связку Apache + PHP + MySQL + Phpmyadmin + ProFTPd.

Apache + PHP + MySQL - для размещения сайта на сервере
Phpmyadmin - для управления базами данных
MySQL - для размещения баз данных
ProFTPd - для размещения файлового хранилища

Подробнее на этих пакетах останавливаться не будем, потому что вся информация есть в свободном доступе.

Что же дают эти пакеты? Наш сервер будет работать на двух интерфейсах (две сетевые карты), внешний интерфейс (в сети Интернет) и внутренний режим (локальная сеть). Они отличаются только параметрами доступа (FireWall), на внешнем интерфейсе у нас будет web-сервер (HTTP 80) и ftp-сервер (FTP 21). А на внутреннем интерфейсе разрешены все службы (mysql, ftp, web, ssh...).

Железо

Параметры железа будут зависеть от частоты запросов к нему, чем чаще, тем выше нужна производительность.

  • CPU (процессор) - Intel Core i7
  • RAM (оперативная память) - DDR I 512 Мб
    LAN (сеть) - Ethernet 10/100 Мб
    Блок питания - 450 Вт
  • Винчестер – на ваше усмотрение
  • Видеокарта (почти ненужный элемент, можно обойтись 8-16 Мб)
  • Мощные кулеры – от 3шт.

    Так как сервер должен работать постоянно (месяц, три, пять, год), то для охлаждения системы понадобится мощная вентиляция. Даже самые мощные сервера под Linux/FreeBSD, хорошо отлаженные и настроенные, очень чувствительны к жаре, без охлаждения будут работать весьма нестабильно. Поэтому рекомендуется поставить 3 кулера 120 мм.

Итак, железо готово. Перейдем непосредственно к установке сервера. Здесь есть две возможности. Первая, так называемая "из коробки", то есть все сервера уже собраны и готовы к работе, осталось их сконфигурировать. Вторая, собрать самому из исходных кодов (сорцов) и также сконфигурировать.

Установка пакетов

 ОС: Linux

Выбор пал на SUSE Linux Enterprice Server 10,так как он проще  в конфигурировании и все нужные пакеты в нем имеются, потребуется скачать только несколько дополнительных.

Установка и настройка

Установка проходит на русском языке в графическом режиме.

  • Разбиение диска 

    Linux сам предлагает разбиение, если диск пуст, он создаст 2 раздела, root (/) и файл подкачки (swap). Если на диске имеются разделы Windows (NTFS), то он уменьшит их и присоединит к своей файловой системе.

  • Приложения
Не буду объяснять, что за что отвечает, просто скажу, что должно быть установлено вами, остальное стоит по умолчанию: perl, iptables, bind, nmap, mc, make, apache (все пакты), php (все пакты), mysql (все пакты). Занимает это примерно 2 Гб. Но эта цифра потом увеличится.

Уровень выполнения по умолчанию

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

После этого запускается процесс установки – на 30 мин или чуть дольше. Все зависит от мощности процессора и объема оперативной памяти.

  • Имя хоста - обычно это localhost и домен.

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

Сеть - ставим каждому свой IP адрес. Маршрутизацию не трогаем. Помним, что маршрутизация как воздух, никто не замечает, пока не испортишь. Порт SSH открыт.

Сервер готов к работе, отключим монитор, клавиатуру, мышь, оставим три провода, два от сети и один - питание, не забываем о бесперебойном питании.

Итак, все основные настройки операционной системы готовы, займемся настройками приложений. Для этого есть специальный клиент SSH под Windows - putty.

Настройка клиента, host name - адрес или IP вашего сервера (внутренний интерфейс).

Залогинились и начали работу.

Первым делом ставим FTP-сервер. ProFTPd, качаем с официального сайта последнюю версию. Создаем в корне папку src, куда будем складывать пакеты. Можно через файловый менеджер (команда mc), но мы будем все делать без него. Единственная проблема при его использовании - если закачка файлов производилась с Windows-машин, то из названий русских файлов вырезаются буквы "ыьэюя". Дело в том, что ProFTPd пропускает весь свой трафик через Telnet, который воспринимает символы с кодами 251-255 как управляющие последовательности и вырезает их. Но не стоит отчаиваться - все лечится небольшим вмешательством в файл src/netio.c. Просто удалим из него строки:

switch (mode) {
 case IAC:
 [[
часть кода пропущена ]]
 mode = cp;
 continue;
 }
 break;
 }

После этого можно смело компилировать:

# mkdir src
# cd src
# wget http://192.168.1.24/proftpd-1.3.1rc3.tar.gz
# tar -xf proftpd-1.3.1rc3.tar.gz
# cd proftpd-1.3.1rc3

Ставим патч

# /src/proftpd-1.3.1rc3 # ./configure && make && make install

Конфигурируем и устанавливаем. Файл запуска установился в /usr/local/sbin/proftpd. Запусти его и проверь в ftp-клиенте адрес ftp://localhost/. Если каталог открылся, значит, установка прошла успешно. К сожалению, для ProFTPD разработчики не позаботились выложить готовый скрипт для init.d. Для запуска сервера создадим скрипт /etc/init.d/proftpd и сделаем его исполняемым.

Делаем исполняемым: 

chmod a+x /etc/init.d/proftpd

Запуск /etc/init.d/proftpd start
Остановка /etc/init.d/proftpd stop
Перезагрузка /etc/init.d/proftpd restart

Перед соединением с сервером нужно разрешить доступ к нему: # yast    Пользователи и безопасность > Брандмауэр (FireWall)

Интерфейсы, выбираем Внутренний > Изменить > Зона интерфейса "Внутренняя зона".

Теперь идем в /usr/local/etc/proftpd.conf и полностью удаляем секцию . Таким образом мы перекроем кислород всем анонимным пользователям.

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

# service proftpd restart

MySQL
Конфигурация заключается только в правильном распознавании русских символов и установке кодировки по умолчанию cp1251, редактируем файл /etc/my.cnf 

# mc -e /etc/my.cnf

В раздел [mysqld] необходимо добавить следующее:

default-character-set=cp1251
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake

В раздел [mysqldump] достаточно добавить только default-character-set=cp1251

 Перезапускаем сервер mysql: #service mysql re

PHP
С PHP проделаем то же самое:# mc -e /etc/php5/apache2/php.ini

 Раскомментируем строку: default_charset = "cp1251"

 Теперь нам нужно, чтобы все службы запускались сами на runlevel 3: #yast

Система > Системные службы (RunLevel)

Переходим в режим эксперта, нам нужно чтобы автоматически запускались apache, mysql, proftpd. Выбираем нужные приложения и ставим галку на 3 пункте (runlevel). Теперь при запуске/перезапуске сервера службы будут запускаться сами.

Далее тестируем apache. Вбейте в браузер ваш IP (в моем случае 192.168.1.1). Если все верно, то вы увидите надпись "It works!", если этого не произошло, проверьте, запушен ли apache. Если нет, то запускаем: # service apache2 start
Проверим PHP. Для этого создадим страницу index.php с содержанием: 

<?
phpinfo();
?>

Ставим phpmyadmin:

# tar -xf phpMyAdmin-2.10.0.2-all-languages.tar.gz
# cd phpMyAdmin-2.10.0.2-all-languages
# mc

Копируем все файл из /src/phpMyAdmin-2.10.0.2-all-languages в /srv/www/htdocs/phpmyadmin 

Копируем файл config.sample.inc.php в config.inc.php (тот, что лежит в /srv/www/htdocs/phpmyadmin), раскомментируем в нем строки controluser и controlpass, впишем туда пользователя root и его пароль, добавим в blowfish_secret любую строку из произвольных символов (она используется для идентификации cookie).

В auth_type вписываем HTTP (тип, используемый для авторизации пользователей). И не забываем запускать mysql:

# service mysql start

Теперь идем на http://ваш_ip/phpmyadmin/ и, если все правильно собрано, оказываемся в админке базы данных!

Перед соединением с сервером нужно разрешить доступ к нему: # yast

Пользователи и безопасность > Брандмауэр (FireWall)
Allowed Service > Внешняя зона, добавляем HTTP и FTP 

Ну вот и все, наш сервер готов к работе!

← Назад к списку обзоров и советов