[советы по созданию динамического сайта]материал подготовил: Дмитрий Турецкий 16.04.2003
Необходимое вступление: ни в коей мере не хочу сказать, что являюсь (или считаю себя) «гуру» в области администрирования сервера, настройки баз данных и т.п. Просто, возясь со своим сайтом вот уже более семи лет и пройдя практически все этапы от сделанной на коленке и вручную обновляемой домашней странички до собственного сервера с динамическим сайтом, накопилось много заметок о всевозможных «граблях» по которым я уже прошел (а также некое видение тех граблей, к которым еще только приближаюсь)… И я подумал, что кому-то эти заметки могут оказаться полезны. Стоит учесть и то, что эта заметка ни в коей мере не является всеобъемлющей — большинство из затрагиваемых тем заслуживают не абзацев, а книг…
итак, начнем. Первый вопрос, который возникает сразу после появления идеи создать динамический сайт — это выбор платформы, СУБД, веб-сервера и языка программирования.
По поводу платформы и сервера я придерживаюсь традиционного мнения, что ничего лучше сочетания freeBSD + Apache еще не придумали. Не буду ни на чем настаивать и вступать в дискуссии — я заранее согласен с мнениями, что у меня просто руки кривые и я не могу грамотно настроить NT + IIS (я действительно не очень много возился с подобным сочетанием), но все мои (да и не только мои) эксперименты показали, что BSD и Apache намного устойчивее и производительнее. Линукс тоже неплох, но по мнению админов, использующих его под большой нагрузкой, — там требуется очень тщательная настройка (сам я веб-сервер на Линуксе никогда не поднимал, если не считать маленького сервера для тестирования интранет-сайта, но там нагрузка была почти нулевая). С другими версиями UNIX я вообще никогда не сталкивался, так что ничего умного не скажу.
К преимуществам UNIX-платформ, помимо устойчивости, можно отнести еще бесплатность, большое количество документации (правда, большая часть этой документации на английском) и просто невообразимое число всевозможных модулей, скриптов и программ, которые могут пригодиться при разработке сайта.
Выбор СУБД — штука очень ответственная. Миграция баз данных занятие весьма неприятное и требующее кучи усилий и знаний, так что этому вопросу (выбору, а не миграции) стоит посвятить побольше времени. Разумеется, основным критерием тут является ваш программист — какую систему он знает лучше, ту и стоит использовать. Хотя стоит учитывать и объективные параметры…
Увы, специалистом в базах данных я тоже не являюсь. Знаю, что для больших промышленных систем обычно используют Oracle, но никогда с ним не работал. А для сайтов «младшего и среднего класса» наиболее популярными являются MySQL и PostgreSQL. Вопрос о преимуществах этих баз друг перед другом в Сети встречается очень часто, поэтому попробую кратко высказать свое мнение (опять же не претендующее на объективность и полноту).
Обе базы сравнительно просты в установке и настройке, но у Postgres’а настроек побольше и, соответственно, для его «доведения до ума» потребуется больше усилий. Хотя на относительно небольших сайтах и та и другая СУБД будут без проблем работать с настройками по умолчанию. У PostgreSQL больше «продвинутых» функций, которые сильно облегчают жизнь, например, JOIN, VIEW и т.п. MySQL очень хорошо и быстро работает с простыми выборками (SELECT), но значительно быстрее «ложится» если в таблицу часто что-то пишется: при записи блокируется вся таблица, а не одна строка, как в Postgres’е. Устойчивость обоих СУБД примерно одинакова (хотя, пожалуй, PostgreSQL лучше восстанавливается при возникновении проблем, но если уж он не смог восстановиться, то проблемы теперь у вас!). Недостатком Postgres’а можно считать сравнительно большое время, которое он тратит на установление соединения с клиентом, но при использовании persistent connections (т.е. подключений, которые не закрываются при окончании работы скрипта) этот недостаток исчезает.
В целом обе СУБД активно двигаются навстречу друг другу — Postgres увеличивает производительность (что весьма заметно при выходе новых версий), а MySQL добавляет функциональности, стараясь п