Commerce intitle datalife engine панель управления. Создание простого модуля для CMS Datalife Engine (DLE)
Данная система плагинов позволяет модифицировать любую функциональность скрипта по своему усмотрению. Установка плагинов на сайт, обновление плагинов, осуществляется в один клик, непосредственно в панели управления DataLife Engine. Если плагин разработан под новую систему, то пользователям больше не придется читать инструкции по установке, что-то править непосредственно в файлах скрипта, и т.д. Им достаточно будет просто закачать плагин в админпанели и все.
Cистема плагинов построена по технологии виртуальной файловой системы. Вы описываете в плагине, в каком файле и какие действия нужно произвести, на основе этой информации DataLife Engine создаст виртуальные копии этих файлов, со всеми нужными изменениями и модификациями, и будет работать с созданными виртуальными копиями, не затрагивая при этом оригинальных файлов. При этом вы можете описать изменения практически во всех файлах, за исключением ряда базовых, например корневых файлов, но они не несут какого либо функционала, кроме как подключение других файлов. Также может быть изменена функциональность файлов, отвечающих за AJAX функции, для этого они были полностью переписаны для работы через контроллер. Какие это преимущества дает? Во-первых, оригинальные файлы всегда остаются неизменными, поэтому плагины могут быть легко изменены, удалены, обновлены и т.д. Во вторых эта система использует минимально возможную нагрузку на сайты в целом, т.к. виртуальные копии файлов создаются всего один раз, в момент установки или обновления плагинов, после чего DataLife Engine работает с этими измененными файлами как с обычными нативными файлами и нет никаких расходов памяти на точки вызова, хранение и контроль информации о том где и какую функциональность нужно менять и т.д. Нагрузка на сервер увеличится только на ту нагрузку, которую принесет с собой сам плагин, а система управления плагинами не будет вызывать какой либо дополнительной нагрузки. В-третьих, нет никаких проблем непосредственно с обновлением скрипта, скрипт может обновляться, на новые версии, а ваши плагины автоматически применяться к новым версиям. При этом различные плагины могут модифицировать один и тот же файл не вызывая конфликтов, при условии конечно если разные плагины не производят прямо противоположных друг другу действий.
Итак в самом модуле управления плагинами, вы можете либо создать плагин непосредственно в панели управления, либо загрузить готовый плагин. Рассмотрим добавление нового плагина в непосредственно в панели управления:
На первой вкладке вы задаете общие данные о плагине. Его название, его краткое описание. Для удобства различения с другими плагинами, вы можете указать ему иконку, которую он будет использовать в списке плагинов. Также вы задаете версию непосредственно самого плагина, и версию DataLife Engine c которой он совместим.
На следующей вкладке, вы задаете непосредственно действия над файлами, которые необходимо произвести. Вы можете добавить один или несколько файлов над которыми необходимо произвести действия, а также каждому файлу назначить одно или несколько действий, которые необходимо произвести. В файлах вы можете произвести следующие действия:
1. Найти и заменить какой либо код.
2. Найти и добавить выше нужный код.
3. Найти и добавить ниже какой либо код.
4. Полностью заменить содержимое файла на свое.
5. Создать новый виртуальный файл, который не существует в оригинальном DLE.
Вы можете в любое время также добавлять или удалять файлы, менять или удалять действия над файлами. Для удобства восприятия и редактирования, весь код при этом подсвечивается, а поля могут динамически растягиваться.
Тем самым, ситуация, при которой вы раньше вручную правили файлы скрипта, а изменения где то хранили у себя в блокноте, и каждый раз при обновлении скрипта, повторно вносили их в файлы скрипта, с новой версией полностью уходит в прошлое. Вы можете самостоятельно создать свой личный плагин непосредственно в админпанели, описав один раз нужные вам изменения в скрипте, и при обновлении скрипта до новой версии, вам не придется больше об этом заботиться, ваши изменения будут автоматически применяться к новым версиям.
На следующей вкладке вы можете добавить необходимые действия в базе данных MySQL, которые должен производить плагин в тех или иных ситуациях. Вы можете задать список MySQL запросов которые необходимо выполнить при установке плагина, при его обновлении, при его отключении, при его включении, при его удалении. При этом на каждое действие вы можете задать как один, так и список из нескольких запросов к базе данных.
Для существующего плагина, вы можете выполнить следующие действия: Вы можете его отключить, при этом он остается на сайте, но полностью игнорируется скриптом, и все его действия над файлами приостанавливаются. Вы можете его обновить до более новой версии, если таковая есть. Скачать плагин на компьютер для установки его на другой сайт. При этом сам файл скачивается в XML формате, и в данном XML содержится описание всех действий. По сути плагин представляет собой XML файл, который может быть установлен на сайт в админпанели.
Рассмотрим загрузку уже готового плагина на сайт. Вы можете загрузить и установить на свой сайт уже готовый плагин. При нажатии соответствующей кнопки вы можете загрузить либо XML файл с плагином. Либо ZIP архив с плагином. Это позволяет создавать очень сложные плагины, содержащие в себе большое количество других дополнительных файлов, как графических, так и PHP файлов. Чтобы например не описывать все действия непосредственно в самом плагине, можно создать дополнительные файлы и упаковать их в архив, разложив по новым местам. При этом важно знать, что в архиве могут быть только те PHP файлы, которые не входят в состав дистрибутива, а только ваши дополнительные файлы, в случае если будут файлы входящие в дистрибутив, такая загрузка будет заблокирована. Модификацию стандартных файлов, нужно описывать уже в самом плагине. Сам файл с XML плагином должен находится в корне вашего архива.
В случае если вы загружаете архив с плагином, и у DataLife Engine не будет прав на запись находящихся в вашем архиве файлов. Он автоматически запросит FTP доступ для того чтобы загрузить ваш архив. Если доступов не требуется, то все будет скопировано автоматически без них. При этом эти доступы не будут нигде храниться, а будут автоматически удалены после того как будут не нужны.
Новая система управления плагинами, обладает также встроенной системой логирования ошибок в плагине. В случае если какое либо действие над файлами не может быть выполнено, или произойдут какие либо ошибки, вы можете их легко увидеть и исправить. Например, это крайне удобно, если ваш плагин будет не совместим со следующей версией DLE, вы это быстро увидите, и можно легко адаптировать плагин.
Привет, друзья. Я почти все свое время уделяю . Так как большинство моих сайтов построены на CMS DLE, то и приходится много работать с этим движком. Я и раньше говорил, что с SEO разработчики не дружат, и вообще такого слова не слышали никогда, но оказалось все еще хуже, чем могло бы быть. Я даже подготовил целую серию постов, посвященных «осеошиванию» народного движка (см. в категории ).
Но сегодня я бы хотел поговорить про такую важную вещь как html карта сайта для DLE. Сколько я не искал в интернете нормальный модуль карты, так и не нашел. Есть, конечно, несколько решений, но все они дают совсем не тот результат, который нужен, а порой даже наносят вред. Пришлось писать модуль самому, а точнее поручить профессионалам реализацию моих «хотелок». Выражаю огромную благодарность Фомину Александру за энтузиазм и невероятную скорость работы.
Модуль карты сайта для ДЛЕ, который я собираюсь вам представить, отвечает всем требованиям seo и предельно прост в установке.
SiteMap – модуль генерации HTML карты сайта для DLE
Оригинальное название:
SiteMap
Совместимость с CMS:
DLE 8.2-10.6
Распространение:
Бесплатно, As Is, при распространении ссылка на источник обязательна
Актуальная версия:
2.2 (от 08.05.2014)
Назначение:
Вывод ненумерованного списка со ссылками на все публикации, категории и статические страницы.
Особенности:
Визуальный генератор кода для вставки. Детальная настройка принципа вывода всех элементов сайта — новости, категории, статические страницы — количество выводимых элементов, принцип сортировки и порядок сортировки, отображение элементов в виде ссылки или простым текстом, возможность включить/исключить конкретные элементы.
Описание и настройка модуля HTML карты сайта для DLE
Друзья, 3 июня 2012 — это большой день, в свет вышла совершенно новая карта сайта версии 2.0. Мы поднимаем планку удобства использования нашего модуля на новый уровень. Реализованная в система визуальной генерации кода нам (надеюсь, и вам тоже) очень понравилась и мы решили внедрить ее и в модуль карты сайта. Теперь вам не надо читать руководства и описания всех функций и их значений — достаточно зайти в админку, указать несколько значений и все — модуль готов к работе!
Помимо сказанного выше, хочется перечислить еще несколько важных особенностей :
- модуль полностью кешируется;
- модуль использует API DLE;
- в карте не выводятся публикации, не прошедшие модерацию, а так же запланированные на будущее;
- учитывается наличие/отсутствие ЧПУ, а так же тип ЧПУ;
- предусмотрена такая тонкость – если кто давно работает с движком ДЛЕ, то помнит, что в ранних версиях вообще не было ЧПУ, а потом оно появилось, но только одного типа (такого же, как сейчас формируется тип 3). Так вот это тоже предусмотрено в данном модуле — новые публикации выводятся с url’ом, тип ЧПУ которого выбран в админке, а старые, соответственно, с url’ом ЧПУ старого типа.
Не смотря на появление визуального генератора, предлагаю ознакомиться с механикой модуля.
Модуль вставляется в шаблон main.tpl с помощью тега:
{include file="engine/modules/sitemap.php?param1=value1¶m2=value2"}
param1= — параметр модуля, value1 — значение параметра. Настройки модуля следуют после знака? и разделены знаком &.
Пример вставки (выводит карту сайта со списком статических страниц и новостями из категорий с id=2,3,4):
{content}
{include file="engine/modules/sitemap.php?show_static=1&need_cats=2,3,4"}
Для того, чтобы карта сайта отображалась на отдельной странице, тег {include ...} необходимо заключить в , а тег {content} заключить в . После этого модуль будет доступен по адресу http://site.ru/sitemap/
После любых изменений параметров и их значений необходимо очищать кеш в админпанели.
Параметры модуля, передаваемые через tpl при вставке:
- need_cats — список id категорий через запятую для вывода в карте
- exc_cats — список id категорий через запятую, исключаемых из карты
- need_news — список id статей через запятую для вывода в карте
- exc_news — список id статей через запятую, исключаемых из карты
- данные параметры бессмысленно указывать одновременно
- need_static — список id статических страниц через запятую для вывода в карте
- exc_static — список id статических страниц через запятую, исключаемых из карты
- данные параметры бессмысленно указывать одновременно
- cats_as_links — показывать названия категорий как ссылки (1 или 0)
- show_static — отображать в карте статические страницы (1 или 0)
- cats_sort — поле сортировки списка категорий (поле из таблицы dle_category)
- cats_msort — направление сортировки списка категорий (ASC или DESC)
- news_sort — поле сортировки списка статей (поле из таблицы dle_post)
- news_msort — направление сортировки списка статей (ASC или DESC)
- static_sort — поле сортировки списка статических страниц (поле из таблицы dle_static)
- static_msort — направление сортировки списка статических страниц (ASC или DESC)
- возможны 2 варианта направления сортировки:
- ASC — по возрастанию (по алфавиту)
- DESC — по убыванию (в обратном порядке)
- если поле и порядок сортировки не указаны — используются заданные настройки категорий или стандартные параметры DLE
- cats_limit — максимальное количество выводимых подкатегорий
- news_limit — максимальное количество выводимых статей из категории
- static_limit — максимальное количество выводимых статических страниц
Заметьте, ни одна из приведенных выше настроек не является обязательной , можно вообще ничего не указывать — достаточно просто вставить тег {include file="engine/modules/sitemap.php"} — тогда будут использованы настройки по умолчанию.
Внешний вид и классы стилей карты сайта
Опционально предусмотрено изменение внешнего вида карты сайта, для этого открываем файл стилей (style.css) своего шаблона и прописываем нижеописанные классы.
Перечень CSS классов карты сайта:
Sitemap_categories - элемент
- списка категорий
- списка категорий
.sitemap_items - элемент- списка статей
- списка статей
.sitemap_static_pages - элемент- списка статических страниц
- списка статических страниц
Root - класс для вышеперечисленных элементов, находящихся в корне списка
Sitemap_categories a - элемент c названием категории
.sitemap_categories span - элемент c названием категории
.sitemap_items a - элемент c названием статьи
.sitemap_static_pages a - элемент c названием статической страницыУстановка, удаление и обновление модуля карты сайта на DLE
Установка модуля
- Распакуйте архив с модулем;
- Скопируйте содержимое папки uploads (кроме /templates/) на сервер;
- Содержимое папки uploads/templates/Default/ поместите в папку своего шаблона;
- Запустите файл http://site.ru/sitemap_installer.php и следуйте инструкциям;
- Удалите файл sitemap_installer.php с сервера;
- Зайдите в админпанель, выберите модуль SiteMap и сгенерируйте код;
- Откройте файл main.tpl своего шаблона и найдите:
RewriteEngine On
Ниже добавьте:
$metatags = <<
Выше добавьте:
if ($do == "sitemap" ) { $nam_e = "Карта сайта" ; $metatags [ "title" ] = "Карта сайта {$config["home_title"]} " ; $metatags [ "description" ] = "Карта сайта {$config["description"]} " ; $canonical = "" ; } if ($do == "sitemap") { $nam_e = "Карта сайта"; $metatags["title"] = "Карта сайта {$config["home_title"]}"; $metatags["description"] = "Карта сайта {$config["description"]}"; $canonical = ""; }
- Процесс установки завершен — карта сайта доступна по адресу http://site.ru/sitemap/
Удаление модуля
- Загрузите файл sitemap_uninstaller.php на сервер (в папку где установлен DLE);
- Запустите файл http://site.ru/sitemap_uninstaller.php и следуйте инструкциям;
- Удалите все файлы модуля, загруженные при установке;
- Отмените все правки файлов движка (main.tpl и.htaccess), внесенные при установке;
- Не забудьте удалить файл sitemap_uninstaller.php.
Обновление модуля
- Скачайте новую версию модуля со страницы http://сайт/blog/post/1974
- Распакуйте архив с модулем.
- Скопируйте содержимое папки upload (кроме файла sitemap_installer.php и папки /templates/) на ваш сервер, отвечая «Да» на вопросы вашего FTP-клиента о замене существующих файлов.
Внимание! Для обновления с версии v.1.x до версии v.2.x:
Необходимо полностью скопировать новые файлы из версии 2.x на сервер, при совпадении имен подтвердить замену. После этого необходимо запустить http://site.ru/sitemap_installer.php и следовать инструкциям. На этом обновление завершено.Скачать модуль HTML SiteMap для DLE
История версий (History Log)
- v.2.2 — 08.05.2014
- Полностью переработано оформление модуля для всех версий DLE.
- Исправлены мелкие ошибки и произведены улучшения. Обязательно при обновлении проделайте пункт с правкой файла engine.php в инструкции по обновлению.
- v.2.1.1 — 17.04.2014
- Обновлен код модуля для совместимости с новым форматом файла настроек DLE версии 10.2 и выше.
- v.2.1 — 08.10.2012
- Исправлен баг в генераторе кода.
- Исправлены опечатки в админке.
- v.2.0 — 03.06.2012
- Добавлен установщик.
- Появилась админка с генератором кода для вставки в шаблон.
- v.1.2 — 02.06.2012
- Введен контроль за версией DLE.
- Модуль теперь совместим с линейкой DLE 8.2-9.6.
- v.1.1 — 02.11.2011
- Устранены баги с некоторыми функциями модуля.
- v.1.0 — 16.03.2011
- Официальный релиз.
FAQ — ответы на часто задаваемые вопросы
Q: Зачем мне две карты сайта xml и html? В чем их отличие? Можно ли их использовать одновременно?
A: Это совершенно две разные сущности: xml-карта сайта предназначена только для поисковиков. html-карта сайта предназначена для пользователей для навигации по сайту. Их можно и нужно использовать одновременно.Q: Какую карту сайта надо добавить в панель вебмастера Яндекс и Google?
A: Поисковикам необходимо «скормить» именно xml-карту сайта, а не ту карту, что создает данный модуль.Q: Ссылку на какую карту сайта можно поставить на сайта (например, в футере)?
A: Ссылаться нужно только на html-карту сайта, т.е. ту, которая создается данным модулем и доступна по адресу http://site.ru/sitemap/Q: У меня возникла следующая ошибка, что делать?
Fatal error: Cannot redeclare class Sitemap in /.../engine/modules/sitemap.php on line 55
A: Воспользуйтесь альтернативной установкой карты сайта через статические страницы — метод описан тутQ: Работает ли данный модуль на DLE 10?
A: Да, все работает нормально. Но если у вас возникли какие-то трудности, то есть еще один альтернативный вариант. Спасибо пользователю под ником Ryan — метод описан тутQ: У меня очень много публикаций на сайте, и все эти ссылки выводятся на одной странице. Это же лажа, Яндекс ругается!
A: Да, Яндекс ругается. Чтобы сократить количество ссылок на странице, воспользуйтесь параметром ограничения вывода количества новостей news_limit (см. подробности в списке параметров).Q: Сколько ссылок на странице карты можно/нужно выводить?
A: Из официального ответа службы поддержки Яндекса: рекомендуемое количество ссылок в html карте сайта не должно превышать 3000 ссылок.Q: А как же разделение карты сайта на страницы? Сделайте пожалуйста.
A: Постраничная разбивка карты сайта не подразумевается структурой БД и логикой модуля. В ближайшее время возможность разбивки на страницы не предвидится.Вот я вам все и рассказал, прошу скачивать, тестировать и писать отзывы. Если найдете какие-то ошибки — пишите, все максимально оперативно будем править. Так же если есть какие-то пожелания по поводу функционала, доработок, тоже пишите, все обсудим и сделаем!
DISCLAIMER В последнее время замечено распространение данного модуля на различных сайтах, посвященных DLE, под другими названиями, с измененным кодом, удаленным/измененным копирайтом и т.д. Но, тем не менее, признаки того, что это именно данный модуль и разработан Александром Фоминым, остаются. Так вот — я не несу ни какой ответственности за дистрибутивы, скачанные с других сайтов.
С уважением, Александр Алаев
Приветствую всех, кто посвящает этим строкам свое драгоценное время.
В этой статье я хочу рассказать о способах оптимально настроить сервер и систему управления контентом DataLife Engine. За 4 года работы с интернет сайтами и серверами я усвоил, что безопасность превыше удобства и что ей нужно уделять внимание. Оговорка : я не претендую на авторство чьей-либо интеллектуальной собственности! Весь материал собран на просторах интернета.
Ниже будут описаны действия, которые помогут распределить нагрузку сервера, обезопасить его от DOS атак, ограничить доступ к FTP протоколу и правильно сконфигурировать систему DataLife Engine.
Защита и конфигурация вашего сервера.
1. Настройка конфигурации сервера с использованием связки front-end Nginx к Apache.
Преимущества подобной схемы можно понять на небольшом примере. Представьте себе, что вашему веб серверу Apache необходимо обслужить порядка 1000 запросов одновременно, причем многие из них подключены к медленным каналам связи. В случае использования Apache мы получим 1000 процессов httpd, на каждый из которых будет выделена оперативная память, и эта память не освободится до тех пор, пока клиент не получит запрошенный контент.
В случае схемы с применением front-end сервера получим значительную экономию ресурсов за счет того, что после поступления запроса, nginx передает запрос Apache и быстро получает ответ. В итоге, Apache, после того как отдал ответ nginx, освобождает память. Далее с клиентом взаимодействует веб-сервер nginx, который как раз и написан для раздачи статического контента большому количеству клиентов при незначительном потреблении системных ресурсов.
Для корректной работы нашей связки понадобиться модуль для Apache. Возникает такая необходимость по следующей причине: запросы к Apache приходят с IP-адреса, на котором работает nginx, соответственно, в журнальных файлах Apache будет фигурировать только IP-адрес nginx сервера. Также без использования данного модуля начнутся проблемы со скриптами, в которых используется IP-адрес посетителя и перестанет правильно работать механизм ограничения доступа по IP-адресам с помощью.htaccess.
Установка NGINX на популярные ОС.
Red Hat Enterprise Linux 4 / CentOS 4
Для установки nginx в этих операционных системах вам необходимо подключить дополнительный репозиторий пакетов.Red Hat Enterprise Linux 5 / CentOS 5
Для установки nginx в этих операционных системах вам необходимо подключить дополнительный репозиторий пакетов EPEL.ASPLinux Server 5 / Fedora
nginx присутствует в стандартной поставке дистрибутива.Если репозитории подключены или просто не требуются, выполняем: yum install nginx
Установка Apache.
Чтобы установить Apache веб-сервер достаточно выполнить: yum install httpd
Установка mod_rpaf.
1. Устанавливаем пакет httpd-devel:
yum -y install httpd-devel
2. Скачиваем и устанавливаем mod_rpaf:
Входим в директорию /usr/local/srccd /usr/local/src
Загружаем в /usr/local/src файл mod_rpaf-0.6.tar.gzwget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
Распаковываем mod_rpaf-0.6.tar.gztar xzf mod_rpaf-0.6.tar.gz
Переходим в каталог в который распаковали
Ставим модуль в системуapxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
3. Далее нужно создать файл конфигурации mod_rpaf - /etc/httpd/conf.d/rpaf.conf и добавить в него следующие строки:
RPAFenable On
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx yy.yy.yy.yy
где xx.xx.xx.xx и yy.yy.yy.yy - IP адреса вашего сервера. Если на сервере более двух IP, добавьте их по той же аналогии.service httpd restart
4. В nginx внутри блока http {} должны быть указаны строки:proxy_set_header Host $host;
Если данные строки указаны, дописывать не нужно.Если модифицируется nginx.conf, следует перезапустить nginx:
/etc/init.d/nginx stop
/etc/init.d/nginx start
5. Как проверить, работает ли установленный модуль?
На любом из доменов, которые расположены на Вашем сервере, разместите файл test.php с содержимым:" echo $_SERVER["REMOTE_ADDR"]; ?>"
Далее зайдите по ссылке , где domain.tcom - имя вашего домена. Если отображается IP, отличающийся от IP вашего сервера, модуль работает корректно.Настройка NGINX.
Ниже приведен конфигурационный файл nginx для работы в качестве front-end сервера. Подразумевается, что nginx будет работать на всех интерфейсах на 80 порту, а Apache будет работать на интерфейсе 127.0.0.1 и порту 8080. Сохраните данный конфигурационный файл в каталоге /etc/nginx/ с именем nginx.conf.
user nginx;
worker_processes 10;
error_log /var/log/nginx/error.log debug;
pid /var/run/nginx.pid;events {
worker_connections 20000;
}http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main "$remote_addr - $remote_user [$time_local] $status "
""$request" $body_bytes_sent "$http_referer" "
""$http_user_agent" "http_x_forwarded_for"";
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
send_timeout 900;
server_tokens off;
server {
listen 80;
server_name _;
server_name_in_redirect off;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 10m;
}
}
Настройка Apache.В файле конфигурации Apache /etc/httpd/conf/httpd.conf найдите строку:
и замените ее строкой:
Listen 127.0.0.1:8080
Настройка mod_rpaf.Добавьте модуль mod_rpaf в файл конфигурации Apache. Для этого в файл /etc/httpd/conf/httpd.conf добавьте следующую строку:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
Затем в этот же файл добавьте строки:RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1 192.168.0.1
RPAFheader X-Real-IP
Вместо 192.168.0.1 необходимо поставить IP-адрес сервера.2. Конфигурация сервера для защиты от dos-атак.
Включаем в nginx кеширование главной страницы для тех у кого нет cookie.
Добавляем ограничения в nginx.conf:
limit_req_zone $binary_remote_addr zone=two:20m rate=2r/s;
server{
location / {
limit_req zone=two burst=5;
}
}
}
Пользуемся tail и awk:tail -f /var/log/nginx/access.log | grep GET / HTTP/1.1" 503
Подключаем лог:tail -f /var/log/nginx/access.log | grep GET / HTTP/1.1" 503 | awk "{ print $1 }"
Получаем IP машин:iptables -A INPUT -p tcp -j DROP -s $IP
Заносим IP в Firewall:tail -f /var/log/nginx/access.log | grep GET / HTTP/1.1" 503 | awk "{ print $1 }" | xargs -t -l iptables -A INPUT -p tcp -j DROP –s
Теперь установим connlimit для iptables чтобы ограничить подключения ботов. В правилах ставим разрешение на 5 подключений с одного IP, и 25 из подсети класса С.DDOS атака с 16000 ботов - Load average: 1.4 1.9 2.0
Ограничение доступа по FTP
Для этого нам понадобитсья файл.ftpaccess. Он поможет запретить или разрешить доступ по FTP с указанных IP адресов. Кто-то может задать вопрос: «У меня динамический IP, как мне правильно использовать.ftpaccess?» Ответ я подразумеваю только такой: «Если вам нужна данная надстройка безопасности - приобретите у вашего провайдера статический IP. Много денег у вас за него не попросят.»
Чтобы создать.ftpacces файл нам понадобиться SSH доступ. Можно воспользоваться программой winscp. Настроек в.ftpaccess может быть большое множество, однако нас интересует только один параметр. Прописав эти строки в файле вы закроете полностью доступ от всех:
Deny from all
После написанного выше, никто не сможет зайти на ФТП. Для добавления разрешения доступа определенному IP нужно указать следующие параметры:Allow from 127.0.0.1
Deny from all
Естественно адрес 127.0.0.1 указан для примера и его нужно заменить на собственный.Важно! Лучше всего запретить доступ по FTP абсолютно всем и подклчаться только по SSH.
Защита системы управления контентом DataLife Engine.
1. Установите и настройте .
2. Переименуйте файл админпанели и сделайте фейк по старому адресу (www.sait.com/admin.php) при переходе на который пользователь будет заблокирован посредством запрета его ip в.htaccess.
Переименовали? Теперь создаем в корневом каталоге файл ip.txt для хранения ip-адресов. Даем ему и.htaccess права CHMOD – 777.
Создаем файл admin.php следующего содержания:
$ip = getenv ("REMOTE_ADDR");$log = fopen("ip.txt", "a+");
fwrite($log, "// ".$ip."\n");
fclose($log);$f = fopen($_SERVER["DOCUMENT_ROOT"] . "/.htaccess", "a");
fwrite($f, "\ndeny from " . $ip);
fclose($f);Админ панель DataLife Engine
Текст, например: Твой ip в логах, я найду тебя!
Бойся, ничтожество, ха-ха!
"
3. Добавим дополнительную аутентификацию в админцентре.Необходимо придумать еще один логин и пароль (не используйте данные вашего административного аккаунта). Второй логин и пароль должен в корне отличаться от первого. Определились? Отлично! Теперь зашифруем наш пароль в md5 (сделать это можно на сайте md5encryption.com).
Далее открываем admin.php (вспомните, ранее мы его переименовали и, по этому, если вы назвали его superadmin.php - вам необходимо открывать именно этот его) и после строки:добавляем:
$login="вписываем придуманный логин";
$password="и сгенерированный пароль в md5";
if (!isset($_SERVER["PHP_AUTH_USER"]) || $_SERVER["PHP_AUTH_USER"]!==$login ||
md5($_SERVER["PHP_AUTH_PW"])!==$password) {
header("WWW-Authenticate: Basic realm="Admin Panel"");
header("HTTP/1.0 401 Unauthorized");
exit("Access Denied");}
4. Отключим неиспользуемые системой функции php.Для поиска файла php.ini создаем файл phpinfo.php с текстом:
После поиска обязательно удалить phpinfo.php!disable_functions = allow_url_fopen, eval, exec, system, passthru, scandir, popen, shell_exec, proc_open, proc_close, proc_nice, get_current_user, getmyuid, posix_getpwuid, apache_get_modules, virtual, posix_getgrgid, getmyinode, fileowner, filegroup, getmypid, apache_get_version, apache_getenv, apache_note, apache_setenv, disk_free_space, diskfreespace, dl, ini_restore, openlog, syslog, highlight_file, show_source, symlink, disk_total_space, ini_get_all, get_current_user, posix_uname, allow_url_fopen
5. Создаем фильтрацию GET и POST запросов, предотвращаем инъекции в БД и получение из нее данных.Создаем файл.php с произвольным названием и следующим содержимым:
//поставить еденицу если хотите включить отладку запросов
$debug = 0;$bag_req = array("select", "eval", "echo", "UPDATE", "LIMIT", "INSERT", "INTO", "union", "CONCAT", "INFORMATION_SCHEMA", "OUTFILE", "DUMPFILE", "LOAD_FILE", "BENCHMARK", "SUBSTRING", "ASCII", "CHAR", "database", "HEX", "\\.\\/", "%00", "\\.htaccess", "config\\.php", "document\\.cookie");
$request = serialize($_GET);
if($_GET)
{
foreach ($bag_req as $key => $value) {
{
В массиве найден запрос $value
$request";
}
}
}
if($_POST)
{
$request = str_replace("selected_language", "sl", serialize($_POST));
$urequest = urldecode($request);
$brequest = base64_decode($request);
foreach ($bag_req as $key => $value) {
if(preg_match("/$value/i", $request) || preg_match("/$value/i", $urequest) || preg_match("/$value/i", $brequest))
{
if($debug == "1") $do_debug = "
В массиве найден запрос $value , который блокирует правильную работу
$request";
die("BAD REQUEST $do_debug");
}
}
}
?>
Сохраняем его на сервере в любом каталоге системы DLE. Открываем файл engine/classes/mysql.php и после:if(!defined("DATALIFEENGINE"))
{
die("Hacking attempt!");
}
подключаем созданный файл:include_once(ENGINE_DIR."/путь_к_файлу/название.php");
6. Используя бесплатные компоненты к DLE обязательно узнайте мнение специалиста о их надежности.При возникновении вопросов обращайтесь к поисковым системам - весь материал в свободном доступе!
Есть что добавить? Милости прошу к обсуждению!Удачи вам и вашим проектам!
На базе движка DLE (DataLife Engine). Настройку я буду описывать очень подробно, стараясь ничего не упустить, я думаю, что настройка dle превратится в длинную серию постов. За эту серию постов мы не только подробно рассмотрим настройку, но и разберемся для чего нужна каждая функция настройки.
Для постов посвященных настройке движка DLE, я буду использовать движок DataLife Engine v.9.4., точнее демо-версию данного движка. Этого мне вполне хватит для того, чтобы рассказать вам о настройках и возможностях DataLife Engine.
Первая статья будет посвящена разделу админки: «Общие настройки скрипта» . Найти этот раздел можно следующим образом: после перехода в админку DLE (DataLife Engine) , которая находится по адресу site.ru/admin.php, вы увидите быстрый доступ к основным разделам админпанели. Сегодня нам нужен пункт «настройка системы», а в нем раздел «общие настройки скрипта» . Есть, конечно и другие способы попасть в этот раздел, но это по-моему самый простой способ.
Итак приступим к настройке движка dle, первый пункт это название (title dle) . В названии пишите, название вашего проекта, например: Все для начинающих вебмастеров. Ваш title может звучат как угодно, по умолчанию на движке DLE, сайт называется DataLife Engine, если мы впишем любое другое название, то оно будет изменено. И оно будет формировать title dle, который будет выводиться во вкладке браузера, а также на странице поисковой выдачи. Поэтому, отнеситесь к title, со всей серьезностью. Здесь, я думаю понятно.
Ну, домашняя страница, я думаю понятно. Вписываем имя вашего домена, например: site.ru и все.
Используемая кодировка , по умолчанию, стоит windows-1251, это означает, что ваш ресурс поддерживает русский язык. Если у вас демо-версия движка DataLife Engine, менять здесь ничего не надо. Если же CMS куплена, то кодировку можно изменить например на UTF-8 и тогда ваш проект станет мультиязычным, на данном этапе подробно мы не будем рассматривать кодировку, я думаю и так понятно если у вас демо не меняем, даже если купленая, но домен находится в зоне ru , если честно я не вижу смысла менять кодировку.
Следующий пункт: Описание (Description) , в котором мы кратко описываем содержание своего проекта, например: Все о создании, настройке и продвижении блогов или сайтов и т.д., но не более 200 символов. По идее это описание должно выводится в поисковых системах, поэтому отнеситесь к этому серьезно, и не забудьте в описание прописать ключевые слова, по которым в будущем будет продвигаться ваш ресурс. Выглядеть это будет, примерно так, в поисковике Google:
Далее, ключевые слова (Keywords) (слова вводим через запятую), также по данным словам поисковики будут обращать внимание на вашу страничку, ключевые слова должны максимально соответствовать направлению вашего сайта или блога, сначала нужно составить список ключевых слов и проверить количество запросов по данным словам. Для проверки количества запросов пользуемся вот этой страничкой в интернете http://wordstat.yandex.ru . Подробнее на данном этапе рассматривать не будем, так как это уже относится не к данной теме поста, а к оптимизации в поисковых системах. Тут уж смотрите сами, что писать в это поле, для каждого ключевые слова будут разные.
Краткое название , здесь я думаю все понятно. Данное название будет выводится в модуле speedbar. Можно, опять же, повторить название проекта. Так с названиями разобрались, продолжаем. Модуль speedbar (он же хлебные крошки) выглядит так:
Коррекция временных зон, служит для коррекции времени на сайте. Например у вас сервер настроен на московское время, а вы живете в другом часовом поясе и хотите, чтоб время на сайте соответствовало вашему часовому поясу, то это исправляется в этой графе. Как исправить там все понятно, часы пишем в минутах, также в этой графе написано текущее время сервера, можно ориентироваться по этому времени.
В графе, (человекопонятный урл), желательно выбрать «Да». Нужен он для того, чтобы ваш адрес визуально воспринимался пользователями, что хорошо сказывается на юзабилити вашего ресурса. Чтобы было понятнее, приведу примеры новостей с ЧПУ и без, новость с ЧПУ dle : http://site. ru/addnews.html, без ЧПУ: http://site.ru/index.php?do=addnews, т.е с ЧПУ визуальное восприятие ссылки намного лучше, чем без него.
Затем выбираем тип ЧПУ , здесь все ваших руках, но третий тип не советую выбирает так как он повышает нагрузку на ваш сервер.
Обрабатывать неверные URL ЧПУ : Здесь я советую поставить «Да», так как эта опция полезна для SEO, но вы если хотите можете не включать данную опцию. Подробнее для чего она нужна, в настройках написано, довольно понятно.
Затем выбираем используемый язык , так как у меня демо-версия, выбор у меня не большой только один язык, это русский, но для доменной зоны ru, этого будет достаточно.
Далее, шаблон сайта по умолчанию — стоит default, но можно выбрать и другой. Этой теме будет посвящена отдельная статья, как установить шаблон на DataLife Engine (DLE). Конечно, все мы хотим какой-то особенный, не стандартный шаблон, забегая вперед, скажу, шаблон установить на dle очень просто. Скачиваем понравившийся шаблон с интернета или делаем свой, папку с шаблоном копируем в директорию движка, в папку templates, и если ваш ресурс на локальном сервере, перезапускаем его. И теперь шаблон появится в графе выбора шаблонов сайта по умолчанию.
После выбора шаблона, переходим к двум настройкам «Включить WYSIWYG редактор… «, в обоих случаях рекомендую выбрать «Да», так с помощью визуального редактора намного проще редактировать новости (статьи) и комментарии, нежели, с помощью BB-кодов. Хотя, выбирать вам, поэкспериментируйте, и сделайте выбор в пользу удобства. DLE WYSIWYG редактор, это визуальный редактор.
Так выглядит панель редактирования, с помощью BB-кодов.
Так выглядит панель редактирования, с помощью DLE WYSIWYG.
Далее идет довольно полезная опция: «выключить сайт «, данная опция переводит ресурс в состояние offline, если вы считаете, что ваш проект еще не готов быть увиденным пользователями, то включаете данную опцию. Если же все готово, то выключаете опцию и выпускаете проект в сеть. Также этой функцией можно пользоваться при обновлении структуры или шаблона вашего ресурса. Замечу, что данная опция полезна, если ваш «подопытный» находится на хостинге, а не на локальном сервере , как у меня.
Последняя опция (причина отключения ) пригодится тем, кто воспользуется выключением сайта. В текстовом поле уже написана причина отключения, которую можно отредактировать под себя или написать свою причину.
Вот и все. Вы сделали первый шаг к настройке DLE (DataLife Engine). Теперь остается сохранить общие настройки dle и ждать следующего поста о настройке движка DLE.
Примечание: посты о настройке DLE (DataLife Engine) будут подаваться в таком в виде, для лучшего восприятия полученной информации, чтобы не получилась каша в голове. Конечно, можно было описать всю настройку в одной статье, примерно такого вида: здесь выберите это, здесь поставьте это, там напишите так. Но я хочу, чтобы вы понимали, для чего нужна каждая функция. Настроек и возможностей в DLE слишком много для одного поста. Надеюсь на ваше понимание.
DLE или DataLife Engine – это платная CMS для управления контентом вашего сайта. CMS обладает мощной системой управления новостями, публикациями, статьями, пользователями и предназначена для создания информационных порталов и блогов. Благодаря множеству встроенных функций и использованию продвинутой технологии AJAX в работе CMS, ваш сайт будет потреблять меньше ресурсов сервера даже при большом количестве посетителей. В данном руководстве вы узнаете, как установить DLE на Hostinger.
Перед тем, как вы начнете это руководство, вам понадобится следующее:
- Доступ к панели управления вашим хостингом
Как установить DLE на Hostinger
Перед тем как начать установку DLE вам необходимо произвести данные действия:
Шаг 1 - Скачивание установочных файлов DLE
Откройте папку upload в вашем FTP-клиенте и загрузите все файлы из папки на вашу учетную запись хостинга в каталог public_html .
ЗАМЕТКА! В этом руководстве для загрузки файлов мы используем FileZilla, но вы можете использовать любой удобный вам FTP-клиент.
Шаг 3 - Установка разрешений для файлов
Установка DLE проходит в автоматическом режиме, все что вам нужно сделать это установить соответствующие права для нескольких отдельных папок и файлов, которые вы ранее загрузили на ваш хостинг аккаунт.
- Для начала установите права на запись для папки templates и всех вложенных в нее папок. Для этого нажмите правой клавишей мыши на папку templates в интерфейсе FileZilla и выберите опцию Атрибуты файла…
- Далее, в появившемся окне впишите в Числовое значение 777 для изменения разрешений на запись, поставьте галочку напротив Перенаправлять во вложенные каталоги и отметьте Применить только к каталогам .
- Далее, необходимо провести изменение разрешений для всех файлов в папке templates , но уже с правами 666. Для этого вновь откройте атрибуты папки templates и задайте Числовое значение 666, поставьте галочку напротив Перенаправлять во вложенные каталоги → Применить только к файлам.
- Идентичные действия проведите с папками backup, uploads , а также для всех папок, находящихся внутри них. Далее для папок /engine/data/,/engine/cache/, /engine/cache/system/ . Для всех указанных каталогов установите права для записи 777.
- Теперь можно приступить к установке DLE.
Шаг 4 - Установка DLE на Hostinger
Для начала установки введите имя вашего домена в браузере. Если окно установки не выходит автоматически, добавьте к имени вашего домена install.php. К примеру, ваш-домен.ru/install.php.
- Если все сделано правильно, то вы увидите окно Мастера установки DataLife Engine. Нажмите кнопку Начать установку .
- Далее, примите пользовательское соглашение поставив галочку напротив Я принимаю данное соглашение . Для продолжения установки нажмите кнопку Продолжить.
- В следующем окне проверьте, что ваш сервер соответствует необходимым требованиям и нажмите кнопку Продолжить .
- Далее, проверьте правильность установленных ранее вами разрешений для файлов. Если все правильно, снова нажмите Продолжить .
- В новом окне вам необходимо заполнить детали вашей базы данных и данные для учетной записи администратора вашего сайта DLE.
- URL сайта – адрес вашего сайта
Данные для доступа к MySQL серверу.
- Сервер MySQL – MySQL сервер вашей базы данных на хостинге. Если вы являетесь пользователем Hostinger, вы можете найти необходимую информацию в разделе Базы Данных → Базы Данных MySQL .
- Имя базы данных – имя вашей базы данных MySQL.
- Имя пользователя – имя пользователя назначенного для вашей базы данных.
- Пароль – пароль от учетной записи пользователя вашей базы данных.
- Префикс – префикс таблиц базы данных MySQL. Можете оставить без изменений.
- Движок базы данных – рекомендуется оставить значение по умолчанию. InnoDB.
- 4 байта UTF – при включении данной опции DLE будет сохранять в базе данных дополнительную информацию. Это опция может повлиять на производительность вашего сайта.
Данные для доступа к панели управления.
Введите данные для доступа к панели управления вашим сайтом. Введите свой настоящий адрес электронной почты, он будет использоваться для восстановления доступа к аккаунту администратора.
Дополнительные настройки.
Включить поддержку ЧПУ – включить человеко-понятный URL. При включении данной опции в адресе статьи будет отображаться ее название. Данная функция полезна для SEO оптимизации.
- Для избежания повторного запуска установки или обновления, удалите файл install.php и папку upgrade из каталога вашего сайта. Нажмите кнопку Продолжить .
Поздравляем, установка DLE для вашего сайта на Hostinger прошла успешно.
Заключение
Закончив данное руководство вы узнали, как установить DLE на хостинг. Установка DLE – это довольно легкий процесс, если вы внимательно следовали нашему пошаговому руководству. Несмотря на обилие CMS на сегодняшний день, DLE имеет свои особенности и хорошую производительность.
.sitemap_static_pages li - элемент - списка статических страниц
.sitemap_items li - элемент - списка статей
.sitemap_categories li - элемент