Автор Тема: XAMPP: создание и настройка виртуальных хостов  (Прочитано 19680 раз)

Brego

  • Ветеран
  • *****
  • Сообщений: 566
  • Карма: +93/-1
  • Перебьемся
    • Просмотр профиля
    • MintMem
Уважаемые друзья! По мере выхода новых версий XAMPP данный топик начал угрожающе разрастаться и запутываться. Чтобы выйти из положения, я полностью обновил материал и выложил его по адресу http://mintmem.com/page/xampp-for-linux-part1

Для создания и отработки сайтов на локальной машине под Linux существует, строго говоря, два основных способа: установка серверных компонентов в систему и установка portable-сервера XAMPP.
Если у вас одна машина и на ней стоит одна операционная система "на всё про всё", а разработкой сайтов вы занимаетесь не регулярно, "любительски", и тем более не собираетесь использовать сервер "как настоящий", для доступа извне, правильным способом, безусловно, будет второй.
Что такое XAMPP? Это пакет серверных компонентов, работающий  практически автономно от операционной системы, по принципу известного виндового Денвера. От последнего XAMPP отличается кроссплатформенностью, более богатой комплектацией и еще большей простотой установки и удаления.
Однако в русскоязычном интернете очень мало толковых ресурсов с описанием правильных и несложных методов создания и настройки виртуальных хостов (т.е. локальных сайтов) на платформе XAMPP. Зато есть масса неграмотных, полуграмотных и безответственных статеек, способных только запутать новичка. Я знаю, что говорю, сам путался предостаточно.
Предлагаю пошаговый хэлп, выстраданный на собственной шкуре. (Кстати, такого способа я нигде не встречал, так что может быть, я первый?! было бы круто).

1. Установка XAMPP.
    Берем XAMPP здесь: http://www.apachefriends.org/en/xampp-linux.html (на момент написания данного топика была актуальна версия 1.7.7, любую версию можно скачать отсюда).
Установка версий до 1.8.1 включительно:
переходим в директорию, куда его скачали и даем команду sudo tar xvfz xampp-linux-1.7.7.tar.gz -C /optили же в mc (запущенный под рутом, sudo mc) входим в архив как в директорию и копируем папку lampp в директорию /opt.  В распакованном виде он занимает немало места, более 280 Мб.
Установка версий начиная с  1.8.2:
переходим в директорию, куда его скачали, чмодим пакет (т.е. даем ему права на исполнение) командой (примеры приведены конкретно для версии 1.8.2, подставьте имя своего пакета) sudo chmod 755 xampp-linux-1.8.2-0-installer.runзапускаем инсталлятор: sudo ./xampp-linux-1.8.2-0-installer.run
XAMPP установлен.
Удаление XAMPP еще проще: удалите (с правами рута) папку /opt/lampp со всем ее содержимым, и все дела.

2. Запуск/остановка XAMPP.
    Запуск: sudo /opt/lampp/lampp start
    Остановка: sudo /opt/lampp/lampp stop    Рестарт: sudo /opt/lampp/lampp restart Если вам (как мне) лениво каждый раз забивать всё это в консоли, смастерите ярлыки на раб.стол, или сделайте алиасы или т.п.
 Компоненты XAMPP можно запускать и по отдельности, за всеми командами прошу сюда: http://www.apachefriends.org/en/xampp-linux.html#382 Страница теперь недоступна...

3. Запустив XAMPP, проверим, всё ли нормально. Для этого в браузере наберем
    http://localhost
и нам откроется знаменитое "Welcome to XAMPP for Linux [version]!"

4. Если вы решите усилить безопасность XAMPP, запаролив всё, что можно, скомандуйте в консоли sudo /opt/lampp/lampp securityи пройдите по шагам весь процесс. Подробности на английском: http://www.apachefriends.org/en/faq-xampp-linux.html#sicherer
Единственный выстраданный совет: не спешите и подробно запишите куда-нибудь в незабвенное место все логины-пароли, которые вы там забьете.

Всё, здесь описанное, относится к старым версиям XAMPP (конкретно 1.7.7). Особенности настройки версий 1.8.1 и позже смотрите ниже

