Призрак дома на холме
Слово «портал» в его классическом значении означает вход в здание. В Интернете «зданием» может быть совокупность информации по заданной теме либо свалка самых разных данных, не объединенных ничем, кроме интереса посетителей. Порталы первого типа называются вертикальными, вторые — горизонтальными.
На заре веба больше были распространены порталы второго типа — с их заглавных страниц можно было попасть и в чат, и в прогноз погоды, и в виртуальную службу знакомств. В подобных монстров имели склонность превращаться популярные поисковые системы типа Yahoo1 или Lycos. Всеядность сейчас неактуальна — бо,льшая часть пользователей таких систем уже поделена и у начинающего вертикального портала шансы на популярность значительно выше, чем у горизонтального. Конечно, при условии, что тема, которой посвящен портал, интересна кому-то, кроме его создателя. Вдобавок рекламодателей зачастую привлекают именно тематические порталы — их аудитория более четко очерчена и предсказуема.
Это все сухая теория и идеальные случаи — сам термин давно девальвировался, и теперь каждый веб-мастер, объединивший на своей странице ленту новостей, доску объявлений и фотогалерею с форумом, волен называть свое творение порталом. Самостоятельное изготовление сайтов такого класса с нуля — большая и кропотливая работа, поэтому появился целый пласт программных продуктов, позволяющих ручной труд свести к минимуму и автоматизировать все, что можно. Такие программы получили название CMS (Content Management System — системы управления контентом) и, как водится, бывают платными и бесплатными. Из платных в русском сегменте Сети наиболее известны Saitistica, DynaSite, Communiware, Imprimatur (см. врезку «Большие братья». — Прим. ред.). В данной статье нас больше будут интересовать бесплатные CMS, в которых также нет недостатка. В самих порталах недостатки, к сожалению, есть2.
Все рассмотренные ниже порталы — это разные реализации одной и той же концепции, которую вывел в люди сверхпопулярный Slashdot.org (рис. 1). В основе портала — лента новостей. Обычно она располагается в центральной части страницы — новости публикуются либо полностью, либо со ссылкой на полную версию материала. Как правило, каждую новость пользователи могут обсудить между собой — после каждого материала размещена ссылка на соответствующий тред. Наполнять ленту новостей могут как администраторы, так и привилегированные категории пользователей.
Справа и слева лента окружена небольшими функциональными блоками (главное меню, блок голосования, список самых популярных обсуждений и т. д.). Администратор CMS может как угодно жонглировать блоками — добавлять свои собственные блоки, удалять блоки, установленные по умолчанию, и менять их местами.
Описанная схема очень популярна в силу своей модульности: на базе подавляющего большинства CMS, реализующих подобный подход, можно построить удобный, функциональный и — несмотря на применение типового решения — достаточно оригинальный сайт.
Прежде чем перейти к описанию CMS, кратко опишем критерии оценки систем управления контентом. В первую очередь, нужно оценить косвенные затраты при установке системы. Бесплатная CMS вполне может влететь в копеечку, если требует для работы платного ПО (но такие случаи скорее исключение — разработчики следят за «чистотой» своих продуктов). Кроме того, сложная в установке и обслуживании система может просто-напросто оказаться невыгодной — оплата труда администраторов съест все сэкономленные на покупке деньги.
Хорошо бы предварительно узнать, как работает CMS — формирует ли она статистические страницы или создает их в реальном времени, храня всю информацию в БД. Первый способ заметно снижает нагрузку на БД и облегчает индексирование сайта поисковыми системами, но способствует раздуванию сайта на сервере (а оплачивая хостинг, мы платим не только за трафик, но и за объем сайта). Динамическое создание страниц влечет за собой невозможность регистрации в отдельных поисковых системах и повышает нагрузку на сервер. Разумеется, при низкой посещаемости и малом объеме сайта существенной разницы между двумя подходами к формированию страниц нет.
Важнейший критерий — популярность системы. CMS может быть плохо написана, полна ошибок, крива в настройках, но при этом популярна. И такая система лучше CMS, написанной по всем канонам программирования, которая никогда не падает (чего, в общем-то, не бывает). Дело в том, что сила CMS в модульности. У самих разработчиков времени на дополнительные модули не хватает — их пишут всем миром. И чем система популярнее, тем модулей больше. А значит, больше возможностей настроить ее под свои нужды.
Остальные критерии выбора очевидны — удобство администрирования, удобство работы и т. п.
PHP-Nuke
Написан движок на PHP, в качестве базы данных предпочитает MySQL. Разрабатываемый сайт строится из независимых блоков, набор которых формирует хозяин сайта — в крайнем случае он может вообще не знать ни PHP, ни HTML.
PHP-Nuke — флагман на рынке бесплатных CMS. Не благодаря своим достоинствам — просто так получилось. Эта CMS появилась в нужном месте в нужное время и оказалась достаточно качественной, чтобы завоевать доверие пользователей. А дальше — снежный ком дополнительных модулей, существенно повышающих универсальность PHP-Nuke.
Последние изменения в PHP-Nuke — это значительное уменьшение дыр в безопасности и интеграция форума phpBB. Второе решение концептуально очень верное и заметно повышает привлекательность PHP-Nuke (об этом - чуть ниже).
Главный недостаток «Нюка» — личность его создателя. Франсиско Бурси — человек сложный. При том, что релизы PHP-Nuke распространяются по GPL, свежие бета-версии доступны только членам клуба. А членство в клубе платное. Этот факт (помноженный на нежелание Бурси перелопачивать порядком раздувшийся за годы разработки код с целью его оптимизации и обыкновенные человеческие обиды) и стал причиной откола части разработчиков, которые на базе PHP-Nuke создали отдельный продукт PostNuke.
PostNuke
Его главный идеолог Джон Кокс долгое время помогал Бурси в работе над PHP-Nuke. PostNuke не первый осколок PHP-Nuke, но, пожалуй, это самый амбициозный дочерний проект.
К сожалению, сегодня рекомендовать PostNuke как движок для сайта нельзя. Разработка ведется очень бурно, и от версии к версии движок очень сильно модернизируется. Сторонники PostNuke активно противопоставляют его PHP-Nuke, однако для реальной работы — если только вы не любитель веб-программирования — он пока малопригоден. Причем «пока» может затянуться. Дело в том, что в сообществе разработчиков PostNuke тоже произошел раскол, и сильнейшие из них (в том числе и Кокс) затеяли новый проект — Xaraya.
Несмотря на все недостатки PostNuke как начинающего проекта, на нем уже крутится довольно много сайтов. И даже написано значительное количество дополнительных модулей, хотя, конечно, до PHP-Nuke ему как до Луны.
SlashCode
Наверняка большинство наших читателей видели SlashCode в действии — Slashdot.org построен именно на нем. Первую версию SlashCode написали небезызвестные для постоянных читателей Slashdot.org CmdrTaco и CowboyNeal. Писали для себя — когда запускался Slashdot.org, бесплатных CMS практически не было. Небывалая популярность сайта спровоцировала интерес и к движку, на котором он крутится. Сейчас развитием SlashCode занимается организация со страшным названием Open Source Development Network. Код пишется, как и положено в нормальном open source-проекте, в складчину.
Главное достоинство SlashCode — с честью выдержанное испытание временем. Этот скрипт совершенно точно выдюжит и колоссальный наплыв посетителей, и постоянные атаки — со всеми подобными проблемами на
SlashDot уже сталкивались. Ко всему прочему в SlashCode заложена остроумная система автомодерирования, в которой модератором может стать любой пользователь. Сообщения при этом не удаляются, а оцениваются, а значит, у сообщений с высоким рейтингом больше шансов быть прочитанными. Чтобы избежать злоупотреблений, на модерирование «своими руками» введены некоторые ограничения: у модератора — конечное количество баллов, которые он может раздать за ограниченный отрезок времени. Подобный механизм есть и в PHP-Nuke со товарищи, однако в SlashCode автомодерирование реализовано лучше.
Все вышеперечисленные CMS хороши (собственно, тремя яркими представителями их круг не ограничивается — портальных систем сегодня великое множество), но у них ограниченные возможности по поддержке сообщества пользователей. Дело в том, что посетители таких ресурсов могут обсуждать только материалы, размещенные на сайте. А посетители, как правило, не прочь поговорить о чем-нибудь еще. Им только волю дай.
Я пришел дать вам волю
Бесплатных форумных движков на сетевых просторах раздают много, выбирай не хочу. У каждой системы есть свои поклонники, готовые глотку перегрызть приверженцу другой. Большинство форумов написано на PHP или Perl, реже — на Java или ASP. Обычно форум хранит всю информацию, вносимую пользователями, в БД. Самая популярная технологическая связка — PHP+MySQL.
Набор сервисов предлагается примерно одинаковый: предельно простая процедура установки, возможность администрирования через веб-интерфейс, регистрация пользователей, отключение провинившихся по имени или адресу, собственные коды разметки либо возможность ограниченно использовать html-код в репликах, разноцветные легкозаменяемые «скины» (цветовые и графические решения), возможность выражать эмоции при помощи смайликов и т. д. Разница сводится к наличию или отсутствию удобных механизмов для сообщества разработчиков — если для них созданы комфортные условия, то не будет проблем и с языковыми локализациями форума, и с созданием скинов3.
Для примера рассмотрим скрипт phpBB (не рекламы для, а как типичного представителя). Загружаем с сайта разработчика последнюю версию, распаковываем, запускаем из браузера install.php; следуя получаемым инструкциям, проходим процесс инсталляции, то есть выбираем БД (на выбор предлагается пять вариантов), заносим имя/пароль доступа и прочие данные. После первоначальной установки всегда можно зайти в форум с администраторскими правами и произвести тонкую настройку — выбрать язык (для подключения дополнительных языков следует скачать и положить в нужное место соответствующий пакет файлов), настроить цвета, привилегии пользователей, назначить модераторов разделов.
На сайте форума (www. phpbb.com/phpBB) можно обсудить возникающие проблемы, пообщаться с разработчиками и при желании поучаствовать в написании форума. Разумеется, всегда доступны последние версии движка, патчи для исправления ошибок, пакеты для перевода интерфейса на множество языков — разве что суахили не представлен, огромное количество вариантов оформления.
Бесплатные движки, как правило, имеют открытый программный код. Конструктивные действия со стороны программистского сообщества всячески приветствуются — для этого обычно создаются все условия на сайте разработчика. Не ленитесь время от времени туда заглядывать, если выбрали бесплатный форум, — там можно получить информацию о недавно найденных изъянах — в частности, в системе безопасности. Это важно, ибо из-за дыры в форуме может пострадать весь сервер.
Разумеется, одним phpBB список бесплатных форумов не ограничивается. Уделять каждому из них значительное место в статье, наверное, излишне, но перечислить стоит:
Ikonboard
(www.ikonboard.com)
Немецкий табличный форум. Это не открытая разработка, стать соразработчиком не получится, зато все остальные прелести открытого кода присутствуют. Очень неплохой форум. Приятен тем, что поддерживает PostgreSQL, которая мощнее, чем MySQL (к тому же поддержка MySQL реализована в Ikonboard не слишком удачно). При малом трафике может работать без подключения к БД, что актуально для тех, кто размещается на бесплатном хостинге. Бесплатен, однако удаление копирайтов со страниц стоит 250 долларов.
Минимальные требования к системе: 20 Мбайт свободного места на диске, Perl 5.004 или выше, CGI.pm 2.4 или выше.
Конфигурация для высокого трафика: 50 Мбайт свободного места, Perl 5.6, CGI.pm 2.4 или выше, связка DBD/DBI, СУБД mySQL или PostgreSQL, включенный mod_perl, включенный mod_gzip.
YaBB
(www.yabbforum.com)
Придуман не от хорошей жизни. Как рассказывают старожилы, в июле 2000 года Зефу Хемелу (Zef Hemel) потребовался скрипт форума. После поисков в Сети Хемел остановился на двух скриптах: бесплатном форуме UltraBoard и Ultimate Bulletin Board (UBB), за который нужно было отдать почти 200 долларов. Разумеется, хозяйственный Зеф выбрал бесплатный вариант, однако вскоре столкнулся с тем, что функциональности форума ему не хватает. В итоге пришлось-таки писать еще один скрипт форума самому. Отсюда и название — Yet Another Bulletin Board.
Сначала Зеф тешил себя надеждами, что от желающих обзавестись его детищем отбою не будет, однако когда выяснилось, что массы веб-мастеров вовсе не желают покупать YaBB, предпочитая более раскрученные решения, не стал лезть в бутылку, а просто выложил исходники форума. В настоящее время Зеф разработкой уже не занимается, однако форум развивается до сих пор, благодаря усилиям энтузиастов.
Изначально предполагалось, что форум будет древовидный, но со временем YaBB стал так похож на UBB, что многие искренне полагают, будто YaBB — это бесплатный клон знаменитого скрипта. Стоит отметить, что в разное время к YaBB приложили руки известный UBB-хакер4 Энди Томака (Andy Tomaka) и будущий разработчик Ikonboard Мэтт Мичем (Matt Mecham). Правда, участие Мичема в собственных проектах приводит к более впечатляющим результатам — YaBB при росте трафика частенько падает.
Конфигурация: Perl 5 или выше, CGI.pm 2.4 или выше, Socket.pm, как минимум 1 Мбайт свободного места на сервере, Sendmail или SMTP (необязательно).
Помимо оригинальной версии существует порт YaBB на связке PHP+MySQL. Называется он YaBB SE (www.yabbse.org) и тоже абсолютно бесплатен.
Invision Power Board
(www.invisionboard.com)
Стремительно набирающий популярность клон Ikonboard. Запущен в свет Мэттом Мичемом, уволившимся из компании Jarvis Entertainment Group в начале прошлого года. В отличие от Ikonboard написан на базе связки PHP+MySQL. Форум практически бесплатен. Если вы хотите убрать копирайты со страниц, придется заплатить 99 долларов за лицензию. Если копирайты не смущают, то и платить ничего не нужно.
Конфигурация: PHP 4.0.3 (а лучше 4.1) и mySQL 3.22 или выше. И, конечно, Apache, обязательный для всех скриптов.
Все описанные скрипты форумов очень похожи друг на друга — где-то функциональность больше, где-то меньше, но в принципе каждый из них обеспечивает определенный минимум как для администратора и модераторов, так и для пользователей. Это неудивительно. На рынке форумов присутствует два старожила, которые и задают общий тон уже несколько лет: UBB и vBulletin.
UBB (здесь и далее речь идет о самом распространенном варианте: UBB.classic) написан на Perl и не требует для своей работы наличия БД, что позволяет размещать этот форум даже на очень аскетичных хостах (включая и некоторые бесплатные). Однако поскольку вся информация хранится в текстовых файлах, это неявно ограничивает развитие конференции: при росте числа посетителей и общего трафика неизбежно наступит момент, когда вы поймете, что конференция «не тянет». Все успешные установки UBB с высоким и очень высоким трафиком сильно «подкручены» администраторами под свои нужды. Некоторые настолько изменены, что при убранных копирайтах не сразу и поймешь, что когда-то это был UBB.classic.
На сайте компании Infopop (www.infopop.com) об этом, разумеется, нет ни слова. Зато есть продукт, который обещает бо,льшую масштабируемость. Написан он на связке PHP+MySQL и называется UBB.threads.
Существует три варианта поставки UBB.classic: Standard (199 долларов), Silver (475 долларов) и Gold (699 долларов). С технической точки зрения никаких отличий между этими вариантами нет, разница в стоимости обусловлена сроком и качеством поддержки. Так, владельцу «золотой» версии UBB гарантирована срочная поддержка в случае возникновения технических трудностей и пожизненные бесплатные апгрейды. Покупателю Standard обновления будут бесплатно высылать только в течение года после покупки, а на его зов служба поддержки может откликнуться дня через два. Продажи UBB.threads ведутся по той же схеме, но сам форум чуть дороже: стандартная версия обойдется в 229 долларов, серебряная — в 499, а золотая — в 725. Существует также бесплатная версия UBB.classic, однако функциональность ее настолько ограничена, что единственная польза, которую можно получить от скрипта, это проверить на деле, подходит ли данный хостинг для размещения на нем UBB.
Ближайший конкурент Infopop — британская компания Jelsoft, продвигающая форумный скрипт vBulletin (www.vbulletin.com). Наряду с UBB это самый популярный коммерческий движок для форума. vBulletin изначально написан на PHP+MySQL, поэтому никаких значимых ограничений на размер базы не имеет (по крайней мере, о проблемах, связанных с ограниченной масштабируемостью vBulletin, нам ничего не известно).
У Jelsoft другая (и, как представляется, более разумная с учетом засилья бесплатных скриптов) ценовая политика. Во-первых, скрипт можно просто арендовать на год — при этом покупатель получает полностью весь код и права зарегистрированного пользователя, однако через год он обязан либо продлить контракт, либо выкупить форум, либо перестать его использовать. Второй вариант — обычная покупка. Аренда обходится вдвое дешевле покупки и стоит 85 долларов.
Платные системы имеют все преимущества и недостатки, присущие коммерческим программным продуктам. С одной стороны, производитель дает какие-никакие, но гарантии. С другой — хочет взять ваши деньги. И деньги не очень маленькие. И у той, и у другой системы есть, конечно, «ломаные» варианты — доводилось и видеть, и исследовать код — но мы же с вами честные люди!
Несколько замечаний по поводу — на случай если мы честные, но очень экономные. Достать исходники UBB или vBulletin нетрудно. Однако не факт, что стоит их использовать. Дело в том, что и Jelsoft, и Infopop ревниво относятся к незаконному использованию своих продуктов и отслеживают форумы, работающие на пиратских версиях движков. Если такой форум попался на глаза работников Jelsoft или Infopop, то проблемы с хостингом обеспечены — ни один нормальный хостер не станет ссориться с фирмами из-за вашего форума. В лучшем случае вас предупредят об ответственности и потребуют немедленно поменять движок или оплатить уже установленный, в худшем — просто снесут форум со всеми сообщениями.
Способ борьбы довольно прост. Нужно, чтобы «инфопоповцы» и «джелсофтовцы» не узнали свои собственные форумы. Для этого необходимо:
1 убрать все копирайты из кода;
2 по возможности изменить внешний вид форума (по крайней мере, убрать дефолтный скин);
3 изменить названия папок, в которых хранится форум;
4 в случае с vBulletin — убрать несколько строчек из кода или поставить уже подправленную версию (исправленные пиратские архивы vBulletin обычно содержат в названии «nullified»).
Пренебрежение последним советом приведет к тому, что в Jelsoft очень скоро узнают о вашем форуме, какие бы изменения вы в нем ни произвели.
А теперь подумайте, нужно ли вам это? Если нет денег, то гораздо проще и, простите, дальновиднее поставить бесплатный форум, благо качество их если и ниже, то не намного.
All Together Now!
Мы уже говорили о том, что форум нужен для создания полноценного сообщества. Если возможность комментировать новости формирует костяк сообщества пользователей с определенными интересами, то форум позволяет это сообщество несколько расширить за счет посетителей, которые не слишком интересуются основной тематикой ресурса, и укрепить «межпользовательские» связи. Понятно, что идеальным решением для ресурса был бы вариант, когда комментарии к новостям реализовывались тем же скриптом, что и основной форум, а переход от комментирования новостей к обсуждению общих тем и наоборот был бы наиболее прозрачным.
Стандартного решения здесь пока не существует, но оно вот-вот появится. Выше мы писали об интеграции PHP-Nuke с phpBB, однако этим дело не ограничивается. Разработчики phpBB в настоящее время параллельно ведут работу над амбициозным проектом phpBB Portal, в котором форум будет интегрирован изначально. Когда его доделают, неизвестно — на все вопросы следует ответ «это будет сделано, когда будет сделано». Пока же можно довольствоваться неофициальными и полуофициальными склейками существующих движков. Помимо PHP-Nuke можно посмотреть, например, на vbPortal (www.vbportal.com), построенный на движке vBulletin.
В рамках статьи мы не затронули блоги. И вот почему. При всей уникальности этого явления, с технической точки зрения блоги мало чем отличаются от порталов (например, SlashDot. org, который мы рассматривали как портал, очень часто называют блогом) и часто позиционируются как сервис (LiveJournal, Blogger). Во втором случае речь идет, как правило, о личных страничках, для создания которых от пользователя не требуется каких-то технических навыков. По сходным причинам практически ничего не сказано о возможности арендовать форум у хостера. Для полноты картины приводим таблицы тестирования «удаленных» форумов, равно как и результаты тестирования ASP5-форумов.