В первую очередь нам нужно определиться с тем, ЧТО именно мы хотим получить и КАК это нечто должно работать. Проще говоря, нужно определить цели и поставить задачи.
Давайте договоримся, что наша цель – это создание некоего блога для нескольких авторов с использованием системы управления сайтами MODx CMS. Мы реализуем добавление статей, комментирование, отдельные RSS каналы для новостей и комментариев, поиск по сайту и разбиение информации по категориям (тегам) и авторам. Также сделаем несколько отдельных страниц , где напишем информацию об авторах блога, добавим форму обратной связи и создадим небольшую фотогалерею. В определенной степени это типичные запросы для стандартного сайта, поэтому результаты нашей работы могут быть использованы полностью или частично для разработки других сайтов на MODx.
Что нам потребуется для работы?
Во-первых, сама система управления MODx, т.е. установочный пакет с набором разнообразных программных скриптов, который установит нам систему. Скачать установочный пакет можно по этой ссылке modx-0961p2.zip (3.63 Mb). На данный момент текущая версия системы 0.9.6.1.
Во-вторых, веб-сервер, который поддерживает выполнение PHP скриптов. Кроме того, для установки MODx нам потребуется наличие одной базы данных MySQL. Более подробно о требованиях, выдвигаемых к серверу для оптимальной работы MODx, узнать можно здесь. Если сказать кратко, то это самая обычная конфигурация, которая предлагается большинством хостинговых компаний, поэтому проблем с установкой в "боевых" условиях обычно не возникает.
Кстати говоря, для установки MODx ради первого тестирования или обучения необязательно сразу заказывать и оплачивать услуги хостинга. Всегда имеется возможность (и я даже крайне рекомендую сделать это сразу) установить веб-сервер у себя на рабочем компьютере. Опять же я не ставлю целью данного курса объяснение всех деталей веб-разработок, поэтому предлагаю читателям выбор (я считаю, что мои читатели в большинстве своем пользователи MS Windows; пользователям других ОС придется искать руководства по установке веб-сервера в другом месте):
- Вы можете скачать готовый инсталляционный пакет Denwer, который сразу установит вам все необходимое для начала работы, или
- Вы можете скачать отдельно каждую программу: интерпретатор PHP, веб-сервер Apache, сервер баз данных MySQL и набор скриптов phpMyAdmin для удобной работы с базой данных MySQL посредством веб-интерфейса, установить их и настроить для корректной совместной работы.
Лично я бы рекомендовал использовать второй способ, который помогает уяснить некоторые детали работы веб-сервера, а также настроить свой сервер под свои нужды и желания, однако он довольно сложен, поэтому для начинающих веб-разработчиков будет вполне достаточно установки пакета Denwer.
Все вопросы по установке и настройке упомянутых программ я предлагаю задавать в соответствующих им форумах поддержки. Я далеко не эксперт в данных программах… да и, честно говоря, не имею никакого желания вдаваться в эти детали как малозначащие в контексте наших задач.
Теперь я буду считать, что у нас уже имеется настроенный веб-сервер на личном компьютере и/или удаленный доступ к серверу, предоставленный хостинговой компанией. Кроме того, я буду считать, что вы сами смогли разобраться, как создать новую базу данных MySQL и пользователя для этой базы данных (эти данные понадобятся при установке MODx), или получили эту информацию у своей хостинговой компании. У кого еще этого нет – я не виноват. Предлагаю все-таки решить эти вопросы прежде, чем мы перейдем к следующему пункту:
Дизайн для будущего сайта
Поскольку результаты нашей работы не подразумевают коммерческого использования и, к сожалению, прямых доходов в виде живой наличности мне не принесет :), то в данном случае я решил использовать один из бесплатных готовых шаблонов, которые предлагает сайт OSWD.
После недолгих исканий я выбрал шаблон под названием CrystalX. Просто он лично мне понравился и подошел к моим требованиям по содержимому сайта. Я немного подправил этот шаблон и перевел тексты на русский язык, желающие могут посмотреть его либо скачать в архиве ZIP для дальнейшей работы. Как вы видите, шаблон практически полностью удовлетворяет нашим поставленным задачам.
Кодировка: UTF-8!
Ну вот, кое-что у нас уже готово. Теперь давайте вернемся к пакету установки системы управления MODx. Но сначала – небольшое лирическое отступление.
Мое твердое убеждение – все (!) веб-разработчики просто обязаны перейти на использование универсальной кодировки текстов UTF-8. Я не буду описывать преимущества данной кодировки – просто примите как данность, что мы будем работать именно с ней.
Так уж исторически сложилось, что в MODx можно использовать множество разных национальных кодировок, начиная от японской и заканчивая кириллической "windows-1251" a.k.a. "CP1251". По моему мнению – это атавизм, от которого надо жестко избавляться. Что собственно я и проделываю всегда перед установкой новой копии системы управления MODx.
Сейчас разработчики MODx заявляют о полной поддержке системой кодировки UTF-8 и говорят о том, что достаточно всего лишь выбрать эту кодировку при установке системы управления. К сожалению, опыт показывает, что не всегда это срабатывает, и в дальнейшем процессе работы могут оказаться некоторые проблемы с отображением и/или хранением и обработкой текста в базе данных. Однако еще до того, как разработчики включили в установочный пакет кодировку UTF-8, я провел несколько бессонных ночей в поиске решения проблемы кодировок. Решение было найдено на форуме. Теперь, даже когда версия системы увеличилась с 0.9.2.1 до 0.9.6.1, я все еще использую свое, возможно, устаревшее решение. И, что важно, оно работает без сбоев.
Кому было интересно, мог ознакомиться с решением выше по ссылке, а кто спешит вперед – может просто сразу скачать слегка измененный установочный пакет (zip, 3,48 Mb). В данном пакете инсталлятор устанавливает кодировку UTF-8 вне зависимости от того, что захотите вы (ну уж извиняйте, се ля ви). Кроме того, я переименовал файлы ht.access в .htaccess (для чего нужны эти файлы – обсудим позже).
Установка системы управления MODx CMS
Установка MODx не сложнее установки иного форума. Детально установка описана нашими сообщниками в Wiki, поэтому особо останавливаться на этом этапе не вижу смысла.
Для начала смело выбирайте установку с установленным флажком "Sample web site" / "Пример веб-сайта", а также со всеми дополнительными опциями. Все равно потом мы все удалим и сделаем иначе :). Но это будет позже.
Несколько замечаний
Файл .htaccess
Как я говорил ранее, в моей редакции установочного пакета изначально были внесены изменения в названии файла .htaccess. Этот файл может регулировать множество параметров работы вашего веб-сервера, но именно в виде .htaccess, а не ht.access. Для меня остается загадкой, почему разработчики изначально не оставили правильный вариант. Догадываться можно, но мне не очень хочется. Просто поверьте, что так будет лучше.
Одним из параметров, которые регулирует данный файл, является параметр обработки URL на сайте. Это т.н. директива "RewriteEngine". По умолчанию она включена и "сообщает" веб-серверу, что он должен подключать свой специальный модуль "ModRewrite" при работе данного сайта. Для желающих узнать больше я предлагаю заняться самостоятельными поисками по данной теме, благо в интернете много материалов, связанных с этим вопросом. Для всех остальных скажу, что данный модуль помогает создавать т.н. "человекопонятные URL", т.е. удобные для людей ссылки.
С параметром (или директивой) "RewriteEngine" напрямую связан параметр "RewriteBase". Изначально рядом с ним установлено значение " /". Это говорит о том, что веб-сервер должен подключать модуль "ModRewrite" в корне директории веб-документов, т.е. в начальной директории, где могут быть обработаны ваши файлы веб-сервером. Например, на Windows этой директорией могут быть находящиеся по адресу "C:\Apache2\htdocs\" или (как у меня) "D:\Server\www\" – папки "htdocs" или "www" соответственно.
Если же Вы переносите сайт в директорию "ниже" начальной, например, так "C:\Apache2\htdocs\modx\" или так "D:\Server\www\modx\", то должны будете изменить в файле .htaccess строчку "RewriteBase /" на "RewriteBase /modx/". Это можно сделать легко, просто открыв данный файл в стандартном Notepad (Блокнот) Windows.
Выше речь шла о файле, находящемся в корневой папке MODx. Однако вы сможете найти еще один файл с таким же названием в папке "/manager/". С этим файлом ничего делать не требуется, он нужен просто для того, чтобы отключить работу модуля "ModRewrite" в системе администрирования MODx.
Файл config.inc.php
Данный файл находится в папке "/manager/includes/". Изначально такого файла не существует, но есть пустой файл, называемый config.inc.php.blank. При возможности переписать этот файл система управления при установке автоматически переименует этот файл в config.inc.php и сохранит в нем свои системные настройки (например, параметры подключения к базе данных).
Обычно так и происходит при установке на Windows. Если же вы устанавливаете MODx на удаленном сервере, который обычно работает под управлением системы Linux/Unix, то вам придется ВРЕМЕННО установить специальные права доступа 0777 для файла config.inc.php.blank (как это сделать – можно узнать у своей хостинговой компании). Точно такие же права нужно будет установить на определенные папки и файлы, которые запросит система управления при установке.
После установки системы управления, если папка "/install/ " не была удалена автоматически, сделайте это сами вручную. Обязательно. И также обязательно поставьте права доступа 0644 к файлу config.inc.php. Это делается в целях безопасности, чтобы никто не смог переустановить вам сайт и удалить весь ваш сайт, а также чтобы никто не смог узнать параметры подключения к вашей базе данных, где будет сохраняться вся информация с сайта.
Заключение
На этом первый шаг буду считать законченным. Подведем небольшой итог того, что было сделано:
- Мы определились с целью и задачами сайта;
- Узнали, с какими программами придется работать, нашли, установили и настроили эти программы;
- Внесли небольшие изменения в MODx, чтобы не иметь проблем с кодировкой в будущем;
- Разобрались с некоторыми рабочими файлами системы управления, их назначением и управляющими директивами.
- Ну и в итоге смогли установить систему MODx с демонстрационным наполнением.