5. Переходим к созданию виртуальных хостов (всё -- под рутом).
        5.1 В файле /opt/lampp/etc/httpd.conf находим и раскоментируем строку #Include etc/extra/httpd-vhosts.conf (она должна быть где-то 480-ой).
        5.2 В файл /etc/hosts запишем две строки:
        127.0.0.1   localhost xampp
127.0.0.1       brego-desktop
Здесь вместо brego-desktop впишите свое имя хоста (компьютера), которое вы
   можете вывести в консоли командой
   hostname   или
   echo $HOSTNAME   Больше ничего, кроме строк, относящихся к протоколу IPv6, в этом файле не нужно (я закомментировал и секцию IPv6 и живу себе не горюю), однако у вас могут быть и другие нужные строки, в зависимости от настроек интернета. Будьте внимательны, делайте бэкапы!
   Два замечания: вторую строку, если она отстутствует, XAMPP внесет сам, предварительно ругнувшись на ошибку, не следует этого дожидаться;
   некоторые авторы во избежание конфликта адресов советуют изменить адрес во второй строке, напр., так:
   127.0.1.1       brego-desktop   Не знаю, насколько это оправдано, но у меня работает и так, и этак.
        5.3 После любых правок не забываем стартовать/рестартовать XAMPP (на этапе наладки лучше в консоли, чтобы видеть, нет ли ошибок).
        5.4 В папку /opt/lampp/htdocs/xampp/ добавляем свои виртуальные сайты. Для примера возьмем два сайта: mysite1.dev и mysite2.dev (избегайте доменных зон, существующих реально, вроде .com, .org, .cc и т.п. Сверяйтесь со списками доменных зон мира в интернете, напр., здесь)
   Таким образом, наши сайты будут находиться здесь: /opt/lampp/htdocs/xampp/mysite1.dev и здесь: /opt/lampp/htdocs/xampp/mysite1.dev
   Кроме того, внутри папок виртуальных сайтов создайте по папке logs
   Открываться в браузере сайты будут по адресам xampp/mysite1.dev (или localhost/mysite1.dev) и xampp/mysite2.dev (или localhost/mysite2.dev). Но прежде чем рестартовать XAMPP и пытаться открыть их, нужно поработать еще с одним файлом.
        5.5 Открываем его:
   sudo gedit /opt/lampp/etc/extra/httpd-vhosts.conf   и приводим его к такому виду (привожу только незакоментированные строки, остальные должны быть закоментированы)

   NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin admin@localhost
    DocumentRoot /opt/lampp/htdocs/xampp
    ServerName xampp
    ServerAlias www.xampp
    <Directory />
    AllowOverride All
    Order allow,deny
    allow from all
    </Directory>
</VirtualHost>
# Далее идут секции наших виртуальных сайтов
<VirtualHost *:80>
    ServerAdmin admin@mysite1.dev
    DocumentRoot /opt/lampp/htdocs/xampp/mysite1.dev
    ServerName xampp/mysite1.dev
    # Не забудьте создать каталог /opt/lampp/htdocs/xampp/mysite1.dev/logs 
    ErrorLog /opt/lampp/htdocs/xampp/mysite1.dev/logs/mysite1-error_log
    CustomLog /opt/lampp/htdocs/xampp/mysite1.dev/logs/mysite1-access_log common
    <Directory />
    AllowOverride All
    Order allow,deny
    allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin admin@mysite2.dev
    DocumentRoot /opt/lampp/htdocs/xampp/mysite2.dev
    ServerName xampp/mysite2.dev
    # Не забудьте создать каталог /opt/lampp/htdocs/xampp/mysite2.dev/logs 
    ErrorLog /opt/lampp/htdocs/xampp/mysite2.dev/logs/mysite2-error_log
    CustomLog /opt/lampp/htdocs/xampp/mysite2.dev/logs/mysite2-access_log common
    <Directory />
    AllowOverride All
    Order allow,deny
    allow from all
    </Directory>
</VirtualHost>

   В дальнейшем, при добавлении третьего, пятого и т.д. виртуального хоста нам останется только править этот файл, добавляя для каждого аналогичную секцию.
     5.6 Рестартуем XAMPP и набираем в браузере адреса xampp/mysite1.dev и xampp/mysite2.dev. Наши виртуальные сайты должны нормально открываться.

