Совершенный Сервер на Ubuntu 8.10

Discussion in 'Linux, Freebsd, *nix' started by Belfigor, 5 Dec 2008.

  1. Belfigor

    Belfigor Elder - Старейшина

    Joined:
    14 Nov 2007
    Messages:
    156
    Likes Received:
    40
    Reputations:
    2
    Совершенный Сервер на Ubuntu 8.10 (часть 1)

    Данный мануал взят с сайта HowtoForge.com

    Я не буду здесь описывать установку Ubuntu-server 8.10 а перейду сразу к настройке сервера .

    скачать Ubuntu-server 8.10 можно здесь http://www.ubuntu.com/

    Статья расчитана только для новичков , гуру не почерпнут для себя здесь ничего нового !
    ____________________________________________________________
    Все комманды нужно выполнять в терминале (консоль) под рутом (root)

    SUDO SU Enter
    Ваш пароль : xxxxx
    _____________________________________________________________

    Для выхода из редактора VIM использовать клавишу Esc без сохранения :q , с сохранением :wq

    _____________________________________________________________

    По всем интересующим вас вопросам просьба использовать: man vim, apache2 , bind9, mc и тд и тп !!!

    Теперь пожалуй начнём

    №1
    Для начала установим SSH Server , если вы не установили его в процессе установки Убуту то это можно сделать сейчас выполнив сделующие команды :

    PHP:
    apt-get install ssh openssh-server
    Для подключения к вашему серверу с Windows (вот не хотел это слово тут вообще писать :D ) вы можете использовать такую утилиту как Putty , её легко найти в интернете , я админю своей сервак из под Linux Mint , в консоли ssh 192.168.1.1 -l belfigor : мой пасс .

    Тестовые редакторы можно использовать разные, такие как vim , mc и nano , я пользуюсь vim , для удобства mc , по дефолту программа vi уже установленна , но в среде Дебиан и Убуну она бывает ведёт себя странно , профиксим это дело:

    Code:
    apt-get install vim-nox [COLOR=LightBlue] mc[/COLOR]
    за одно можно установить mc . GNU Midnight Commander File Manager

    №2

    Настроим нашу сеть , я использую сервер в качестве шлюза , данную конфигурацию вы можете заточить под свои нужды , мой конфиг приведёт ниже:

    PHP:
    vi /etc/network/interfaces
    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.1.1
            netmask 255.255.255.0
            network 192.168.1.0
            broadcast 192.168.1.255
            gateway 192.168.1.1
            # dns-* options are implemented by the resolvconf package, if installed
            dns-nameservers 192.168.1.1
            dns-search ru
    
    
    перезагрузим нашу сеть

    PHP:
    /etc/init.d/networking restart
    Теперь отредактируем файл /etc/hosts
    PHP:
    vi /etc/hosts
    Code:
    127.0.0.1       localhost.localdomain   localhost
    192.168.1.1   server1.example.com     server1
    
    # 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
    Запустим
    Проверяем
    PHP:
    hostname
    hostname 
    -f
    вы должны увидеть следущие server1.example.com или же Ваше название сервера !

    №3

    Отредактируем файл /etc/apt/sources.list из закоментируем строку которая иcпользует установочный СD , так же проверим что universe и multiverse репозиторий доступны :

    PHP:
    vi /etc/apt/sources.list
    Code:
    #
    # deb cdrom:[Ubuntu-Server 8.10 _Intrepid Ibex_ - Release i386 (20081028.1)]/ intrepid main restricted
    
    #deb cdrom:[Ubuntu-Server 8.10 _Intrepid Ibex_ - Release i386 (20081028.1)]/ intrepid main restricted
    # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
    # newer versions of the distribution.
    
    deb http://de.archive.ubuntu.com/ubuntu/ intrepid main restricted
    deb-src http://de.archive.ubuntu.com/ubuntu/ intrepid main restricted
    
    ## Major bug fix updates produced after the final release of the
    ## distribution.
    deb http://de.archive.ubuntu.com/ubuntu/ intrepid-updates main restricted
    deb-src http://de.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://de.archive.ubuntu.com/ubuntu/ intrepid universe
    deb-src http://de.archive.ubuntu.com/ubuntu/ intrepid universe
    deb http://de.archive.ubuntu.com/ubuntu/ intrepid-updates universe
    deb-src http://de.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://de.archive.ubuntu.com/ubuntu/ intrepid multiverse
    deb-src http://de.archive.ubuntu.com/ubuntu/ intrepid multiverse
    deb http://de.archive.ubuntu.com/ubuntu/ intrepid-updates multiverse
    deb-src http://de.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 http://de.archive.ubuntu.com/ubuntu/ intrepid-backports main restricted universe multiverse
    # deb-src http://de.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-src http://security.ubuntu.com/ubuntu intrepid-security main restricted
    deb http://security.ubuntu.com/ubuntu intrepid-security universe
    deb-src http://security.ubuntu.com/ubuntu intrepid-security universe
    deb http://security.ubuntu.com/ubuntu intrepid-security multiverse
    deb-src http://security.ubuntu.com/ubuntu intrepid-security multiverse
    
    
    следом запускаем команду
    PHP:
    apt-get update
    apt
    -get upgrade
    Этим самым мы обновим и установим важные и нужные обновления для нашего сервера

    Перезагрузимся
    Code:
    reboot
    №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:
    apt-get install quota
    Отредактируем файл /etc/fstab , добавив в него usrquota , grpquota и раздел с точкой монтирования .

    PHP:
    vi /etc/fstab
    Code:
    # /etc/fstab: static file system information.
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    proc            /proc           proc    defaults        0       0
    # /dev/sda1
    UUID=ef38977b-0f39-4201-a4c3-2eed8fce0b6c /               ext3    relatime,errors=remount-ro,usrquota,grpquota 0       1
    # /dev/sda5
    UUID=c4ecae0e-77b7-4b3b-b16f-303bb32a761d none            swap    sw              0       0
    /dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0
    Включим квоту этими командами :

    Code:
    touch /quota.user /quota.group
    chmod 600 /quota.*
    mount -o remount /
    
    Code:
    quotacheck -avugm
    quotaon -avug
    
    №5

    Установим DNS сервер

    Code:
    apt-get install bind9
    Для помещения BIND в chroot выполним следущие шаги:

    Code:
    /etc/init.d/bind9 stop
    Отредактирем файл /etc/default/bind9 изменив линию OPTIONS="-u bind" на OPTIONS="-u bind -t /var/lib/named"

    PHP:
    vi /etc/default/bind9
    Code:
    # run resolvconf?
    RESOLVCONF=yes
    
    # startup options for the server
    OPTIONS="-u bind -t /var/lib/named"
    Создадим соседние директории под /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
    
    Затем переместим конфиг директорию из /etc в /var/lib/named/etc:

    Code:
    mv /etc/bind /var/lib/named/etc
    Создадим сим линк в новой конфиг директории из старого размещения (тем самым устраним проблемы когда bind обновиться в будующем)

    PHP:
    ln -/var/lib/named/etc/bind /etc/bind
    Сделаем null и random devices, и выставим нужные права на директории :

    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
    
    Нам нужно изменить /etc/default/syslogd так как мы можем всё ещё получать важные сообщения системных логов , изменим линию : SYSLOGD="" на SYSLOGD="-a /var/lib/named/dev/log":

    PHP:
    vi /etc/default/syslogd
    Code:
    #
    # 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"
    Перезапустим демона :

    PHP:
    /etc/init.d/sysklogd restart
    Стартуем наш DNS сервер , все ошибки можно проглядеть в /var/log/syslog

    Code:
    /etc/init.d/bind9 start
    от себя
    №6 Устанавливаем MYSQL

    Будем делать всё в следущием порядке :

    PHP:
    apt-get install mysql-server mysql-client libmysqlclient15-dev
    Во время установки нас попросят назначить нашему серверу пароль root:
    Допустим мы хотим чтобы Mysql слушал все интерфейсы, а не только локалхост , для этого отредактируем etc/mysql/my.cnf , и закометируем строку bind-address = 127.0.0.1

    PHP:
    vi /etc/mysql/my.cnf
    Code:
    [...]
    # 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 для локалхоста , теперь можем перегрузить MysqL

    Code:
    /etc/init.d/mysql restart
    Проверим работоспособность Mysql
    Code:
    netstat -tap | grep mysql
    Всё должно выглядеть следующим образом

    Установка Apache/PHP5/Ruby/Python

    №7 Устанавливаем Apache:

    Code:
    apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec libexpat1 ssl-cert
    Далее установим PHP5, Ruby, and Python ( и три модуля к Apache)

    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
    Затем отредактируем /etc/apache2/mods-available/dir.conf

    PHP:
    vi /etc/apache2/mods-available/dir.conf
    изменим строку DirectoryIndex

    Code:
     <IfModule mod_dir.c>
    
              #DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
              DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml
    
    </IfModule> 
    Теперь мы имеем работоспособные модули Апача , такие как (SSL, rewrite, suexec, and include):
    PHP:
    a2enmod ssl
       a2enmod rewrite
       a2enmod suexec
     a2enmod 
    include
    Перезапустим Apache
    Code:
    /etc/init.d/apache2 restart
    ################################################## Из МАНУАЛА !
    ______________________________________________________________
    Откроем файл /etc/mime.types и закоментируем строку application/x-ruby:

    PHP:
    vi /etc/mime.types
    Code:
     [...]
    #application/x-ruby                             rb
    [...] 
    Перезапустим Апач
    Code:
    /etc/init.d/apache2 restart
    Теперь .rb файлы будут исполняться и отображаться в браузере , так же как и .rbx

    №8

    Отключаем PHP Globally , это необходим сделать только в том случае если вы хотите установить ISPConfig

    ISPConfig это панель, которая использует предустановленный на сервере почтовый сервер, веб сервер, php, mysql, perl и другие.
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Если вы не планируете устанавливать на этот сервер ISPConfig , пропустите данную секцию !!!!!

    PHP:
    vi /etc/mime.types
    Code:
     [...]
    #application/x-httpd-php                                phtml pht php
    #application/x-httpd-php-source                 phps
    #application/x-httpd-php3                       php3
    #application/x-httpd-php3-preprocessed          php3p
    #application/x-httpd-php4                       php4
    [...] 
    Отредактируйте файл /etc/apache2/mods-enabled/php5.conf и закоментируйте следующие строки :

    PHP:
    vi /etc/apache2/mods-enabled/php5.conf
    Code:
     <IfModule mod_php5.c>
      #AddType application/x-httpd-php .php .phtml .php3
      #AddType application/x-httpd-php-source .phps
    </IfModule> 
    Code:
    /etc/init.d/apache2 restart
    Источник http://www.howtoforge.com/perfect-server-ubuntu-8.10
    Copyright Falko http://www.howtoforge.com/forums/member.php?u=2
    Copyleft Belfigor

    Во второй части мануала будет рассмотреннo: установка и настройка Virtual Users And Domains With Postfix, Courier, MySQL And SquirrelMail (Ubuntu 8.10)" , Постоянное одновременное подключение Интернет + Локалка (Domolink) за 5 минут! на Ubuntu 8.10 , установка и настройка Proftpd Mysql .

    (c)stopxaker.ru
     
    #1 Belfigor, 5 Dec 2008
    Last edited: 25 Apr 2009
    7 people like this.
  2. Belfigor

    Belfigor Elder - Старейшина

    Joined:
    14 Nov 2007
    Messages:
    156
    Likes Received:
    40
    Reputations:
    2
    1:
    То что статья называеться "Совершенный сервер на Ubuntu 8.10" это не я придумал , это перевод "The Perfect Server - (Ubuntu 8.10)" можешь сходить на офсайт и разрулить эту тему там ;)

    2 Не нравиться Ubuntu , юзай Debian .

    3. С удовольствием бы почитал твой мануал (пусть даже переведённый ) о поднятии сервера на OpenBSD

    и последние, я юзаю как Ubuntu-server так и Debian так и FreeBSD , и даже иногда балуюсь CentOS , так что если тебе что то не нравиться , то напиши и выложи свой ман по OpenBSD , и приведи веские доводы и сравнения по этой ОС , то бишь чем что лучше и чем что хуже !
    А разводить Холивары , имхо , не стоит ;)
     
    #2 Belfigor, 5 Dec 2008
    Last edited: 5 Dec 2008
  3. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Чем лучше Убунту, чем BSD
    1) Нет проблем с дровами. Сейчас в *BSD такая же жопа с дровами на новое железо по отношению к линуху, какая недавно была в Linux по отнношению к винде.
    2) Джава. Есть, но неофициально и не поддерживается саном.
    3) Многово софта нет под фряху. Те же всякие ЗендСтудио и т.д.
    4) И это не говоря о серверном сегменте: попробуйте поднять Oracle на FreeBSD )
     
    1 person likes this.
  4. Useroff

    Useroff Elder - Старейшина

    Joined:
    23 Aug 2008
    Messages:
    146
    Likes Received:
    27
    Reputations:
    -3
    Бред, многие линуксы используют дрова *BSD систем.
    Еще пущий бред, или посмотри в порты.
     
  5. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Ну-ну, прежде чем языком шевелить, ты подуи\мал бы.
    Начнем с того, что Zend Studio платная и проприетарная. Ну и как она в портах оказаться может?)
    http://www.freebsd.org/cgi/ports.cgi?query=Zend&stype=all
    Проверь вот )
    А на оффсайте можно скачать версии под мак, винду и линух.

    Ты это скажи владельцам Wi-Fi карточек, к примеру )
     
  6. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Мне нужна ява на девелоперской тачке, под которой я разрабатываю ПО для сервера.
    И среда разработки мне нужна. Чтобы разрабатывать ПО для сервера.
    Да и монитор мне нужен. Чтобы смотреть в него при разработке для сервера.

    Конечно. К примеру недавно писал туб - тестировал на сервере, подобном боевому.
     
  7. Useroff

    Useroff Elder - Старейшина

    Joined:
    23 Aug 2008
    Messages:
    146
    Likes Received:
    27
    Reputations:
    -3
    Вот тебе статья по созданию идеального вэб сервака на OpenBSD
    http://servmast.ru/index.php?newsid=19
     
    #7 Useroff, 6 Dec 2008
    Last edited: 5 Jul 2009
  8. Belfigor

    Belfigor Elder - Старейшина

    Joined:
    14 Nov 2007
    Messages:
    156
    Likes Received:
    40
    Reputations:
    2
    2 Useroff , cпасибо за ссылку , но сколько юзаю ФРяху , таким образом никогда не ставил и ставить не буду

    Code:
    # pkg_add php5-core
    Всё только из портов !!! ;)

    зы ещё раз прощу не втягивайте меня в холивар :D
     
  9. Useroff

    Useroff Elder - Старейшина

    Joined:
    23 Aug 2008
    Messages:
    146
    Likes Received:
    27
    Reputations:
    -3
    OpenBSD может работать с 2 и более процами, не хуже чем FreeBSD.
    1. Кто мешает httpd="-u" ?
    2. chroot, ограждает индейца от систмы, тем самым уменьшает % взома.
    3. chroot ставится за 15 минут куда угодно то на Фриху, то на бунту.
     
  10. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Уважаемые, на надо разводить холивар. Достаточно просто высказать свое мнение. И попытаться прислушаться к мнению другого. Не надо спорить в разделе, давайте уж забудем это выражение "плохая ОС", оскорбление других личностей и сторонее ПО показывает не ваш ум, а вашу глупость.

    Добавлено: тему открыл, ждем 2ую часть.
     
    #10 procedure, 7 Dec 2008
    Last edited: 19 Dec 2008
  11. Belfigor

    Belfigor Elder - Старейшина

    Joined:
    14 Nov 2007
    Messages:
    156
    Likes Received:
    40
    Reputations:
    2
    Совершенный Сервер на Ubuntu 8.10 ( часть 2)

    В этой части будет рассказанно , как установить FTP c поддержкой Mysql в частности это будет Proftpd-Mysql

    Для начала установим Apache, Mysql и PhpMyadmin , как это сделать я подробно описал ТУТ

    сделать это нужно в консоли по рутом

    Code:
    sudo su 
    установим всё одной командой

    Code:
    apt-get install mysql-server mysql-client libmysqlclient15-dev phpmyadmin apache2
    Во время установки вас попросят задать пароль для Mysql , сделаем это

    теперь просмотрим коректно ли работают наши устанолвенные программы Apache, Mysql и PhpMyadmin , в папке www создадим файл test.php c следующим содержанием

    PHP:
    <?php
    phpinfo
    ();
    ?>
    зайдя на свой хост вы должны уведеть следующие : http://127.0.0.1/test.php

    [​IMG]

    Если всё нормально , едем дальше , и установим proftpd-mysql

    Code:
    apt-get install proftpd-mysql
    при установки proftpd-mysql вы можете столкнуться с некоторыми проблемами :

    PHP:
     apt-get install proftpd-mysql
    Чтение списков пакетов
    ... Готово
    Построение дерева зависимостей      
    Чтение информации о состоянии
    ... Готово
    Пакет proftpd
    -mysql недоступенно упомянут в списке зависимостей другого пакета.
    Это может означатьчто пакет отсутствуетустарелили доступен из источниковне упомянутых в sources.list
    EДля пакета proftpd-mysql не найдены кандидаты на установку
    в Ubuntu 8.04 , проблем не было , но ничего это всё решаемо :

    Идём во сюда http://packages.ubuntu.com/ru/dapper-updat...-mysql/download

    Страница загрузки пакета proftpd-mysql_1.2.10-27ubuntu3.1_i386.deb для архитектуры Intel x86

    далее :

    затем sources.list я добавил

    Code:
    deb http://mirrors.kernel.org/ubuntu dapper-updates main universe
    и устанавливаем proftpd mysql :

    Code:
    apt-get install proftpd-mysql
    во время установки вам зададут вопрос , ответе:

    Теперь создадим ftp группу и ftp юзера



    PHP:
    groupadd -g 2001 ftpgroup
    useradd 
    -u 2001 -/bin/false -/bin/null -"proftpd user" -g ftpgroup ftpuser
    Теперь нужно создать в mysql базу для Proftpd :

    PHP:
    create database ftp;
      
    GRANT SELECTINSERTUPDATEDELETE ON ftp.* TO 'proftpd'@'localhost' IDENTIFIED    BY 'password';
      
    GRANT SELECTINSERTUPDATEDELETE ON ftp.* TO 'proftpd'@'localhost.localdomain'    IDENTIFIED BY 'password';
      
    FLUSH PRIVILEGES;
    теперь создадим структуру таблиц в базе ftp:

    PHP:
    USE ftp;
     
    CREATE TABLE ftpgroup    (
      
    groupname varchar(16NOT NULL default '',
      
    gid smallint(6NOT NULL default '5500',
      
    members varchar(16NOT NULL default '',
      
    KEY groupname (groupname)
      ) 
    TYPE=MyISAM COMMENT='ProFTP group table';
    PHP:
    CREATE TABLE ftpquotalimits    (
      
    name varchar(30) default NULL,
      
    quota_type enum('user','group','class','all'NOT NULL default 'user',
      
    per_session enum('false','true'NOT NULL default 'false',
      
    limit_type enum('soft','hard'NOT NULL default 'soft',
      
    bytes_in_avail int(10unsigned NOT NULL default '0',
      
    bytes_out_avail int(10unsigned NOT NULL default '0',
      
    bytes_xfer_avail int(10unsigned NOT NULL default '0',
      
    files_in_avail int(10unsigned NOT NULL default '0',
      
    files_out_avail int(10unsigned NOT NULL default '0',
      
    files_xfer_avail int(10unsigned NOT NULL default '0'
      
    TYPE=MyISAM;
    PHP:
    CREATE TABLE ftpquotatallies    (
      
    name varchar(30NOT NULL default '',
      
    quota_type enum('user','group','class','all'NOT NULL default 'user',
      
    bytes_in_used int(10unsigned NOT NULL default '0',
      
    bytes_out_used int(10unsigned NOT NULL default '0',
      
    bytes_xfer_used int(10unsigned NOT NULL default '0',
      
    files_in_used int(10unsigned NOT NULL default '0',
      
    files_out_used int(10unsigned NOT NULL default '0',
      
    files_xfer_used int(10unsigned NOT NULL default '0'
      
    TYPE=MyISAM;
    PHP:
    CREATE TABLE ftpuser    (
      
    id int(10unsigned NOT NULL auto_increment,
      
    userid varchar(32NOT NULL default '',
      
    passwd varchar(32NOT NULL default '',
      
    uid smallint(6NOT NULL default '5500',
      
    gid smallint(6NOT NULL default '5500',
      
    homedir varchar(255NOT NULL default '',
      
    shell varchar(16NOT NULL default '/sbin/nologin',
      
    count int(11NOT NULL default '0',
      
    accessed datetime NOT NULL default '0000-00-00 00:00:00',
      
    modified datetime NOT NULL default '0000-00-00 00:00:00',
      
    PRIMARY KEY (id),
      
    UNIQUE KEY userid (userid)
      ) 
    TYPE=MyISAM COMMENT='ProFTP user table';
    выходим из mysql

    Code:
    quit;
    Теперь открываем /etc/proftpd.conf и в конец файла добавлем следующие строки :

    Code:
    DefaultRoot ~
    
    
    # The passwords in MySQL are encrypted using CRYPT
    SQLAuthTypes            Plaintext Crypt
    SQLAuthenticate         users* groups*
    
    
    # used to connect to the database
    # databasename@host database_user user_password
    SQLConnectInfo  ftp@localhost proftpd password
    
    
    # Here we tell ProFTPd the names of the database columns in the "usertable"
    # we want it to interact with. Match the names with those in the db
    SQLUserInfo     ftpuser userid passwd uid gid homedir shell
    
    # Here we tell ProFTPd the names of the database columns in the "grouptable"
    # we want it to interact with. Again the names match with those in the db
    SQLGroupInfo    ftpgroup groupname gid members
    
    # set min UID and GID - otherwise these are 999 each
    SQLMinID        500
    
    # create a user's home directory on demand if it doesn't exist
    SQLHomedirOnDemand on
    
    # Update count every time user logs in
    SQLLog PASS updatecount
    SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
    
    # Update modified everytime user uploads or deletes a file
    SQLLog  STOR,DELE modified
    SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
    
    # User quotas
    # ===========
    QuotaEngine on
    QuotaDirectoryTally on
    QuotaDisplayUnits Mb
    QuotaShowQuotas on
    
    SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
    
    SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
    
    SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies
    
    SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies
    
    QuotaLimitTable sql:/get-quota-limit
    QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
    
    RootLogin off
    RequireValidShell off
    проверте что вы заменили строку password вашем настроящим паролем для MySQL user proftpd в линии SQLConnectInfo!

    Также в /etc/proftpd.conf можно добавить вот такие строки :
    из мануала

    Code:
    SQLNamedQuery gettally  SELECT "ROUND((bytes_in_used/1048576),2) FROM ftpquotatallies WHERE name='%u'"
    SQLNamedQuery getlimit  SELECT "ROUND((bytes_in_avail/1048576),2) FROM ftpquotalimits WHERE name='%u'"
    SQLNamedQuery getfree   SELECT "ROUND(((ftpquotalimits.bytes_in_avail-ftpquotatallies.bytes_in_used)/1048576),2) FROM ftpquotalimits,ftpquotatallies WHERE ftpquotalimits.name = '%u' AND ftpquotatallies.name = '%u'"
    
    SQLShowInfo   LIST    "226" "Used %{gettally}MB from %{getlimit}MB. You have %{getfree}MB available space."
    Не забудьте перезагрузить Proftpd после добавления этих строк

    Вернёмся в mysql и создадим группу и юзера в базе FTP:
    Code:
     mysql -u root -p
    PHP:
    USE ftp;

    INSERT INTO `ftpgroup`    (`groupname`, `gid`, `members`) VALUES ('ftpgroup'2001'ftpuser');
    PHP:
    INSERT INTO `ftpquotalimits`    (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`,    `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`)    VALUES ('exampleuser''user''true''hard'1572864000000);
      
    INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`,    `count`, `accessed`, `modified`) VALUES (1'exampleuser''secret'20012001,    '/home/www.example.com''/sbin/nologin'0'''');
    выходим из mysql
    Code:
    quit;
    Итак мы создали юзера exampleuser с паролем secret и директорией /home/www.example.com ,


    [​IMG]


    здесь вы можете указать свою директорю /home/user или /www/user1/ и тд .

    Заходим в phpmyadmin и может добавлять новых юзеров , выставлять квоты на размер диского пространства и тд и тп :

    http://127.0.0.1/phpmyadmin/


    [​IMG]


    Таблица ftpuser Table

    * userid: имя виртального юзера Proftpd user (e.g. exampleuser).
    * passwd: пароль храниться в открытом виде , это недостаток , имхо ( The unencrypted (i.e., clear-text) password of the user.)
    * uid: юзер ид (The userid of the ftp user you created at the end of step two (e.g. 2001).
    * gid: ид группы ( The groupid of the ftp group you created at the end of step two (e.g. 2001).
    * homedir: директория виртуально юзера proftpd например /home/www.example.com


    Удачной установки и настройки :) , с уважением Belfigor

    источник http://www.howtoforge.com/proftpd_mysql_virtual_hosting

    (c)stopxaker.ru
     
    #11 Belfigor, 24 Dec 2008
    Last edited: 25 Apr 2009
    3 people like this.
  12. Dronga

    Dronga ВАША реклама ТУТ!!

    Joined:
    1 Jul 2005
    Messages:
    575
    Likes Received:
    239
    Reputations:
    249
    Вынужден не согласиться и признать идейную правоту за Useroff потому как всё выше процитированное не имеет отношения к продакшн серверам и к Ubuntu в частности. Всё выше сказанное однозначно относится исключительно к сравнению FreeBSD с Sun OpenSolaris, а не с Ubuntu. OpenSolaris и Ubuntu конечно похожи, но не настолько, я бы даже сказал, похожи чисто внешне. Идейно OpenSolaris = (Ubuntu + FreeBSD) + Sun Creative. Отмечу, что Sun OpenSolaris в серверном сегменте на сегодня практически не представлен несмотря на всё моё уважение к этой компании и мощности её разработок. Стараются, но коньюктура очень высокая, а система совсем молодая.

    Думаю, нерезус в курсе про драйвера которые Sun бесплатно и в очень короткие сроки напишет под любую железку, но только под OpenSolaris (welcome to developers.sun.com или developers.sun.ru). Вряд ли это решение (этот свежеиспченный драйвер) пойдет в продакшн потому как вся система experimental и вопросы совместимости никто не отменял. Про Oracle и Ubuntu тоже наверное не будем ;) Это также как Oracle и FreeBSD. Зато Solaris и Oracle тандем отличный, питерский МТС доволен.

    Поэтому, расставлю точки над i в рассматриваемой ситуации и контексте статьи.

    Требуется веб-сервер: Apache, PHP, MySQL, Proftpd.

    FreeBSD на сервер. Ubuntu с её драйверами (особенно Wi-Fi), иксами, кучей самонастраиваемых не серверных (читай юзерских) сервисов, автоматическим распознаванием ресурсов доменной сети MS Windows, а соотвественно и предоставлением своих ресурсов (особенно непонятно), sudo, непомерным разжирением с "эволюцией" дистрибутива (сравните не столь давнюю 5x c нынешним 8x, а что такого существенного появилось??), поддержкой явы и автоматическим обновлением на десктоп. OpenSolaris нерезусу и любому другому разработчику софта, особенно в Java части (SunStudio, кстати, тоже "проприетарная" и платная). Теперь все на местах.

    По статье. "Совершенный Сервер" (СС прям какой-то =) звучит просто смешно. Нет таких.
    Вдвойне смешно, потому как perfect != совершенный (x2 в общем контексте статьи)

    Если не придираться к названию, то в статье есть всего один интересный момент (но не актуальный для меня, решил проблему по-другому). Выбор/установка/комбинации софта вызывают легкое раздражение. А самые интересные моменты "совершенствования сервера" прикрыты установкой панели ISPConfig. Так проще, но ведь проблемы остались. Как раз те самые проблемы, которые являются общими для всех серверов, с любой архитектурой/платформой/операционной системой. Сервер с установкой панели идеальными не стал. Ждём статьи Совершенная Панель ISPConfig. В общем, тема не раскрыта вообще, долой популизм и ширпотреб. Может правда под OpenSolaris статью перепишешь? Там весь веб-стек одной командой ставится в готовой связке (включая squid), вот те и совершенный сервер, нах настраивать? :D
     
    #12 Dronga, 24 Dec 2008
    Last edited: 24 Dec 2008
    2 people like this.
  13. pithagora

    pithagora New Member

    Joined:
    24 Aug 2007
    Messages:
    14
    Likes Received:
    3
    Reputations:
    0
    Free BSD на продакшен сервере работает стабильно, как и остальные BSD системы. Поднять на ней графический интерфейс с наворотами тоже не трудно. Несовместимости с некоторыми устройствами некоторых компаний существует. Но главное что знаменитые компании заботятся о том чтобы ихнии устройства работали стабильно и на Free BSD. Без фанатизма, я уверен что Free BSD на сервере намного лучше чем Ubuntu, и на это есть причины.
     
    1 person likes this.
  14. X-3

    X-3 Member

    Joined:
    28 Mar 2009
    Messages:
    306
    Likes Received:
    58
    Reputations:
    -2
    Одна из этих причин - меньше жрет ресурсов.
    Вторая - нужные драйвера именно для сервера (читай - для основных устройств) - работают СТАБИЛЬНО, а за скоростью (читай - невнимательностью к стабильной работе) FreeBSD не гонится. Очень интересно обсудить Raid'ы в линуксах :))
    Третья - Oracle поднимается в режиме Linux-compatibility (замерьте скорость работы).
    Четвертая - какое "обилие софта" необходимо серверу? Это с рабочей станцией перепутали.
    Пятая - про Wi-Fi на сервере улыбнуло.

    P.S.
    Про "совершенство графического интерфейса сервера и поддержки необходимого юзерам софта и драйверов:
    Как там было: "Первая причина - это ты... а вторая - все твои мечты..."

    Николаев был админом, видимо ;)
     
    1 person likes this.
  15. stopxaker

    stopxaker Elder - Старейшина

    Joined:
    6 Sep 2008
    Messages:
    269
    Likes Received:
    284
    Reputations:
    18
    Спасибо , что ещё есть люди которые читают мои статьи и им это интересно , пусть будет даже холивар , но это лучше чем обсуждать темы про ВК и прочую хрень ! :)

    по сабжу , когда я начал переводить первую часть этой статьи , меня тоже терзали смутные сомнения , Ubuntu Server или FreeBSD , вот в чём вопрос ! я не буду сейчас вдаваться в дебри , скажу одно , я одинаково люблю как , Убунту , так и ФРяху , но допустим компиляция обычного Apache+Nginx+mysql+Samba и etc , у меня заняла 4 часа , хотя в тоже время на Ubuntu server ушло меньше 30 минут , далее некоторые начинаю крик мол Убунта сакс , лучше Debian , а какая разница ??? что UBuntu Server , что Debian - сорри за сравнение , тот же хер только в другой руке !
    Да конечно когда есть время суток двое , трое то можно на сервак и FreeBSD поставить не спорю , попить пивка , поспать , глядишь к утру всё собирётся ;)

    скажу одно , каждая ОС имет право на хард !

    Кстати сегодня праздник вышла Ubuntu 9.04 и уже доступна для скачивания от сюда http://www.ubuntu.com/getubuntu/download-server

    и я дописал третью часть про Ubuntu Server

    как раз именно про это !


    вообщем кому интересно тут три части http://stopxaker.ru/forumdisplay.php?f=4

    с уважением ко всем Stopxaker_aka_Belfigor :)
     
    #15 stopxaker, 23 Apr 2009
    Last edited: 23 Apr 2009
  16. X-3

    X-3 Member

    Joined:
    28 Mar 2009
    Messages:
    306
    Likes Received:
    58
    Reputations:
    -2
    stopxaker
    А в убунту сервере софт ставится как пакет? Если да, тогда понятна скорость "компиляции".

    Офф: как-то я поставил кеды на FreeBSD из портов. Сутки компилилось где-то. После этого понял, зачем пакеты во Фряхе :))
     
  17. pithagora

    pithagora New Member

    Joined:
    24 Aug 2007
    Messages:
    14
    Likes Received:
    3
    Reputations:
    0
    А я юзал в свое время Линуксы типа Ubuntu, Debian, Fedora, Centos, Open Suse, Red Hat server ну и BSD - Free, Open, Net, DragonFly...Из всех больше всего по душе да и вообше нормально строенная ос это Free BSD. Просто нравится что обеденяет в себе столько достоенств - надежная из коробке (а если руки растут правельно, можно так настроить что даже самые одаренные хакеры не порвут), надежная провереная временем система портов, и cvs - эти версии програм уже много лет проверены, так что мала вероятность что найдутся еще баги. Да и логика строении системы тоже нравится - очень понятная.
     
  18. Linux007

    Linux007 New Member

    Joined:
    27 Jun 2009
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    добрый день Господа. у меня вот какая проблема.... я админ сайта...очень важного и дорогостоящего проекта. я всего лишь новичок в линуксе и им подобных.....почти год как начал интересоваться *ксами. ушел с винды потому что она не ненадежна если дело доходит до серьезных вещей и подумал что уже пора "взрослеть" :)
    так вот........когда выбирал хостинг, (из за незнания) выбрал VPS хост с УбунтуСервер вместо "панели управления". Думал, если на компе могу им управлять смогу и эту осилить. но не тут то было. оказывается ее нужно настраивать.... и понял что линуксовый ламер ее не осилит. ребята, очень нужна помощь. решать за меня проблемы не прошу, но хочу попросить знающего указать ссылки или еще лучше написать как ее настроить на оптимальный уровень защиты от начала до конца. Сайт не открыт... заполняем его материалом. но все функционирует как надо при открытии сайта. (или я ошибаюсь).

    хостер сделал все по умолчанию. сколько дней гуляю по гугли ничего не могу найти.

    благодарю всех линуксоидов заранее........
     
  19. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Скинь асику в ПМ. Вечером постараюсь помочь.

    А вообще при таких случаях неплохо бы описывать сервисах которые предполагают там жить =)

    P.S. Идеальных серверов не бывает! 100% - нонсенс ;)
     
  20. Linux007

    Linux007 New Member

    Joined:
    27 Jun 2009
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    брат... :) извеняюсь, я в жаргоне не силен. что значит "скинь асику в ПМ"?