Архивы: по дате | по разделам | по авторам

Желтый двигатель

Архив
автор : Валерий Яценков   11.05.2006

Современный сайт представляет собой не просто подборку html-страниц, связанных гиперссылками, а единую систему c множеством функций, управляющих его содержанием. Такую систему принято называть CMS (Content Management System).

Современный сайт представляет собой не просто подборку html-страниц, связанных гиперссылками, а единую систему c множеством функций, управляющих его содержанием. Такую систему принято называть CMS (Content Management System).

В статье Родиона Насакина об интернет-магазинах ("КТ" #10 от 14.03.06) показано, зачем может понадобиться CMS. Но это лишь один вариант ее применения. Корпоративные сайты-визитки или персональные сайты тоже нуждаются в системе управления содержанием. Зачем? Хотя бы затем, чтобы на порядок снизить трудоемкость создания сайта и повысить его качество при минимальных затратах[В случае бесплатной CMS и самостоятельного управления сайтом затраты сведутся только к оплате хостинга]. Вы наверняка получали спам, в котором предлагают изготовить "сайт-визитку" или "интернет-представительство фирмы" буквально за 24 часа, причем с динамически изменяемым содержанием и кучей полезных опций. Разумеется, создание сайта в этом случае сведено к примитивному вводу содержания, предоставленного заказчиком, и косметическим изменениям шаблонов дизайна.

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

Трудности выбора

CMS - это прикладное программное решение, и выбирать его следует в соответствии с вашими требованиями. Если вы намерены открыть сложный корпоративный портал, имеющий большое имиджевое значение для владельца, то разумнее приобрести коммерческую CMS и нанять персонал для работы с нею. А если вы хотите создать сайт небольшой фирмы или клуба любителей хомяков, то лучше взять бесплатный продукт, коих существует множество - в частности, PostNuke и прочие клоны PHP-Nuke; Xoops и его семейство; Xaraya, Mambo, Plone… В общем, ассортимент широкий, поэтому выбор будет субъективным.

Недавно я попал в жуткий цейтнот: мне пришлось радикально обновлять сайт своей родной фирмы и в то же самое время делать сайт авторской поддержки собственных книг, с которого читатели могли бы скачать исходные тексты программ и коды прошивок для микроконтроллеров. Схватившись за соломинку, коей стали одобрительные отзывы на различных форумах, я выбрал не слишком известную, но быстро набирающую популярность систему е107. Пример сайта, сделанного на е107 буквально за два-три вечера после скачивания дистрибутива и при полном отсутствии дизайнерских трудов, вы можете увидеть на www.picman.ru. Самый простой способ визуального сравнения разных CMS - посетить их официальные сайты. Разумеется, эти сайты основаны на тех движках, которым посвящены. Не ленитесь читать отзывы на форумах: такому источнику информации трудно подобрать альтернативу. И еще - предусмотрите возможность роста. Если ваш проект начнет задыхаться в рамках выбранной CMS, то для перехода на другой движок придется почти все переделывать.

Хостинг

Если вы намерены использовать CMS, то вам подойдет далеко не каждый тарифный план и не всякого хостинг-провайдера. Почти все популярные CMS используют связку PHP и MySQL. Следовательно, ваш тарифный план должен содержать эти опции. У вас должны быть привилегии для создания как минимум одной базы данных MySQL и достаточно свободного места, чтобы занять 3–8 мегабайт дискового пространства под движок, не считая вашего собственного контента. Кроме того, некоторые CMS своими скриптами сильно загружают сервер. Если он и без того вкалывает из последних сил, выберите либо CMS попроще, либо сервер помощнее.

Про бесплатные аккаунты можете сразу забыть. Даже если вы найдете хостинг-провайдера, который предоставит необходимые опции бесплатно, радость не будет долгой. Обычные затруднения: провайдер вдруг сообщает, что бесплатная акция кончилась и со следующего месяца за хостинг нужно платить; устаревшие версии PHP и MySQL (новые только на платных аккаунтах); перегруженный и постоянно падающий сервер; медленный канал; отвратительная техподдержка или ее полное отсутствие. Как показывает опыт, на бесплатных хостингах перечисленные неприятности случаются регулярно и в разных сочетаниях.

Минимальная стоимость аккаунта со всеми нужными опциями колеблется в пределах 6–8 долларов в месяц. Для бизнесмена это ничтожная сумма, но школьника или студента она может здорово напрячь. Даже если вы найдете приятеля, который имеет аккаунт с поддержкой MySQL и готов предоставить вам необходимые данные для удаленного подключения к его БД с вашего аккаунта, - ничего не выйдет. Хостинг-провайдеры умеют считать деньги не хуже вас, и если аккаунт не поддерживает MySQL, то соответствующие функции интерпретатора PHP вам заблокируют. Останется лишь клянчить деньги у спонсоров или вводить на сайт коммерческую составляющую (рекламу, платные услуги).

Для начинающего сайтовода имеет большое значение качество технической поддержки. Сколь ни проста будет CMS, но при эксплуатации аккаунта обязательно возникнут вопросы. Если не хотите на пару дней заморозить работу над созданием сайта в ожидании ответа или получать раздраженные отписки, то при прочих равных условиях выберите хостера с самой дружелюбной техподдержкой. На мой взгляд, российские платные хостинговые услуги в целом неплохи, и если вы не предъявляете каких-то экзотических требований, то размещать сайт следует у нашего хостера[Кстати, техподдержка будет на русском языке].

Функциональность

CMS бывают универсальные и специализированные. Но в любом случае разработчики стараются строить систему по модульному принципу, дабы развитие сайта не потребовало глубокой переработки. Большинство CMS, особенно бесплатных, позволяют подключать плагины сторонних разработчиков. Как правило, если плагин не является коммерческим (фотогалерея, форум, блог, статистика посещений), он распространяется бесплатно. Если же нужен скрипт или плагин, решающий задачу коммерческого свойства или полезный только вам, то его напишут для вас за деньги. Программистов можно найти на форуме сайта, поддерживающего систему. Зачастую это люди, принимающие непосредственное участие в разработке CMS и знающие ее "изнутри". Расценки для мелкого бизнеса приемлемые (40–120 долларов за решение задачи малой или средней сложности, 5–10 долларов за мелкую доработку).

Одним из главных достоинств CMS называют простоту ввода и размещения содержания, однако именно здесь могут возникнуть затруднения. Легко вводятся лишь тексты с примитивным оформлением. Каждый, кто размещал сообщения на форумах, знает этот джентльменский набор: цвет и стиль шрифта, возможность вставить ссылку или картинку и… все. Для более замысловатой работы существуют редакторы WYSIWIG, делающие верстку страницы наглядной и предоставляющие более широкие возможности для оформления. Самая большая морока получается при переносе на новую систему готовых html-страниц, поскольку внутренний формат представления страниц в CMS может заметно отличаться от стандартного HTML. Если не повезет, то дизайн страницы будет искажен и понадобится доработка. Следует заметить, что встроенный редактор е107 неплохо "проглатывает" домашние заготовки. Кроме того, для этой и других CMS существуют утилиты подготовки и конвертации содержимого страниц.

Имидж

Второй недостаток CMS - инкубаторская похожесть дизайна сайтов. В состав дистрибутива популярных CMS входят разные типовые заготовки (называемые темами оформления или шаблонами), но их количество ограничено и не все они одинаково удачны. Отчасти положение исправляют дополнительные темы, разработанные энтузиастами. Кроме того, можно придать сайту оригинальность, используя собственные баннеры, флэш-вставки и картинки на страницах. Но если вы попробуете менять детали оформления шаблона, появятся затруднения. Например, в таблице стилей шаблона прописано, что заголовки новостей отображаются шрифтом черного цвета. Это значит, что все заголовки будут черными. Если вы захотите выделить особо важную новость заголовком красного цвета, то не факт, что это получится. Далеко не каждая CMS позволяет без "доработки напильником" менять стиль отдельных элементов шаблона и тем более делать разными элементы одного типа в пределах шаблона. Этот мелкий недостаток является следствием важного достоинства - концепции разделения оформления и содержания: то есть возможности изменить стиль отображения однотипных элементов на всех существующих и будущих страницах сайта при помощи редактирования лишь одного параметра в одной таблице стилей.

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

Безопасность

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

Простейший сайт, созданный человеком, ничего не смыслящим в программировании на PHP или Perl, обычно более устойчив к взлому, чем созданный полупрофессионалом. Звучит парадоксально, однако дело в том, что взлом сайта, не содержащего сложных скриптов и состоящего из нескольких тривиальных html-страничек, по сути, означает взлом сервера хостинг-провайдера. Такому взлому противостоят опытные специалисты. Кроме того, у них больше шансов выследить хакера и устроить ему рандеву с правоохранительными органами. Но если ваш сайт взломают из-за вашей собственной ошибки в программировании, вероятность возмездия будет призрачной, а устранять причину и последствия придется самостоятельно.

Безусловным плюсом готовой CMS является то, что она разработана группой более или менее профессиональных программистов[У некоторых из них имеются в прошлом хакерские грешки]. Они обладают опытом, редко повторяют чужие ошибки и всегда готовы исправить собственные. К их услугам специальные форумы по сетевой безопасности и хакерские конференции, которые вы вряд ли будете посещать. Разумеется, ошибки бывают, но они быстро устраняются благодаря интенсивному общению разработчиков. Выбирая CMS, обратите внимание, насколько живо идет общение на форуме поддержки, особенно в ветке, посвященной безопасности. Если вы узнаете, что была обнаружена серьезная уязвимость, которую устранили в течение недели, это даже лучше, чем отсутствие сообщений об уязвимостях. В сложной системе просто-напросто не может не быть ошибок. Если о них не говорят, значит, либо пока не нашли, либо замалчивают. В е107 около полутора лет назад нашлись дыры, но, к чести разработчиков, их быстро заштопали.

Одинаковость сайтов, объединенных общей CMS, играет дурную роль не только с точки зрения дизайна. Опытный хакер легко определит, на какой системе построен сайт, после чего ему гораздо проще подобрать эксплойт (вредоносную программу, использующую известные уязвимости) или выполнить нужные действия вручную. Кроме того, хакеру доступны исходные тексты скриптов[Впрочем, в покупной CMS тексты скриптов на PHP ничуть не менее доступны, если только не используется шифрование скриптов]. Метода обороны на все случаи жизни не существует, просто нужно соблюдать общеизвестные правила безопасности: отключать сервисные функции и поля ввода, без которых можно обойтись; разрешать посетителям сайта минимум вольностей (особенно это касается использования html и вложенных скриптов); по возможности отключить использование cookies при авторизации. Дополнительные рекомендации можно найти на сайтах поддержки CMS.

Существенной особенностью CMS является необходимость периодически делать резервную копию базы данных. Копия традиционного html-сайта хранится на вашем компьютере и может быть в любой момент заново выгружена на сервер. Если сайт основан на CMS, то наработанное вашими трудами содержание хранится на сервере. Взлом сайта или фатальная поломка сервера могут уничтожить контент без шансов на восстановление. Если же вы храните у себя резервный файл базы данных, то можете восстановить сайт даже быстрее, чем при традиционном механизме. По сути, копия является текстовым файлом с разделителями, в который занесено все содержание БД, представленное в виде текста. Достаточно закачать этот файл на сервер и импортировать в базу данных при помощи специальной утилиты (обычно она входит в набор софта, предоставляемого хостинг-провайдером).

Если к концу статьи у вас сложилось впечатление излишней суетности и сложности работы с CMS, то вы ошибаетесь. Это другая культура и другие методы, к которым следует привыкнуть. Вы почти сразу заметите, как сильно CMS экономит ваши силы и драгоценное время. А такое преимущество игнорировать трудно.

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.