Если кому-то кажется не очень привлекательным такой способ их открытия, могу предложить проделать еще небольшую работу по кастомизации самого XAMPP. Цель состоит в том, чтобы в левой навигационной панели XAMPP были пункты, при нажатии на которые открывались бы наши сайты. Достигается это следующим простым образом.
        5.7 Даем команду sudo gedit /opt/lampp/htdocs/xampp/navi.php   В окрывшемся файле ищем строку <p class=navi>&copy;2002-2011<br>   (если у вас другая версия XAMPP, ищите подобную, напр. в весии 1.7.1 она будет такой:
   <p class=navi>&copy;2002-2008<br>)
   и ПЕРЕД ней вставляем следующее: <!-- Отсюда - сеция виртуальных хостов  -->
   <span class=nh>VirtualHosts</span><br>
   </td></tr>
   <tr><td bgcolor=#fb7922 colspan=1 background="img/strichel.gif" class=white><img src=img/blank.gif width=1 height=1></td></tr>
   <tr valign=top><td align=right class=navi>

   <a class=n target=_blank onClick="h(this);" href=mysite1.dev/>MySite1.dev</a><br>
   <a class=n target=_blank onClick="h(this);" href=mysite2.dev/>MySite2.dev</a><br>&nbsp;<br>
   <!--  Конец секции виртуальных хостов -->
   Тот, кто хоть немного разбирается в html и php, осмотревшись в этом файле, быстро поймет, откуда взялись наши строки :) и уж тем более как их поправить под себя в случае нужды.
   Перезапускаем XAMPP, набираем в браузере xampp и видим на левой панели такую картинку:


Теперь мы можем мышой запустить любой наш виртуальный сайт, совсем как в винде :)
   Понятно, что для добавления новой строчки на навигационной панели для нового сайта надо добавить в файле /opt/lampp/htdocs/xampp/navi.php еще одну строчку вида
   <a class=n target=_blank onClick="h(this);" href=имя-сайта.dev/>название-сайта.dev</a><br>   Если вам обязательно нужно вставить ее после двух уже имеющихся, вырежьте код &nbsp;<br> в конце второй строки и вставьте его в конец третьей, чтобы сохранить отступы и переносы.

    Итак, чтобы теперь добавить еще один виртуальный хост, мы должны:
       добавить в /opt/lampp/htdocs/xampp/ папку с именем нового сайта;
       загрузить в нее файлы сайта, а также создать в ней папку logs;
       добавить в файл /opt/lampp/etc/extra/httpd-vhosts.conf новую секцию с параметрами нового сайта;
       в файле /opt/lampp/htdocs/xampp/navi.php в секции виртуальных хостов добавить новую строку <a class=n ... внеся в нее адрес нового сайта и его имя.

В итоге мы получили систему, которую правильнее было бы назвать системой виртуальных поддоменов. Ее преимущества перед другими известными в том, что она довольно проста, человекопонятна, не требует повторной правки файлов /opt/lampp/etc/httpd.conf и /etc/hosts, а также минимально вторгается в структуру самого XAMPP. А имхо, и наиболее удобна.
« Последнее редактирование: 04 Май 2014, 11:28:17 от Brego »
"Следующая эпоха началась с сожжения всех хроник вместе с хронистами". С. Лем

Brego

  • Ветеран
  • *****
  • Сообщений: 566
  • Карма: +93/-1
  • Перебьемся
    • Просмотр профиля
    • MintMem
Дополнение: решение проблем XAMPP 1.8.1
Появился на свет новый XAMPP 1.8.1, а с ним, как водится, и новые заморочки.
Не открываются виртуальные сайты (мол, прав у нас на это нет).
В файле конфигурации апача /opt/lampp/etc/http.conf в секции <Directory "/opt/lampp/htdocs"> мы видим вместо старого
       AllowOverride All
       
       #
       # Controls who can get stuff from this server.
       #
       Order allow,deny
       Allow from all
 </Directory>
что-то новенькое:
       AllowOverride All
       
       #
       # Controls who can get stuff from this server.
       #
       Require all granted
