Быстрая CMS
Обратная связь Карта сайта
Главная Создание сайтов Практика Строим CMS Наивное О проекте Блог

Размещение данных

Структура данных определена, пора подумать об их хранении и доступе. Ясно, что файл структуры будет один. А данные для формирования каждой страницы будут храниться в отдельном файле. Имя файла страницы должно быть уникальным и содержать идентификатор раздела, тогда последовательность сборки страницы будет простой: считав файл структуры, получаем всю информацию для формирования меню, по идентификатору определяем имя файла страницы, считываем его, разбираем и вставляем данные в шаблон. Вот и все.

Файл со структурой назовем struct.dat, а файлы с данными страниц (разделов) будут носить названия вида cont<номер_раздела>.dat (cont1.dat, cont2.dat и так далее). Номер раздела, в отличие от алиаса, не принесет никаких неожиданностей – это только цифры, они всегда допустимы в имени файла и имена файлов будут совершенно единообразными.

Теперь несколько слов о размещении скриптов и данных в дисковом пространстве нашего сайта. Негоже сваливать в корень все, что у нас есть, поэтому разложим будущий движок по директориям. В корневой директории будут лежать:

Пока это все. Возможно, потом нам придется добавить туда еще немного нужных файлов, но о них мы поговорим позже. А все остальное мы разложим по директориям, сразу определив, что где будет лежать.

Разумеется, каждую из этих директорий можно назвать совсем по-другому. Больше того, я и советовал бы поступить именно так для большей безопасности движка. Если никому не известно, где лежат данные, откуда подгружаются плагины и где расположена админпанель, задача взлома сайта сильно усложняется. Как известно, взлом сайта невозможно исключить совсем, но его можно и нужно усложнить до предела. По этой причине я против того, чтобы где-то на сайте располагалась ссылка на его админпанель, лучше пусть только администратор знает, где эта панель расположена.

По этой же причине лучше всего запретить доступ по http в те директории, где лежат подгружаемые скрипты и данные. Закроем все файлы, что не предназначены к показу на страницах сайта. Для этого в директориях data и libs нужно разместить файлы .htaccess со строками:


Order Allow,Deny
Deny from all

Эта инструкция предписывает веб-серверу запретить HTTP-доступ в данную директорию с любого адреса. Поскольку скрипты не обращаются к файлам на своем сервере по HTTP, работе движка это совершенно не помешает. Помешать может то, что владельцем директории на севере будет тот, кто ее создал (ваш FTP-аккаунт), а скрипты могут выполняться от имени совсем другого пользователя. Чтобы в дальнейшем скрипты админпанели могли создавать и изменять файлы, директории data нужно выставить атрибуты доступа 777 (rwx rwx rwx). То есть, дать права скриптам на просмотр списка файлов, чтение и запись. Для файлов в этой директории нужны атрибуты 666 (rw- rw- rw-) – чтобы дать доступ скриптам на чтение и запись.

Такая установка атрибутов необходима, если PHP на вашем хостинге работает как модуль Apache. В случае CGI/FastCGI скрипты исполняются с правами того же владельца аккаунта, поэтому достаточен доступ к файлам и директориям по умолчанию (обычно 755 для директорий и 644 для файлов).