Работаем 3484 день              Каталог программиста. Сайты Статьи Исходники Программы Скрипты Новости
Карта сайтаКарта сайта Форум DELPHI Basic Аsm Базы WebMaster Windows Железо Программы Культура Игры
Все разделы каталогаКаталог Новости C++# PHP FoxPro Безопасн. JavaScript Linux КПК Моб Документы Юмор Хостинг
RSS канал "Каталог программиста" канал Компьютерная жизньКЖизнь WinApi Java Сети Форматы Программеру Иные_ОС Каталоги Алгоритмы Форумы Разные
 
Архив сайта за 2001-2007 годыАрхив—> Архив сайта за 2001-2007 годы DELPHIDelphi Архив сайта за 2001-2007 годы C++#C++# Архив сайта за 2001-2007 годы PHPPHP Архив сайта за 2001-2007 годы СетиСети Архив сайта за 2001-2007 годы БазыБазы Архив сайта за 2001-2007 годы WebMasterWebMaster Архив сайта за 2001-2007 годы WindowsWindows Архив сайта за 2001-2007 годы ЖелезоЖелезо Архив сайта за 2001-2007 годы АлгоритмыАлгоритмы Архив сайта за 2001-2007 годы ЮморЮмор Архив сайта за 2001-2007 годы РазныеРазные
Поиск по сайтуПоиск по сайту: 
Сайт Google
В каталоге: 
В архиве: 
Новые ссылки
  • PHP скрипт скачивания файлов по временным ссылкам (7) Временные ссылки на php. Что это такое и с чем их едят? Все очень просто. Часто при построении каког
  • Анекдоты от 29.07.2010 (28) Кофе на работе - это напиток, который пьют, когда хотят есть.
  • Програмная эмуляция нажатия клавиш (29) Процедура для Delphi на ASM
  • Диагностика сети и мониторинг в Windows 7 (36) В помощь пользователям, столкнувшимся с проблемами работы сети, Microsoft еще в Windows Vista включи
  • Перетаскивание объектов (33) Свойства DragMode, DragCursor, методы BeginDrag, OnDragOver, OnDragDrop, OnEndDrag, OnStartDrag, пар
  • Как программно нажать на кнопку мыши? (57) Пример на Delphi
  • Cкрипт статистики поисковых запросов (50) В данной статье представлен PHP скрипт на базе которого легко можно будет создать модуль статистки п
  • Анекдоты от 22.07.2010 (174) Мальчик, которого на пасеке укусила коза, перестал верить в логику.
  • Настройка Windows 7: классическое меню Программы в стиле XP (135) Некоторые пользователи Windows 7 не довольны новым меню "Пуск" и хотели бы вернуться к его
  • В чём секрет защищённости Internet Explorer 8 (101) Браузер Internet Explorer в течение долгого времени имел дурную славу одного из самых уязвимых. С вы
  • 10 статей архива:
  • Послать письмо с вложением используя OutLookExpress
    (2611)
  • Русские победили: ключ настард!
    (2719)
  • Oracle К каждой строке охранника приставишь!
    (2923)
  • Как извлечь региональные настройки а именно разделитель дробной части
    (4310)
  • SQL: универсальный язык для работы с базами данных
    (3770)
  • Лёгкая пластическая XP-рургия
    (1941)
  • Пример: Программа «Калькулятор»
    (7907)
  • Написание экстра-маленьких Win32 приложений на С++
    (4180)
  • DelphiX Второй урок
    (3057)
  • Компьютер для женщин
    (3351)
  • Рейтинг@Mail.ru Истинное количество посещений сайта сегодня

    Каталог программиста » Linux/Unix

    Сервер своими силами за пол дня

    (18.09.2008) (2680) (92)
    Поднимаем сервер для локальных сетей, малых офисов и фирм на одном дыхании... Сегодня тема такая: разворачиваем сервер на базе ос Linux (Open Suse) за пол дня, "из коробки". Такое бывает, когда работаешь в маленькой фирме, где ты и администратор, и программист, и дизайнер, в общем, все в одном

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

    1. Данные всегда доступны с высокой скоростью.
    2. Кроме сотрудников фирмы никто не имеет доступ к данным, так как сервер не имеет доступа в Интернет.
    3. Полный контроль над сервером и данными.
    4. Быстрое реагирование на сбой сервера/оборудования.

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

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

    Сегодня мы соберем такой сервер, подберем железо, установим все нужные пакеты и настроим сервер и все нужные приложения. Мы установим связку Apache + PHP + MySQL + Phpmyadmin + ProFTPd.

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

    Apache - HTTP-сервер, свободный web-сервер. С апреля 1996 г. это самый популярный HTTP-сервер в Интернете; он работает на половине всех web-серверов. Основными достоинствами Apache считаются надежность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6 (http://www.httpd.apache.org/).

    PHP - язык программирования, созданный для генерации HTML-страниц на web - сервере и работы с базами данных. В области программирования для Сети, PHP - один из популярнейших скриптовых, благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP (http://www.php.net/).

    MySQL - решение для малых и средних приложений. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удаленные клиенты (http://www.mysql.com/).

     

    Phpmyadmin - web-приложение с открытым кодом, написанное на языке PHP и представляющее собой web-интерфейс для администрирования баз данных MySQL. phpMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у web-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс (http://www.phpmyadmin.net/).

    ProFTPd - FTP сервер с открытым исходным кодом, предназначенный обмена файлами в компьютерных сетях. FTP позволяет подключаться к серверу, просматривать содержимое каталогов и загружать файлы с сервера или на сервер; кроме того, возможен режим передачи файлов между серверами (http://www.proftpd.org/).

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

    Железо

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

    CPU (процессор) - Celeron, 1700 МГц 128 Кб кэша
    RAM (оперативная память) - DDR I 512 Мб
    LAN (сеть) - Ethernet 10/100 Мб
    Блок питания - 450 Вт

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

    Примерная стоимость:

    CPU - 250 руб.
    RAM - 400-500 руб.
    Сеть (невстроенная) - 150 руб.
    Материнская плата (встроено видео) - 400 руб. 
    Видеокарта (почти ненужный элемент, требуемый объем 8-16 Мб) - 200 руб. 
    Блок питания - 400 руб.
    Винчестеры - из расчета 1600-1800 руб. за 250 Гб.
    Кулеры - 360 руб.
    Итого: примерно 4000-5000 руб.

    Если новое такое оборудование (процессор, материнскую плату, видеокарту) в магазинах не найти, собираемся и едем на местный радиорынок. Машину можно собрать и мощнее, предела совершенству нет. Можно и на Xeon собрать, но зачем столько мощности для локальной сети или офиса?

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

    Выбор операционной системы

    Тут стоит сложный выбор: Windows или Linux.

    Бесспорно, покажется, что проще и быстрей установить и настроить сервер под Windows. Да, это так... Но если подумать о слабой его защищенности и нестабильности, об ошибках BSOD (синий экран смерти), вирусах, дырках... Оставим эту тему, вернемся к ней позже.

    Намного трудней собрать сервер на Linux, но он будет намного стабильней, быстродее, с высоким UpTime (время работы от пуска системы до завершения), на хорошо настроенных системах оно достигает нескольких лет.

    Мой выбор пал на SUSE Linux Enterprice Server 10 (http://www.opensuse.org), так как он проще в конфигурировании и все нужные пакеты в нем имеются, потребуется скачать только несколько дополнительных пакетов.

    Собственно установка

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

    Разбиение диска. В моем случаи диск 160 Гб разбиваем, причем не будем делить на системные, темпы и домашние каталоги пользователей.

    / 154 Гб
    Swap (2xRAM) = 1024 Мб

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

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

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


    После этого запускается процесс установки, на различных компьютерах скорость различна, на моем сервере около часа ставилась, на более мощном - пол часа. Все зависит от мощности процессора и объема оперативной памяти.

    Имя хоста - обычно это 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 с содержанием:
    [code]
    
    [/code]
    Ставим 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

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

    Вместо заключения

    Для дополнительного конфигурирования можно установить пакет Webmin.
    Это программный комплекс, который позволяет администрировать
    *unix-подобную операционную систему, не работая с командной
    строке и не запоминая ни одной команды.
    Все управление сервером происходит через web-интерфейс

    Webmin состоит из простого web-сервера и небольшого количества скриптов,
    которые собственно и осуществляют связь между командами администратора
    через web-интерфейс и их исполнением на уровне операционной системы
    и прикладных программ.

    # tar -xf webmin-1.400.tar.gz
    # sh webmin-1.400/setup.sh


    Дальше идут стандартные вопросы, папки. Порты оставляем по умолчанию.

    После установки идем в http://ваш_ip:порт/, в моем случае http://192.168.1.1:10000

    Файлы для сервера вы можете скачать здесь:

    http://muzvolga.ru/magic_pc/webmin-1.400.tgz - Webmin
    http://muzvolga.ru/magic_pc/proftpd-1.3.1.tgz - Proftpd, ftp-сервер
    http://muzvolga.ru/magic_pc/phpmyadmin-2.10.0.2.tgz - phpmyadmin, администрирование баз mysql
    http://muzvolga.ru/magic_pc/putty.exe.tgz - Putty, ssh-клиент под Windows
    http://muzvolga.ru/magic_pc/index.php.tgz - скрипт проверки php на сервере
    http://muzvolga.ru/magic_pc/my.cnf.tgz my.cnf - файл конфигурации mysql
    http://muzvolga.ru/magic_pc/php.ini.tgz php.ini - файл конфигурации php
    http://muzvolga.ru/magic_pc/proftpd.tgz - proftpd, скрипт для init.d

    Тема следующего номера - сервер под Windows XP. Для извращенцев.

    Халик Алешин (г. Волгоград)

    Перейти на сайтПерейти на сайт автора  Другие статьи раздела "Linux/Unix"

    Предыдущая страница  Разделы и Новости  Карта сайта  Архив
    Подписка на новости сайтаНовости на Email:
    Subscribe.Ru
    Rss2Email.ru
    Читать в Яндекс.Ленте FeedBurner

    Напишите свои замечанияКомментарии
    (Комментировать могут только пользователи, зарегистрированные на форуме. Вопросы пишите в форумах)
    Пока нет комментариев
    * Имя:   * Пароль:
    * Текст сообщения не более 350 символов
    Авторы сайта не несут ответственности за комментарии посетителей.
    Комментарии, не соответствующие принятым нормам закона, морали и тематике сайта удаляются.
    Powered by Scriptsmill Comments Script

  • Сообщить о неверной ссылке - Нажав на эту кнопку, вы сообщите нам о неработающей ссылке.
  • Если Вы обнаружили вредоносную программу, скрипт, сайт или если Вы хотите изменить текст, адрес или удалить ссылку, добавить статью сообщите нам об этом в форуме, указав ее название и URL
  • Цифры после названия в скобках - дата обновления в каталоге и количество просмотров
  • Статья в архиве сайта Статья находится в разделе "Архив"
  • Публикация ссылок осуществлятся посетителями сайта. Авторы сайта не несут ответственности за содержание информации, размещаемой на сайте, неправильное указание адреса, искажение информации или авторства, а также за информацию на сайтах, указанных в каталоге, последствия перехода по ссылке, запуска скаченных скриптов или программ и т.п.
  • При любом использовании материалов, ссылка на сайт автора и наш сайт обязательна
  • Подписка на новостиНовости на Email
    Subscribe.Ru
    Rss2Email.ru
    Читать в Яндекс.Ленте
    FeedBurner
    Форум:
    DELPHI
    C/C++
    WEB
    Алгоритмы
    Прочие
    Новости сайта
    О публикациях
    Windows
    Программы
    Флейм
    Темы форумов:
  • kristart Помогите выбрать свободную ОС в форуме Windows Jul 29 2010, 14:44:07
  • FYAN Нужен программист в форуме Прочие Jul 28 2010, 07:36:26
  • gleb_sitnikov Предлагаю руководство в форуме Предложения по публикации в каталоге и комментарии. Jul 9 2010, 17:13:10
  • piter Очень нужен программист в форуме DELPHI Jul 1 2010, 16:13:02
  • piter БД - 3 нормальная форма. в форуме Прочие Jun 28 2010, 09:42:55
  • abee Join в Foxpro9. в форуме Прочие Jun 28 2010, 09:40:37
  • gleb_sitnikov Предлагаю статью в форуме Предложения по публикации в каталоге и комментарии. Jun 21 2010, 11:16:01
  • piter определение даты в форуме DELPHI Jun 7 2010, 16:01:27
  • gleb_sitnikov Предлагаю учебник в форуме Предложения по публикации в каталоге и комментарии. Jun 7 2010, 12:13:31
  • gogo пожалуйста, напишите программу в Visual C++ в форуме C++ Builder Jun 7 2010, 11:06:51
  • Новые комменты к
  • Process Explorer Бесплатная, компактная, программа для мониторинга в режиме реального времени сис...
  • RbControls Pack Компоненты анимируются при перемещении и нажатии мышки. Эти компоненты позволяют...
  • Библиотека BASS библиотека содержит большое количество примеров, в том числе и на дельфи, позвол...
  • Протокол TCP/IP или как работает Интернет (для чайников) В основе работы глобальной сети Интернет лежит набор (стек) протоколов TCP/IP. ...

  • Карта сайта   Каталог  Архив сайта за 2001-2007 годыАрхив  Форум  Блог  Начало страницы  Добавить в избранное  Предыдущая страница
    Поиск  Поиск по сайту Google Сайт Google
      
    Поиск по сайту Яндекс
    0.46с
    Каталог программиста Блог "Компьютеры и жизнь" Top 100 Borland Sites. Vote for us