</Directory>
Тут и зарыта собака, надо полагать.
Теперь достаточно в файле /opt/lampp/etc/extra/httpd-vhosts.conf изменить строки
    Order allow,deny
    allow from all
на
    Require all grantedи наши виртуальные сайты станут опять нормально работать.

Кроме того,  в новом XAMPP не желает открываться phpmyadmin:
Access forbidden!

New XAMPP security concept:

Access to the requested directory is only available from the local network.

This setting can be configured in the file "httpd-xampp.conf".
Лечение такое же: в opt/lampp/etc/extra/httpd-xampp.conf меняем строки
    AllowOverride AuthConfig Limit
     Order allow,deny
     Allow from all
на
    AllowOverride AuthConfig Limit
     Require all granted

после чего не забываем рестартовать XAMPP:
  sudo /opt/lampp/lampp restart
« Последнее редактирование: 15 Май 2013, 08:31:57 от Brego »
"Следующая эпоха началась с сожжения всех хроник вместе с хронистами". С. Лем

ivas

  • Новичок
  • *
  • Сообщений: 9
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
Интересная информация я чайник  сегодня только установил систему лин но мне это пригодится потом так как мне это надо будет но пока  я только знакомлюсь с системой, спасибо за инфу.

Brego

  • Ветеран
  • *****
  • Сообщений: 566
  • Карма: +93/-1
  • Перебьемся
    • Просмотр профиля
    • MintMem
Интересная информация я чайник  сегодня только установил систему лин но мне это пригодится потом так как мне это надо будет но пока  я только знакомлюсь с системой, спасибо за инфу.
На здоровье  :-)
Раз к теме есть интерес, на дняхскоро допишу еще одну модификацию -- создание виртуальных хостов в домашнем каталоге, что многим кажется более удобным.
"Следующая эпоха началась с сожжения всех хроник вместе с хронистами". С. Лем

Brego

  • Ветеран
  • *****
  • Сообщений: 566
  • Карма: +93/-1
  • Перебьемся
    • Просмотр профиля
    • MintMem
Дополнение 2: создаем виртуальные хосты в домашней директории.

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

Выполняем всё как в топике вплоть до пункта 5.1 включительно.
Далее будут некоторые изменения.

5.2
В файле /etc/hosts первые две строки должны быть примерно такие:
127.0.0.1   localhost lampp xampp mysite1.dev mysite2.dev # Если у вас другие имена локальных сайтов, впишите их вместо mysite1.dev mysite2.dev
127.0.1.1   brego-desktop # Здесь вместо brego-desktop впишите свое имя хоста (компьютера)
5.3
Открываем файл httpd-vhosts.conf:
sudo gedit /opt/lampp/etc/extra/httpd-vhosts.confи приводим его к следующему виду (остальные строки должны быть закоментированы):

<Для XAMPP 1.8.1>
[spoiler]
<VirtualHost 127.0.0.1:80>
    ServerAdmin admin@localhost
    DocumentRoot /opt/lampp/htdocs
    ServerName lampp
    ServerAlias xampp
</VirtualHost>

<VirtualHost 127.0.0.1:80>
    ServerAdmin admin@localhost
    DocumentRoot /home/$USER/www/mysite1.dev
    ServerName mysite1.dev
    ServerAlias www.mysite1.dev
    ErrorLog /opt/lampp/logs/mysite1.dev-error_log
    CustomLog logs/mysite1.dev-access_log common
    <Directory />
    AllowOverride All
    Require all granted
    </Directory>
</VirtualHost>

<VirtualHost 127.0.0.1:80>
    ServerAdmin admin@localhost
    DocumentRoot /home/$USER/www/mysite2.dev
    ServerName mysite2.dev
    ServerAlias www.mysite2.dev
    ErrorLog /opt/lampp/logs/mysite2.dev-error_log
    CustomLog logs/mysite2.dev-access_log common
    <Directory />
    AllowOverride All
    Require all granted
    </Directory>
</VirtualHost>
[/spoiler]


<Для старых версий XAMPP 1.7.*>
[spoiler]NameVirtualHost 127.0.0.1:80

