The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Настройка базовой системы FreeBSD

13.02.2006 10:35

Alexey Tsvetnov прислал подробный план действий по первоначальной установке и настройке нового FreeBSD сервера.

  1. Главная ссылка к новости (http://www.opennet.me/base/sys...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/6951-freebsd
Ключевые слова: freebsd, install, kernel
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, bss (??), 11:16, 13/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1) зачем 3 гига на /var/tmp?
    2) swap != ram, swap = 1,5-2ram
    3)<i>а) Удалить каталог /tmp и создать символическую ссылку /tmp на /var/tmp
       'rm -rf /tmp && ln -s /var/tmp /tmp'. Это сделает единое хранилище
       временных файлов в отдельном разделе.</i>

    Вот вместо этого гораздо лучше сказать
    # mdmfs -M -S -o async -s 16m md1 /tmp и сделать соответствующую запись в /etc/fstab

     
     
  • 2.4, dawnshade (?), 12:13, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Как обычно кто-то начитался непонятно чего и выложил свои кривые конфиги в виде статьи. Достало уже это.

    вот за этот бред
    /dev/ad0s1d/var/tmp        ufs     rw,nosuid,noexec,noatime,nodev  2       2
    вместе с этим
    Удалить каталог /tmp и создать символическую ссылку /tmp на /var/tmp
       'rm -rf /tmp && ln -s /var/tmp /tmp'. Это сделает единое хранилище
       временных файлов в отдельном разделе.

    автору в руки нагадить, ибо он ни разу не запускал mergemaster на такой смонтированной файлухе.

    Ну и остальное с такого же разряда. Даже не буду комментировать. Маразм.

     
     
  • 3.6, vorakl (??), 12:24, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >вот за этот бред
    >/dev/ad0s1d/var/tmp        ufs    
    > rw,nosuid,noexec,noatime,nodev  2       2

    >автору в руки нагадить, ибо он ни разу не запускал mergemaster на
    >такой смонтированной файлухе.

    О, комментатор - ясновидящий! Правда не удавшийся малость...

    Скажи, кто тебе мешает, перед запуском mergemaster перемонтировать без noexec ? Или ради того, чтобы раз в несколько месяцев между обновлением системы mergemaster, как собственно и make installworld отработали без ошибок, ты предлагаешь разрешать запуск binary с /tmp ? Браво! Прекрасное решение!

    >Ну и остальное с такого же разряда. Даже не буду комментировать. Маразм.

    А ты потрудись... прокомментировать конструктивно, а не "как обычно".

     
     
  • 4.9, dawnshade (?), 12:37, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Скажи, кто тебе мешает, перед запуском mergemaster перемонтировать без noexec ? Или
    >ради того, чтобы раз в несколько месяцев между обновлением системы mergemaster,

    да собственно это тебе понятно, другой будет искать долго.
    Кроме mysql ты ничего не знаешь? сюрприз что к примеру postgresql пишет сокет в /tmp. Да и куда другого софта так делает.
    Еще раз говорю - не надо выкладывать свои конфиги - они никому не нужны.


    > А ты потрудись... прокомментировать конструктивно, а не "как обычно".

    -2-4G * N- /var/cache # (squid, frox)
    бред, сквид поставленный из портов пишет в /usr/local/squid свой кэш.
    фрокс в /tmp

    -полное незнание hier(7). не надо гадить в системе если ты не в курсе зачем что лежит: mkdir /var/pkgs && mkdir /usr/ports/packages && \
       ln -s /var/pkgs /usr/ports/packages/All

    -/dev/ad0s1h     /var            ufs     rw,nodev
    откровенный идиотизм. bind начиная с 5.3 идет в chroot и создает в /var/named свои девайсы.

    -юзеры у вас свои бинари не выполняют?
    /dev/ad0s1g     /home           ufs     rw,nosuid,noexec,noatime,nodev

    дальше продолжать?
    у тебя так на каждом шагу.
    не нужны твои конфиги, не нужны. да еще гордо обозванные статьей.

     
     
  • 5.10, vorakl (??), 12:55, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >откровенный идиотизм. bind начиная с 5.3 идет в chroot и создает в
    >/var/named свои девайсы.

    Да что ты говоришь...

    # mount
    /dev/ad0s1g on /var (ufs, local, nodev, soft-updates)
    devfs on /var/chroot/named/dev (devfs, local)

    >-юзеры у вас свои бинари не выполняют?

    конечно, нет. Если бы выполняли, то не было бы noexec

    >дальше продолжать?

    продолжай, не бойся... ;)

    >не нужны твои конфиги, не нужны.

    Если не нужны - не читай. Я же не тебе лично прислал.
    Проходя - проходи!

     
     
  • 6.13, dawnshade (?), 13:08, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >>откровенный идиотизм. bind начиная с 5.3 идет в chroot и создает в
    >>/var/named свои девайсы.
    >
    >Да что ты говоришь...
    >
    ># mount
    >/dev/ad0s1g on /var (ufs, local, nodev, soft-updates)
    >devfs on /var/chroot/named/dev (devfs, local)

    Хорошо, с этим ошибся.

    >>-юзеры у вас свои бинари не выполняют?
    >
    >конечно, нет. Если бы выполняли, то не было бы noexec

    Нафиг тогда выделать отдельный /home. такие аккаунты никому не нужны где стоит noexec. И сам автор походу любо сидит с под-рута либо не написал ни одного скрипта в жизни, иначе такие б пермишены не ставил.

    >>дальше продолжать?
    >
    >продолжай, не бойся... ;)

    Я не боюсь, как показали ваши ответы с 80% критики справедливо.
    Просто жаль рабочего времени, которое никто не оплатит.

    >>не нужны твои конфиги, не нужны.
    >
    >Если не нужны - не читай. Я же не тебе лично прислал.
    >
    >Проходя - проходи!

    Просто потом появится куча криков в форуме я вот настроил так у меня ничего не работает, помогите. Другим потом это расхлебывать.
    Я всего лишь хочу предостеречь не совсем опытных пользователей от того что вы написали.

     
     
  • 7.15, vorakl (ok), 13:30, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >>конечно, нет. Если бы выполняли, то не было бы noexec
    >Нафиг тогда выделать отдельный /home.

    8-)) Лично я выделяю /home в отдельный раздел по нескольким причинам:
    1. Специфические параметры монтирования (nosuid, noexec и т.д.)
    2. Не даёт пользователю, "засрав" свой home, переполнить /usr/

    >такие аккаунты никому не нужны где стоит noexec.

    noexec не на акаунты выставляется!
    Хочу открыть большую тайну для Вас: скрипты не обязательно запускать из домашнего каталога... Но если есть такая необходимость, то можно убрать noexec и оставить nosuid.

    А если вообще всё НЕ важно в жизни, то разбиваем на диске один большой раздел / и ни в коем случае не применяем всякие там noexec или nosuid. Зачем ограничивать себя ради какой-то там безопасности... ;)

    > И сам автор походу любо сидит с под-рута либо не
    >написал ни одного скрипта в жизни, иначе такие б пермишены не
    >ставил.

    Опять пытаетесь предсказывать ?.. Бросьте это дело и займитесь лучше тем, что лучше всего получается!
    Хочу так же напомнить комментатору про существование незаменимой программы sudo. Она конечно не идёт в поставке с базовой системой, и глубоко уважаемый собеседник мог о ней ни чего не знать.

    >Просто жаль рабочего времени, которое никто не оплатит.

    Зачем же вам такое "рабочее время", если за него ни кто не платит?

    >Просто потом появится куча криков в форуме я вот настроил так у
    >меня ничего не работает, помогите.

    Появятся крики - поможем. Всё что в тексте написано, взято не с потолка, а  с вполне рабочей системы.

     
     
  • 8.19, dawnshade (?), 15:14, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    есть квоты вообщето которые не дадут засрать только свой home xz а не весь ho... большой текст свёрнут, показать
     
  • 3.17, Аноним (-), 14:15, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    dawnshade, на этот раз ты не прав. Статья хорошая и полезная. Про nosuid,noexec для /tmp автор абсолютно верный совет дал. А для mergemaster есть ключ -t.
     
  • 3.39, GRisha (?), 02:37, 14/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    ибо он ни разу не запускал mergemaster на
    >такой смонтированной файлухе.

    автор не слышал о переменной окружения TMPDIR ?

     
  • 2.14, c0x (??), 13:08, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    а вместо этого еще лучше сделать
    grep ^tmp /etc/defaults/rc.conf
    tmpmfs="AUTO"           # Set to YES to always create an mfs /tmp, NO to never
    tmpsize="20m"           # Size of mfs /tmp if created
    tmpmfs_flags="-S"       # Extra mdmfs options for the mfs /tmp

    почитать и проникнуться.

    >Вот вместо этого гораздо лучше сказать
    ># mdmfs -M -S -o async -s 16m md1 /tmp и сделать
    >соответствующую запись в /etc/fstab


     
     
  • 3.40, alnsn (?), 10:13, 14/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > вместо этого еще лучше сделать
    > grep ^tmp /etc/defaults/rc.conf
    > tmpmfs="AUTO"           # Set to YES to always create an mfs /tmp, NO to never
    > tmpsize="20m"           # Size of mfs /tmp if created
    > tmpmfs_flags="-S"       # Extra mdmfs options for the mfs /tmp

    У меня в 6.0 при запуске boost regression tests (www.boost.org)  при настроенном tmpmfs (300m из 512m RAM + 500m swap), ноут просто перезагружался без единой записи в /var/log/messages. Насколько я помню даже установка TMP и TMPDIR не помогала.
    Пришлось отказаться.
    Буду очень признателен за исправление моего дефекта рук :)

     
     
  • 4.49, Andrei Kolu (?), 22:58, 02/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >> tmpmfs_flags="-S"       # Extra mdmfs options for the mfs /tmp

    I found out my problem with crashing in default configuration.

    Quote:
      -M Create a malloc(9) backed disk (MD_MALLOC) instead of a swap-
    backed disk.
      

    solution is to override default config found in /etc/defaults/rc.conf:

    Code:
      tmpmfs_flags="-S -M"
      
    with this in /etc/rc.conf:

    Code:
      tmpmfs_flags="-S -o noatime,noexec,nosuid,nosymfollow"

     

  • 1.2, reaper (??), 11:29, 13/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    quick install
    pkg_add -r instant-server
     
     
  • 2.8, vorakl (??), 12:34, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >quick install
    >pkg_add -r instant-server

    Ты б ещё предложил: 'cd /usr/ports/ && make install'


     
  • 2.16, MZW (?), 14:09, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    не нравится мне с некоторых пор /usr выделять ( а тем более 20G :)
    / 600MB без softupdates (вся система + маленько софта влезет...)
    /var 1-2G (иногда и 200М выше крыши)
    дальше
    /xyz/src on /usr/src (nullfs, local)
    /xyz/obj on /usr/obj (nullfs, local)
    /xyz/ports on /usr/ports (nullfs, local)
    на ws можно
    /boo/X11R6 on /usr/X11R6 (nullfs, local)
    /boo/local on /usr/local (nullfs, local)
    /boo/compat on /usr/compat (nullfs, local)

    на серваке все одно jail'ов придется разводить...
    тогда и var/.. расползется по jail'ам и/или nullfs'ам

    а резать диск на 10 слайсов :(
    /
    swap
    /var
    /varX
    /jail
    /trash
    и хватит пока

    > Если не нужны - не читай. Я же не тебе лично прислал.
    > Проходя - проходи!
    присоединяюсь к предидущему оратору :)

     
     
  • 3.32, Мартышкин (ok), 20:22, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Под /var/db/xSQL?

    Минимум 10G иначе при переходе на InnoDB будут пляски.

     

  • 1.18, uldus (ok), 14:29, 13/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автору респект. Понятно что это не руководство для начинающих, а план действий для которого главное ничего не забыть, а пропустить ненужное ума хватит.

    К слову, про критику, лучше бы handbook критиковали, там давно пытаются избавиться от разных старых хвостов и ляпов :-)

     
     
  • 2.21, vorakl (??), 15:29, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > а план действий для которого главное ничего не забыть

    8-))
    Именно в таком ключе и создавалось!
    Имхо, пошаговая инструкция. Почти каждый пункт сопроваждается
    коммандами: хотелось бы в последствии объединить всё в один скрипт...

     

  • 1.20, CHERTS (ok), 15:26, 13/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что вы прикапались к человеку??

    Ну не нравиться статья, напишите свою!

    Кому-нибудь да она пригодиться!

    И тем более сценариев установки и настройки сервера FreeBSD море!

    Я как то FreeBSD по FTP через инет ставил! и что? давайте я напишу с десяток вариантов как её мона по FTP поставить! Суть то от этого не изменится!

    Человек старался, писал!

    А вы обливаете его говном! :(

     
     
  • 2.22, reaper (??), 15:33, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Что вы прикапались к человеку??
    >
    >Ну не нравиться статья, напишите свою!
    >
    >Кому-нибудь да она пригодиться!

    написал, не думаю что кому-то может пригодиться, поэтому лежит у меня на всякий случай, если память дырявая станет.

     

  • 1.24, echo (??), 16:03, 13/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть ИДЕЯ!
    Организовать коллекцию рабочих конфигураций на разные случаи жизни. Не писать сотни статей, а открыть несколько конкретных тем.
          ВЕБ_СЕРВЕР
          ПОЧТОВЫЙ_СЕРВЕР
          МАЗДАЙНЫЙ_ДОМЕН_КОНТРОЛЛЕР
          etc.

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

    Такими HOWTO хоть пользоваться можно будет.

     
     
  • 2.46, olmeriname.com (?), 18:10, 17/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Есть ИДЕЯ!
    >Организовать коллекцию рабочих конфигураций на разные случаи жизни. Не писать сотни статей,
    >а открыть несколько конкретных тем.
    >      ВЕБ_СЕРВЕР
    >      ПОЧТОВЫЙ_СЕРВЕР
    >      МАЗДАЙНЫЙ_ДОМЕН_КОНТРОЛЛЕР
    >      etc.
    Даже не просто How-to то и готовые конфиги желательно сделать.
    Или даже готовый pdf с пошаговой инструкцией, чтоб сделал и галочку поставил.

    МАЗДАЙНЫЙ_ДОМЕН_КОНТРОЛЛЕР - это очень шикарная тема.
    Предприятия сейчас пинают чтоб лицензионный софт покупали, а это значит винды. Простой расчет показывает, что:
    Windows Svr Std 2003 w/SP1 Win32 Russian CD 5 Clt - 1000$
    Windows Server CAL 2003 Russian MLP 5 Device/User CAL - 200$
    Итого лицензии на 50 машин - 2800$.

    Может проще все таки не платить пендосам денег, а сделать один раз нормальный конфиг для системы + Samba и инсталлировать его по потребности за 200$ (ну или у кого насколько наглости хватит)

    ПОЧТОВЫЙ_СЕРВЕР - та же лялька
    Exchange Svr Ent 2003 English CD 25 Clt - 6700$
    Exchange CAL 2003 English MLP 5 Device/User CAL - 420$
    Итого на те же 50 машин - 8800$

    Только прежде чем делать надо точно цели поставить.
    Тот же Exchange не только почтовый сервер но и news и средство групповой работы и интегрирование с LDAP-базой (которая в AD)
    И клиент для этого Outlook не только почту перебирает, но и позволяет задания в группе раздавать. Время планировать.

    Вобщем работы (действительно нужной!!!) море.

     
     
  • 3.47, echo (??), 19:21, 17/02/2006 [^] [^^] [^^^] [ответить]  
  • +/

    >Даже не просто How-to то и готовые конфиги желательно сделать.
    >Или даже готовый pdf с пошаговой инструкцией, чтоб сделал и галочку

    Да, было бы клёво.
    Публикация статеек от СУБЖа себя давно изжила.
    Раньше первопроходцев было мало, пионерами были люди технически грамотные и любой опыт был на вес золота.
    Сейчас эти статейки "как я провёл лето у бабушки" уже достали.
    Их мечут как икру тысячами и захламили сеть некомпетентностью и маздайным ламмерством.

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

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

     

  • 1.30, Аноним (-), 19:49, 13/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    dawnshade
    тыб свою статью выложил мыб почитали (:
    ЛОЛ
     
     
  • 2.34, dawnshade (?), 22:04, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > dawnshade тыб свою статью выложил мыб почитали (:
    > ЛОЛ

    А имя написать слабо? или стыдно потом бить будут? Повадились, блин, гадить анонимусы.
    Как обычно, поиском пользоватся онанимусы не умеют. ну и как следствие статей не пишут, вдруг кто узнает?

    P.S. Автору хотя бы за это твердая 5, что не постеснялся написать свое имя. В отличие от. Его основная ошибка в том, что невозможно создать универсальную конфигурацию под нужды всех: кто-то использует одну БД, кто-то вторую; кто-то умеет пользоватся strace, кто-то нет; кто-то mergemaster выполняет раз в день кто-то раз в 2-3 года и пр...
    P.P.S. на визг анонимусов больше не отвечаю.

     
     
  • 3.35, c0x (??), 23:17, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Как правило, чем более опытен пользователь тем более ленив, особенно если дело касается обобщения опыта и изложения сего на общее рассмотрение. Ну ломает его описывать все те грабли, на которые в свое время наступал. Ужо много их очень. Но заприметив несколько ляпов в опусе другого пользователя, просыпается сразу непреодолимая жгучая ревность какая-то, прямо бяда! И начинается обстоятельное обкакивание чужого мнения. Себе в удовольствие, людям на потеху.
     
     
  • 4.36, dawnshade (?), 23:32, 13/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Как правило, чем более опытен пользователь тем более ленив, особенно если дело
    >касается обобщения опыта и изложения сего на общее рассмотрение. Ну ломает
    >его описывать все те грабли, на которые в свое время наступал.
    >Ужо много их очень. Но заприметив несколько ляпов в опусе другого
    >пользователя, просыпается сразу непреодолимая жгучая ревность какая-то, прямо бяда! И начинается
    >обстоятельное обкакивание чужого мнения. Себе в удовольствие, людям на потеху.


    ошибаетесь :)
    я просто уже отошел от чистого администрирования серваков. и все мои грабли теперь отображаются в официальной документации к продуктам.

     
     
  • 5.41, Мартышкин (??), 18:38, 14/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно почитать.
     

  • 1.37, Jay (??), 01:22, 14/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почитал, поделюсь своим опытом Изначально в статье не указано, под что затачи... большой текст свёрнут, показать
     
     
  • 2.38, vorakl (ok), 02:24, 14/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Спешу заверить, что уже несколько месяцев стабильно работает на почтовом сервере... большой текст свёрнут, показать
     
     
  • 3.42, Jay (??), 12:03, 15/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >>Вся инициализация консоли для сервера может быть опущена.
    >
    >Не скажи, я люблю наблюдать украинский язык по ssh ;o

    Открою секрет ;) При работе по ssh/telnet эти настройки не используются. То, что описано в rc.conf - это только настройки локального syscons'a. А при работе через ssh практически все будет зависеть от LANG и немного от TERM :) Единственное, зачем это может пригодиться на сервере - если у вас есть логи с национальными символами, которые вы просматриваете на мониторе или serial-консоли.

    >Этот пункт (вернее, его отсутствие)стоил мне когда-то двух бессонных недель...
    >Если запретить вход всех кроме
    >
    >/etc/login.access:
    >-:ALL EXCEPT user1 user2:ALL
    >
    >то раз в неделю, в 4:15, периодический скрипт /etc/periodic/weekly/310.locate пытается выполнить комманду
    >от имени nobody, переходя в него через su -fm nobody и
    >получает запрет. В лог пишется сообщение о неудачной авторизации и админ
    >начинает сходить с ума...

    Ну как вариант, наверное, можно явно разрешить юзеру nobody логиниться локально.. Просто опять же при обновлении системы придется объяснять mergemaster'у, что тут все так и задумано :) Лишняя энтропия в системе :)

    --
    Jay

     
     
  • 4.43, Осторожный (?), 06:32, 16/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >>/etc/login.access:
    >>-:ALL EXCEPT user1 user2:ALL
    >>
    >>то раз в неделю, в 4:15, периодический скрипт /etc/periodic/weekly/310.locate пытается выполнить комманду
    >>от имени nobody, переходя в него через su -fm nobody и
    >>получает запрет. В лог пишется сообщение о неудачной авторизации и админ
    >>начинает сходить с ума...
    >
    >Ну как вариант, наверное, можно явно разрешить юзеру nobody логиниться локально.. Просто
    >опять же при обновлении системы придется объяснять mergemaster'у, что тут все
    >так и задумано :) Лишняя энтропия в системе :)

    Не придется - mergemaster нормально понимает

    /etc/login.access:

    +:root toor nobody mysql:LOCAL
    .... себя добавить ....
    -:ALL:ALL

     
     
  • 5.44, Jay (??), 01:13, 17/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Я имел в виду изменения в скрипте /etc/periodic/weekly/310.locate. Суть та же, но кроме login.access (он в статье все равно изменяется) придется еще и про 310.locate рассказывать mergemaster'у лишний раз.

    --
    Jay

     
     
  • 6.45, vorakl (ok), 11:02, 17/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > Я имел в виду изменения в скрипте /etc/periodic/weekly/310.locate.
    >Суть та же, но кроме login.access (он в статье все равно изменяется)
    >придется еще и про 310.locate рассказывать mergemaster'у лишний раз.

    Справедливо. Учтено.

     

  • 1.48, vorakl (??), 01:18, 19/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Благодарю Всех за комментарии и отзывы!
    Неточности я постарался исправить.
    Откровенно говоря, не ожидал, что статья вызовет такую дискуссию... Буду очень рад, если она кому-то пригодится. 8-)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру