Устройство файловой системы Drupal 6

Посмотрим, что мы увидим открыв корневую папку нашего уже работающего проекта сайта (для компактности изображения, некоторые системные папки и README-файлы удалены).

Начну с файлов внизу изображения.

robots.txt – содержит инструкции для роботов поисковых систем.

Корневой файл .htaccess управляет работой сервера Apache. Основные моменты его настроек таковы. Индексный файл по умолчанию для домена index.php. Обработка ошибки 404 (File not found) доступа также передается index.php. При запросе ресурса проверяется его наличие в файловой системе сайта. Существующий файл отдается клиенту. Если файла нет,  путь от корневой папки домена помещается в параметр запроса q и передается в index.php. дальнейшее зависит от настроек системы, ее модулей и размещенного контента. Отключен просмотр файлов в каталогах без index.php. Отключены глобальные переменные PHP. Закрыт доступ к файлам системы с расширениями .inc, .info, .install, .module .tpl.php и т.д. 

Эти два файла – единственные, которые модифицируются в корне файловой системы Drupal. Поэтому при обновлениях кода системы их требуется предохранять от перезаписи. Все остальные файлы и содержимое всех папок системы за исключением sites не рекомендуется модифицировать ("хакать").

install.php – скрипт начальной установки системы. На него перенаправляется пользователь, если система обнаруживает, что не установлена. В этом случае файл конфигурации /sites/default/settings.php содержит значения по умолчанию. После установки скрипт просто выводит системное сообщение и может быть удален.

cron.php – скрипт обработки задач по расписанию. Удобнее всего запускать его через файл crontab с запросом этого скрипта wget

wget -O - -q -t 1 http://www.example.com/cron.php >dev/null 2>&1

или через lynx

lynx -source http://example.com/cron.php > /dev/null 2>&1 

Последняя команда используется в командном скрипте cron-lynx.sh из папки scripts, так что, после его небольшой модификации, задание помещенное в crontab можно упростить еще больше:

/путь/к/папке/вашего/сайта/scripts/cron-lynx.sh

Возможен и прямой запуск cron.php через /usr/bin/php, но он требует настройки переменных окружения в отдельном файле конфигурации

update.php – скрипт обновления модулей и системы. Его запуск обязателен после обновления кода системы или любого из ее модулей и требует прав суперпользователя, либо изменений в файле конфигурации при которых скрипт обновления может быть запущен запросом анонимного пользователя.

xmlrpc.php – этот скрипт принимает XML-RPC запросы, что позволяет разным модулям получать данные от сторонних сайтов и внешних приложений.

index.php – основной скрипт системы, подключает файл загрузки, загружает, запускает систему. Если возвращается текстовое значение, представляющее готовый HTML-код основного контента страницы, то он отправляется в систему темизации, где вставляется в сформированный шаблон страницы сайта. Если код возврата - целое число, то отрабатывается одна из трех ошибок протокола HTTP:
404 Not Found - запрошенный ресурс системой не найден.
403 Forbidden - запрошенный ресурс найден, но у посетителя недостаточно прав для его получения.
503 Service unavailable - сайт отключен администратором и у посетителя не хватает прав для работы в этом режиме. Включение/выключение сайта задается на странице http://podshipnik-servis.ru/admin/settings/site-information

includes – папка содержит основные системные библиотеки Drupal. Изменения кода и «хаки» здесь категорически не рекомендуются.

misc – папка содержит различную статику, необходимую ядру системы отображения страниц. JS, CSS, изображения и даже системную иконку . Класть сюда свои файлы и править имеющиеся тоже не рекомендуется, но кто знает, что там делал автор проекта.

modules – папка содержит системные модули, и модули, поставляемые с системой по умолчанию. Изменение кода системных модулей и размещение здесь кода модулей контрибутивных не рекомендуется, но на работающих проектах все бывает.

profiles – папка содержит доступные профили установки Drupal. По умолчанию используется профиль default. Если Drupal устанавливался со сборки, то здесь вы найдете соответствующие профили. Папка профиля сборки может также содержать требуемые ей контрибутивные модули и темы, хотя их и рекомендуется перед установкой переносить в соответствующую системную папку.

scripts – папка содержит сценарии командной строки Linux, для администрирования сайта и разработки (запуск заданий по расписанию, чистка кода, проверка синтаксиса и пр.)

themes – папка содержит подпапку системной темы garland и тем поставляемых с системой по умолчанию. Кроме этого в подпапке themes/engines размещаются движки тем. По умолчанию используется phptemplate, но могут быть Smarty, PHPTAL и пр.

sites – папка содержит все файлы, относящиеся к конкретному сайту: файлы конфигурации, папки с контрибутивными модулями, темами и библиотеками, а также файловую систему сайта. В случае одного домена содержит только две подпапки - sites/default и sites/all

sites/default – папка содержит исходный файл конфигурации default.settings.php и рабочий файл конфигурации settings.php, права на который, должны предусматривать только чтение. По умолчанию при установке системы здесь еще размещается папка файловой системы сайта sites/default/files. Сюда Drupal помещает закачанные файлы и изображения, а также кеширует генерируемый системой статический контент. Поскольку это настраиваемый параметр, то смотреть реальное местонахождение этой папки0 на сайте надо на странице http://podshipnik-servis.ru/admin/settings/file-system

sites/all – папка содержит сторонние и контрибутивные библиотеки (libraries), модули (modules) и темы (themes). Разработчики сайтов могут размещать здесь любые темы и модули из официальных дистрибутивов, а также создавать собственные. Рекомендация не хакать и не патчить контрибутивные модули и темы здесь тоже распространяется. Для расширения функционала модулей в Drupal предусматриваются различные API, а для создания своих тем и изменения контрибутивных есть механизм подтем.

При мультисайтинге в содержимом папки sites могут быть размещены дополнительные папки с именами доменов, например foo.example.com со своим файлом settings.php и своими подпапками modules themes и libraries. Получив от веб-сервера имя хоста foo.example.com Drupal сперва ищет файл конфигурации в ней и лишь не найдя берет его из папки default. Модули и темы, находяшиеся в all, доступны для всех сайтов, модули и темы в папке foo.example.com только для сайта http://foo.example.com Подобные возможности позволяют строить сложные системы, например, блогосервисы, используя одну базу кода системы, облегчая обновление версий и ведение проекта.

Добавить комментарий

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
CAPTCHA
А не робот ли вы случайно?
16 + 4 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.