<VirtualHost 127.0.0.1:80>
    ServerAdmin admin@localhost
    DocumentRoot /opt/lampp/htdocs
    ServerName lampp
    ServerAlias xampp
</VirtualHost>

<VirtualHost 127.0.0.1:80>
    ServerAdmin admin@localhost
    DocumentRoot /home/$USER/www/mysite1.dev
    ServerName mysite1.dev
    ServerAlias www.mysite1.dev
    ErrorLog /opt/lampp/logs/mysite1.dev-error_log
    CustomLog logs/mysite1.dev-access_log common
    <Directory />
    AllowOverride All
    Order allow,deny
    allow from all
    </Directory>
</VirtualHost>

<VirtualHost 127.0.0.1:80>
    ServerAdmin admin@localhost
    DocumentRoot /home/$USER/www/mysite2.dev
    ServerName mysite2.dev
    ServerAlias www.mysite2.dev
    ErrorLog /opt/lampp/logs/mysite2.dev-error_log
    CustomLog logs/mysite2.dev-access_log common
    <Directory />
    AllowOverride All
    Order allow,deny
    allow from all
    </Directory>
</VirtualHost>
[/spoiler]

Естественно, надо будет везде заменить $USER на ваш логин в системе

5.4
Кроме того, в XAMPP 1.8.1 в файле opt/lampp/etc/extra/httpd-xampp.conf меняем в секции "# since XAMPP 1.4.3" в двух местах строки
    AllowOverride AuthConfig Limit
     Order allow,deny
     Allow from all
на
    AllowOverride AuthConfig Limit
     Require all granted
после чего phpmyadmin должна нормально открываться.

6.
Создаем в домашней директории папку www, а в ней -- папки mysite1.dev и mysite2.dev
куда и загружаем файлы локальных сайтов.

Еще раз: не забываем после всех изменений и правок рестартовать XAMPP

Примечание: XAMPP 1.8.1 даже после правки файла httpd-vhosts.conf при рестарте и закрытии продолжает выдавать предупреждение о том, что у нас что-то там неправильно, однако при этом стартует нормально и локальные сайты запускает без проблем. Где-то на зарубежном форуме мелькнуло, что это, мол, несущественная ошибка и на нее можно наплевать. Я тоже так думаю, но если кто знает больше об этом и отпишется, буду благодарен.
« Последнее редактирование: 21 Июль 2013, 18:21:17 от Brego »
"Следующая эпоха началась с сожжения всех хроник вместе с хронистами". С. Лем

sergey456

  • Новичок
  • *
  • Сообщений: 3
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
Спасибо за информацию, на первых пора помогло, а чуть позже откопал в сети аддон для xammp который позволяет создавать хосты через localhost интерфейс :)
http://www.kutsevalov.name/2013/08/05/xampp-virtual-host-manager-add-on/

Brego

  • Ветеран
  • *****
  • Сообщений: 566
  • Карма: +93/-1
  • Перебьемся
    • Просмотр профиля
    • MintMem
Ответное спасибо за инфу. Пока только бегло посмотрел аддон, и сразу должен сказать, что есть один неприятный момент для линуксоидов: все файлы, где есть великий и могучий, записаны в кодировке cp1251. Оно и понятно, т.к. автор делал эту штуку для Винды и в VirtualHostsManager.php прямо сказал: "Only for XAMPP on Windows". Можно, впрочем, переконвертировать всё это дело в utf-8, не так уж сложно, но вот стóит ли оно того -- не знаю. Ведь и пути для  виртуальных хостов тоже виндовые ('domainsDir' => 'C:/WebServers/Domains/' и т.п.). Это тоже придется переделывать, а там и еще что-то может вылезти, и придется практически переписывать аддон заново  для Линукса.
Но скажу больше: я вообще сильно сомневаюсь в пользе таких "помогалок".
Имхо, один раз разобравшись, хотя бы приблизительно, с устройством какого-либо механизма, потом гораздо легче этот механизм обслуживать, чинить, тюнинговать и т.д. Ну, и по ходу разбираться в нем еще глубже    :-)
Однако поковыряться в аддоне будет любопытно, для общего развития.
"Следующая эпоха началась с сожжения всех хроник вместе с хронистами". С. Лем

sergey456

  • Новичок
  • *
  • Сообщений: 3
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
Я думаю автор сам просто в линуксе не работает, поэтому и не заморачивался. К тому же видно по коду что версия сырая, точнее накидана на скорую руку. Хз, может для тех кто только начинает осваивать программирование это в самый раз. Но меня в принципе устроило, к тому же я так понял, что созданные хосты можно потом допиливать вручную, автоматика ничего не ломает.
« Последнее редактирование: 10 Август 2013, 23:08:59 от Azure »

sergey456

  • Новичок
  • *
  • Сообщений: 3
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
Кстати, почему бы ему не написать чтобы сделал версию для линукс? :))

Brego

  • Ветеран
  • *****
  • Сообщений: 566
  • Карма: +93/-1
  • Перебьемся
    • Просмотр профиля
    • MintMem
К тому же видно по коду что версия сырая, точнее накидана на скорую руку.
Похоже на то. Парень учится кодить на php и тренируется на кошках :) В общем-то, это нормально, все или почти все так начинают.
Кстати, почему бы ему не написать чтобы сделал версию для линукс? :))
Я опять-таки не вижу особого смысла в этой "автоматизации". По сути, вся настройка виртуальных хостов сводится к правке файлов /etc/hosts, httpd.conf и httpd-vhosts.conf. Далее остается брать одну секцию httpd-vhosts.conf и использовать ее как шаблон для добавления нового хоста, -- минутное дело. Автоматизация даст тут ничтожный выигрыш, если вообще даст.
Это -- при условии, что XAMPP используется по назначению, т.е. для локальной отработки собственных сайтов. Случай, когда XAMPP служит для организации внешнего виртуального хостинга с десятками или сотнями сайтов, я не рассматриваю как неправильный, небезопасный и даже безответственный. Для этих целей надо поднимать полноценный сервак, обладать необходимыми знаниями и т.д.
Ну, а так, вообще, из интереса и для самообразования -- почему бы и нет :)

« Последнее редактирование: 10 Август 2013, 21:53:46 от Brego »
"Следующая эпоха началась с сожжения всех хроник вместе с хронистами". С. Лем

Smoke

  • Новичок
  • *
  • Сообщений: 1
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
я скачал готовый веб сервер на xampp отсюда:
http://rutracker.org/forum/viewtopic.php?t=3766531

по локальной сети тестироват сайты.
хосты по Вашему методу не идет, версия 1,7,7 стоит.

прошу помощи.

Brego

  • Ветеран
  • *****
  • Сообщений: 566
  • Карма: +93/-1
  • Перебьемся
    • Просмотр профиля
    • MintMem
Увы, вряд ли могу вам чем-то помочь. Подчеркиваю: я описал установку и настройку  XAMPP на Ubuntu-based Линукс для создания и локального тестирования сайтов, и ни для чего более.
Уж больно заморочено это -- виртуалка, на ней CentOS, на нем XAMPP...
А зачем -- не понятно. Ведь на офсайте XAMPP есть сборки для Винды, и никаких виртуалок не нужно.
Если же имитировать боевой сервер, то не проще ли установить линукс параллельно, на отрезанный раздел (а еще лучше -- на отдельный винт) и на него устанавливать сервер, но уже не XAMPP, а интегрированные серверные компоненты (например, командой sudo apt-get install lamp-server^).
Еще раз скажу: пытаться использовать XAMPP (или Denver) для подъема "настоящего" сервера или даже имитации такового -- имхо, глубоко неправильно.
"Следующая эпоха началась с сожжения всех хроник вместе с хронистами". С. Лем

Brego

  • Ветеран
  • *****
  • Сообщений: 566
  • Карма: +93/-1
  • Перебьемся
    • Просмотр профиля
    • MintMem
Уважаемые друзья!  По мере выхода новых версий XAMPP топик начал угрожающе разрастаться и запутываться. Чтобы выйти из положения, я полностью обновил материал и выложил его по адресу http://mintmem.com/page/xampp-for-linux-part1.
Естественно, я буду поддерживать по мере сил данную тему и здесь, и там.
"Следующая эпоха началась с сожжения всех хроник вместе с хронистами". С. Лем