Дроссельная заслонка

Comics intitle datalife engine панель управления. Настройка движка DataLife Engine

Comics intitle datalife engine панель управления. Настройка движка DataLife Engine

Поговорим о меню на сайте dle. Точнее о том, как добавить свои пункты в меню, или же заменить существующие на новые. Довольно часто, у новичков только установивших данную CMS возникает вопрос: «Как заменить стандартные пункты меню, в стандартном шаблоне, на свои?» Если, в wordpress, это можно осуществлять без редактирования кода, то в dle ситуация иная, в код все же придется залезть и немного там разобраться. Однако сложного в добавлении новых пунктов ничего нет, и я надеюсь, сегодня вы сможете в этом убедиться.

Итак, перейдем к делу. Для начала нам понадобится создать пункты, которые в последствии необходимо внедрить в меню dle, будь-то страницы или категории. Для этого заходим в админ панель и жмем на пункт «список всех разделов.»

А далее все зависит от ситуации. Если нам необходимо добавить в меню, ссылку на категорию сайта, то переходим в пункт «Категории», а если же нам нужно создать страницу, на которую будет направлять пользователя пункт меню, то переходим в пункт «Статические страницы». Принципиальной разницы между ними нет, поэтому мы выберем один из двух вариантов, например, «Категории».

Появится форма создания новой категории на сайте. Там все просто. Для чего служит каждое поле формы, см. изображение.

Не все поля, которые описаны на рисунке являются обязательными, а только первое и второе поле. А пункты, которые я не стал затрагивать на изображении вообще не относятся к категориям, а относятся к глобальным настройкам движка, таким как настройки вывода новостей dle , а также предоставляют возможность назначить уникальный шаблон, для каждой категории в отдельности.

После заполнения необходимых полей, как минимум первых двух, нажимаем на кнопку добавить. Это действие создаст новую категорию на сайте, ссылку на которую мы добавим в меню dle. И особое внимание обратите на второе поле, где необходимо было прописать альтернативное имя категории, которое будет составлять адрес, по которому будет находиться категория. В моем примере, он будет выглядеть так: http://сайт.ru/primer_category/

Теперь, перейдем к непосредственному добавлению нового пункта в меню dle.

Для этого, в админ панели нужно перейти в раздел «Шаблоны сайта».

А дальше необходимо выбрать один из двух файлов, если используется стандартный шаблон, в которых прописаны меню на сайте. В стандартном шаблоне имеется два вида меню: это, и горизонтальное и вертикальное. За горизонтальное меню отвечает файл topmenu.tpl, а за вертикальное меню в левой колонке сайта, отвечает файл sidebar.tpl. Оба этих файла можно найти в левой колонке раздела «Шаблоны сайта». А при клике на один из них, в правой колонке появится сам код данного файла.

После открытия файла, нам необходимо исправить любой существующий пункт на наш. То есть, изменить название, в данном случае на название категории. И подставить ссылку на саму категорию (альтернативное имя), вместо #. То есть если я заменю пункт «О сайте», то код меню станет выглядеть так:

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

Если вы в чем-то не уверены, например, что удалите что-то лишнее, то просто сделайте , чтобы в случае непредвиденных ситуаций его можно было восстановить.

А у меня на этом все.

Исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое. Скачать бесплатно .


DataLife Engine - это многофункциональная система управления сайтом. Благодаря очень мощной системе управления новостями, публикациями, статьями, пользователями, DataLife Engine предназначен в первую очередь для организации собственных средств массовой информации и блогов в сети интернет. Большое разнообразие базовых возможностей скрипта, изначально интегрированных в скрипт, позволяют DataLife Engine на шаг вперед опережать своих ближайших конкурентов в данном направлении создания сайтов. А благодаря точной и продуманной структуре ядра, сводящей к минимуму требования к ресурсам сервера, DataLife Engine способен с легкостью работать с высокопосещаемыми проектами c минимальной нагрузкой на сервер. Гибкость и легкость в настройке и интеграции собственного дизайна, позволит вам в кратчайшие сроки изучить и понять структуру шаблонов и соответственно развернуть собственные сайты, без каких-либо дополнительных материальных затрат.


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

2. Добавлена возможность учета количества просмотров для рекламных материалов, добавляемых в панели управления скриптом. Учет просмотров ведется только для реальных пользователей, которые зашли на сайт с использованием браузера. Боты, сканирующие сайт, не учитываются. Учет просмотров включается непосредственно для каждого баннера, поэтому вы можете учитывать просмотр только для нужных рекламных материалов. Также у вас есть возможность указать, нужно ли учитывать все просмотры баннера, или учитывать только просмотры от уникальных пользователей.

3. Для рекламных материалов в админпанели добавлена возможность ограничивать показ баннера на основе количества его просмотров, и вы можете отключить баннер при достижении указанного максимального количества просмотров.

4. Добавлена возможность учета количества кликов для рекламных материалов,
добавляемых в панели управления скриптом. DataLife Engine автоматически перехватывает HTML теги, опубликованные с использованием тегов, и автоматически ведет учет кликов по ним. Какого-либо особого оформления этих ссылок не требуется, они могут вести по любым нужным вам адресам. Также у вас есть возможность указать, нужно ли учитывать все клики по ссылке, или учитывать только клики от уникальных пользователей.

5. Для рекламных материалов в админпанели добавлена возможность ограничивать показ баннера на основе количества кликов по вашему баннеру, и вы можете отключить показ баннера при достижении указанного максимального количества кликов по нему.

7. Добавлено использование канонических ссылок, в коде страниц, для всех страниц сайта включая навигацию по разделам, просмотр полной новости и т.д. Данная возможность позволяет повысить SEO оптимизацию сайтов, а также позволяет избегать дублей страниц в случае если где-либо в сети интернет публикуются некорректные ссылки на ваш сайт, либо если по каким-либо причинам необходимо отключить контроль неверных ЧПУ.

8. В настройки категорий в панели управления, добавлена возможность устанавливать по умолчанию для категории, разрешено ли публиковать новости из данной категории на главной странице сайта. Данные настройки действуют в момент добавления или редактирования публикации, и если для категории запрещена публикация на главной странице, то соответствующая опция убирается в момент добавления или редактирования публикации.

9. В настройки категорий в панели управления, добавлена возможность устанавливать по умолчанию для категории, разрешены ли комментарии для публикаций из данной категории. Данные настройки действуют в момент добавления или редактирования публикации, и если для категории отключены комментарии, то соответствующая опция убирается в момент добавления или редактирования публикации.

10. В настройки категорий в панели управления, добавлена возможность устанавливать по умолчанию для категории, разрешен ли рейтинг для публикаций из данной категории. Данные настройки действуют в момент добавления или редактирования публикации, и если для категории отключено использование рейтинга, то соответствующая опция убирается в момент добавления или редактирования публикации.

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


12. Расширены возможности модуля "Метатеги", данный модуль был переименован в "Заголовки, описания, метатеги". Теперь в данном модуле вы можете задавать для страниц не только метатеги, но и отдельный заголовок для страницы и описание страницы, которые вы в дальнейшем можете вывести в любом месте вашего шаблона. Для этого добавлены новые глобальные теги для шаблонов: {page-title} - выводит указанный вами заголовок для страницы, {page-description} - выводит указанное вами описание для страницы. В описании страницы также допустимо использование BB и HTML тегов. Тем самым при помощи данного модуля, вы можете, например, создать и вывести заголовки и описания для облака тегов к каждому тегу персонально и т.д.

13. Добавлены новые глобальные шаблонные теги текст , которые выводят текст, заключенный в них если в модуле "Заголовки, описания, метатеги" был задан заголовок для просматриваемой страницы. А также добавлены противоположные теги текст которые выводят текст, заключенный в них если заголовок для просматриваемой страницы не был задан. Также были добавлены аналогичные теги и для описания: текст , которые выводят текст, заключенный в них если в модуле "Заголовки, описания, метатеги" было задано описание для просматриваемой страницы, текст которые выводят текст, заключенный в них если описание для просматриваемой страницы не было задано.

14. Для шаблона меню категорий (categorymenu.tpl) добавлена поддержка новых тегов текст , которые выводят текст, заключенный в них, если просматриваемая на сайте категория, или новость, не принадлежит категории из меню. Данный тег может использоваться только внутри тегов и используется, например, для вывода какой-либо информации (например ссылок) только для не активных категорий из меню.

15. Расширены возможности по выводу публикаций на основе значений дополнительных полей в публикациях. При обращении по адресу http://вашсайт/xfsearch/имя поля/значение поля/ будут выводится публикации, как и ранее, содержащие указанное значение в данном конкретном поле, если для поля задана опция "использовать как перекрестные ссылки". При обращении по адресу http://вашсайт/xfsearch/значение поля/ будут выводится публикации содержащие данное значение по всем дополнительным полям. При обращении по адресу http://вашсайт/xfsearch/имя поля/ будут выводится все публикации, в которых заполнено данное указанное поле.

16. В настройки скрипта добавлена возможность назначения отдельной страницы с именем 404.html в корне вашего сайта, для вывода страниц, контент для которых отсутствует. В случае включения данной настройки, вместо стандартного системного сообщения "К сожалению, данная страница для Вас недоступна, возможно был изменён её адрес или она была удалена.", вы можете вывести отдельную специально подготовленную заранее страницу, с полностью отдельным оформлением. Данное нововведение будет полезно для вебмастеров, которые хотят сделать отдельное оформление 404 страниц своего сайта.

17. В настройки скрипта добавлена возможность назначения HTTP заголовка, откуда необходимо получать IP адреса пользователей. Данное нововведение будет полезно для сайтов, которые используют различные внешние прокси серверы, и не имеют возможности правильно перенастроить сервер под них, для получения корректных реальных IP адресов посетителей. Например, при использовании сервиса cloudflare и других для защиты от DDOS атак и использовании обычного хостинг тарифа без доступа к серверным настройкам. Теперь вы можете в настройках скрипта в админпанели указать скрипту откуда ему брать IP адрес посетителей сайта.

18. При удалении категории в панели управления скриптом, добавлена возможность выбора, как поступить с публикациями, которые находятся в данной категории. Вы можете: "Убрать данную категорию из публикаций", "Заменить категорию на другую или другие категории", а также "Удалить все публикации находящиеся в данной категории". При этом если происходит удаление или замена категории из публикации, то будет убрана или заменена только удаляемая категория. Например, ваша публикация находится в категориях "В мире", "Новости", "Популярное", и вы к примеру, удаляете категорию "В мире", то у публикаций, находящихся в данной категории, только категория "В мире" будет удалена или заменена, все остальные категории в списке у данных публикаций останутся на месте.

19. Для публикаций добавлен новый тип дополнительного поля: "Чистый HTML и JS". При использовании данного поля, DataLife Engine не будет вмешиваться в текст, написанный в нём, и не будет проводить фильтрацию HTML кода этого текста, а также разрешает написание в нём чистого jаvascript кода. Данное поле будет полезно, когда вам в новость нужно вставить какой-то код, над которым не нужно проводить проверку безопасности, например, какой-либо свой плеер и т.д. Внимание, с учетом того скрипт не будет фильтровать текст из этого поля, при его создании обязательно установите ограничения, каким группам его разрешено использовать. Не разрешайте его использование обычным пользователям, которым вы не доверяете, в противном случае это может нести угрозу безопасности вашего сайта.

20. Для дополнительных полей публикаций, имеющих опцию "Использовать как перекрестные ссылки", добавлена возможность указания разделителя данных ссылок. Вы можете указать как отдельные символы, так и HTML код в качестве разделителя. Ранее в качестве разделителя списка использовалась запятая, теперь вы можете задать свой персональный разделитель для каждого поля, что позволяет создать для каждого поля свое уникальное оформление вывода в шаблоне.

21. Добавлена поддержка технологии "Яндекс Турбо" для обычных RSS каналов, без использования включения в настройках типа RSS потока как "Яндекс новости", для этого добавлена поддержка вывода полной новости тегом {full-story} для любого типа RSS потока. A также обновлен стандартный шаблон /templates/rss.xml в котором демонстрируется как должен выглядеть шаблон с полной поддержкой "Яндекс Турбо". Аналогично поддерживается полностью и возможность настройки шаблона RSS для технологии "Яндекс Дзен".

22. Добавлена возможность отвечать на комментарии при просмотре всех последних комментариев на сайте, в случае если в настройках скрипта включена поддержка древовидных комментариев. Тем самым вы можете, например, быстро отвечать на поступившие комментарии на сайт, не заходя в каждую новость при этом.

в связи с тем, что часть тяжелых скриптов была переведена на отложенную и независимую от рендеринга страницы загрузку. Данные скрипты загружаются в браузер параллельно с рендерингом страницы и запускаются только после завершения формирования страницы в браузере. Что визуально обеспечивает более быстрый показ страницы.

24. Добавлена возможность, для незарегистрированных на сайте пользователей, отправлять администрации сайта жалобы на новости и комментарии, точно также как такая возможность существовала ранее только для зарегистрированных пользователей.

25. Добавлено использование микроразметки schema.org для вывода рейтинга с типом "Оценка". Использование данной микроразметки позволяет для полных новостей при выводе их в результатах поиска в Google выводить также и рейтинг публикации.

26. Добавлено автоматическое определение ориентации фотографий при их загрузке на сервер, на основе метаинформации, содержащейся в графических файлах. В случае если оригинальная фотография была перевернута, то при при ее загрузке на сервер, скрипт также автоматически ее развернет в нужное положение. Тем самым отпадает необходимость дополнительно редактировать картинки на компьютере, если при фотографировании фотоаппарат был повернут.

27. Добавлена возможность автоматического уведомления администрации сайта о поступлении новой новости от пользователей, находящейся на модерации (в случае если это включено в настройках скрипта), если новость была добавлена из панели управления скриптом. Ранее уведомление отправлялось только если публикация добавлялась непосредственно с сайта.

28. В случае если пользователь редактирует публикацию в панели управления, которая ранее была уже опубликована на сайте, но согласно настройкам его группы, ему запрещено публиковать без модерации, или разрешено публиковать не во все категории, то администрации сайта также будет отправлено соответствующее e-mail уведомление, что данная новость ожидает модерации.

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

30. Для модуля "Перекрестные ссылки" в панели управления, добавлены две новые области замены для ссылок. Вы можете дополнительно указать замену только в статических страницах, а также выбрать замену в статических страницах, новостях и комментариях.

31. Для модуля "Поиск и Замена" в панели управления, добавлена возможность массовой замены текста в опросах к публикациям и в голосованиях на сайте.

32. Добавлена возможность удаления всех публикаций, ожидающих модерации у определенного пользователя. Для этого необходимо в разделе управления пользователями нажать на количество его публикаций и выбрать соответствующий пункт меню.

33. Добавлена возможность удаления всех комментариев, ожидающих модерации у определенного пользователя. Для этого необходимо в разделе управления пользователями нажать на количество его комментариев и выбрать соответствующий пункт меню.

34. В админпанели скрипта добавлен форматированный вывод количества различных счетчиков (просмотры, публикации, комментарии). Вывод этих счетчиков осуществляется в форматированном виде в виде разделения пробелом сотен, тысяч, миллионов и т.д. Что дает более наглядное представление и восприятие данных чисел.

35. Для шаблонов вывода комментариев и добавления комментариев (addcomments.tpl и comments.tpl) добавлена поддержка новых тегов текст - выводит текст в теге, если новость принадлежит указанным категориям, а также тегов: текст - выводит текст в теге, если новость не принадлежит указанным категориям. Тем самым вы можете задать разное оформление вывода комментариев и добавления комментариев для публикаций из разных категорий.

36. Добавлена поддержка склонений слов для тега вывода количества голосов, которые были выставлены для рейтинга публикаций. Например, вы можете использовать {vote-num} отзыв||а|ов. Ранее для этого тега это было недоступно, т.к. он содержит в себе HTML код, а не просто число.

37. В случае если в настройках скрипта включено использование сайта только по HTTPS протоколу, то cookies браузером также будут отправляться на сервер только по HTTPS протоколу и автоматически блокироваться если используется обычный HTTP протокол.

38. Добавлен контроль неверных ЧПУ для статических страниц, текст публикации которых разбит на несколько страниц. В случае если указан некорректный номер страницы, будет производится автоматический 301 редирект на начальный адрес данной страницы.

39. Для RSS импорта публикаций добавлена поддержка импорта картинок из тега enclosure содержащего изображение к публикации. В случае если краткое описание в потоке RSS является просто текстом, а картинка дана в нем отдельным тегом, то к краткой новости при импорте в самое начало будет добавлена также и картинка к этой публикации.

40. Добавлена поддержка редиректов для получения полных новостей при использовании RSS импорта публикаций. В случае если ссылка из RSS потока является редиректом для дальнейшего перехода к полному тексту новости на сайте источнике, то DataLife Engine автоматически последует по этому редиректу и будет брать контент из конечного источника. Тем самым получение полных новостей будет более качественным чем ранее.

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

42. В случае если комментарии разрешены для публикации, но при этом пользователю или группе пользователей согласно другим настройкам была запрещена публикация комментариев, то сообщение об этом будет выводиться не в конце всех комментариев, а в том месте, где вы в своем шаблоне определяете вывод формы добавления комментария тегом {addcomments}, тем самым вы можете сами определять местоположение данного сообщения на вашем сайте.

43. Для авторизации с использованием социальной сети "Одноклассники", добавлена возможность автоматического получения E-mail пользователя, при условии, что само приложение получило соответствующие права от Одноклассников. Внимание, по умолчанию Одноклассники не дают прав на получение E-mail, и для получения соответствующего доступа вам необходимо дополнительно обращаться в соц. сеть для разрешения получения e-mail. Если разрешение получено, то DLE также автоматически будет импортировать e-mail адрес.

44. Улучшена система вычисления пропорций изображения при создании уменьшенных копий. Тем самым создается более корректная и качественная уменьшенная копия.

45. Улучшена система поиска публикаций при включенном в настройках скрипта, простом типе поиска. Новый алгоритм позволяет более точно и правильно находить публикации.

46. Улучшена система контроля появления дублей страниц, при просмотре всех последних комментариев на сайте.

47. Оптимизирована обработка дополнительных полей публикаций при показе кратких публикаций, а также при работе модуля вывода популярных публикаций.

48. Обновлены визуальные редакторы TinyMCE и Froala до актуальных версий. Исправлен ряд выявленных ошибок в данных редакторах.

49. Для редактора TinyMCE добавлена поддержка вставки тегов скрытого текста, c использованием соответствующей кнопки в редакторе.

50. При использовании редактора Floara для комментариев, добавлена возможность быстрой загрузки и вставки изображений в комментарий. Вы можете либо нажать на иконку вставки картинки и выбрать файл для загрузки, либо просто перенести файл картинки с компьютера в поле редактора мышью, после чего картинка автоматически будет загружена и вставлена в позицию курсора в редакторе.

51. Внесены небольшие изменения в верстке панели управления скриптом, направленные на устранение некоторых ошибок в верстке и улучшение взаимодействия с панелью управления.

52. Обновлены до актуальных версий библиотека отправки почты с сайта, а также библиотека определения мобильных устройств.

53. Исправлена проблема, при которой в предварительном просмотре публикаций не обрабатывались теги и .

54. Исправлена проблема, при которой некорректно формировались метатеги для соц. сетей видео и аудио, если видео было опубликовано в доп. полях и состояло из плейлистов и описаний видео и аудио файлов.

55. Исправлена проблема, при которой при определенных ситуациях и настроек сервера мог не работать предосмотр публикаций, при добавлении публикаций с сайта.

56. Исправлена проблема, при которой не работала динамическая загрузка комментариев, если это включено в настройках скрипта, и при этом тег {jsfiles} размещен в самом низу сайта.

57. Исправлена проблема, при которой не работал показ последних комментариев, в случае если для определенной группы был запрещен просмотр некоторых категорий.

58. Исправлены обнаруженные и заявленные ранее небольшие ошибки в скрипте.

Приветствую всех, кто посвящает этим строкам свое драгоценное время.

В этой статье я хочу рассказать о способах оптимально настроить сервер и систему управления контентом 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/src

cd /usr/local/src


Загружаем в /usr/local/src файл mod_rpaf-0.6.tar.gz

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz


Распаковываем mod_rpaf-0.6.tar.gz

tar 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 обязательно узнайте мнение специалиста о их надежности.

При возникновении вопросов обращайтесь к поисковым системам - весь материал в свободном доступе!
Есть что добавить? Милости прошу к обсуждению!

Удачи вам и вашим проектам!

Были подготовлены и реализованы следующие изменения:


1. Полностью принципиально новая панель управления скриптом DLE. Дорогие друзья, в данной версии скрипта мы хотим вам предоставить полностью обновлённую панель управления скриптом. Данная панель была разработана с использованием всех последних новейших технологий, которые позволяют сделать процесс управления новостями и другими разделами скрипта, более удобными и информативно понятными. Помимо нового современного дизайна, данная панель управления является адаптивной и способной самостоятельно подстраиваться под используемые устройства, тем самым обеспечивается более удобное управление как с использованием десктопного компьютера, так и с использованием планшетов и смартфонов. Учитывая важность таких моментов как мышечная и зрительная память, а также привычка, мы постарались создать новую панель управления такой, чтобы все для вас оставалось на привычных местах, и вам не пришлось затрачивать много времени на освоение и изучение новой панели управления. Мы очень надеемся, что новая панель вам понравится, и вы оцените ее по достоинству. В связи с тем, что в новой панели управления активно используются HTML5 и CSS3 стандарты, мы были вынуждены отказаться от поддержки устаревших браузеров IE, для работы в новой панели вам понадобится IE10 и выше, а также актуальные версии браузеров Chrome, Firefox и Opera.

2. Все javascript файлы административной панели DLE теперь отделены от пользовательской части сайта и работают независимо. Например, если вы захотите самостоятельно обновить библиотеки сайта, например такие как Jquery и Jquery UI, вы можете это делать не опасаясь за совместимость с работой административной панели.

3. Добавлена новая система управления ключевыми словами для облака тегов и ключевыми словами для мета тегов при редактировании новостей в админпанели. Теперь вы сможете легко в один клик удалять не нужные вам ключевые слова, а также добавлять новые. Перечислять их через запятую больше не нужно, все заполняется интуитивно понятно.

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

5. Внесены изменения в логику показа рекламных материалов в админпанели , теперь вместо показа добавленного рекламного кода, показывается подсвеченный его исходный код, тем самым при добавлении каких-либо фрагментов HTML тегов, не будет нарушаться верстка админпанели, и вы всегда сможете управлять и редактировать код, непосредственно панели управления.

6. Существенно улучшен и переработан модуль редактирования комментариев в админпанели скрипта. Добавлена возможность одиночного удаления комментариев при помощи технологии AJAX, а также добавлена возможность пометки комментария как "Спам" и как следствие автоматического бана спамера и удаления всех его комментариев, и уведомление облачного сервиса о спамере, если это включено в настройках скрипта.

7. Добавлена функция динамической загрузки комментариев по мере просмотра посетителем страницы с полной новостью и чтения им комментариев. Данная функциональность основана на принципе: и применяется с использованием технологии AJAX. Например, вы установили показывать 30 комментариев на каждую страницу, а у новости 100 комментариев, то при заходе на страницу с новостью, для пользователя будет показано первые 30 комментариев, по мере скроллинга страницы вниз и чтения комментариев, по окончании списка комментариев, вместо навигации по комментариям, на страницу будут автоматически подгружены следующие 30 комментариев и т.д. по мере скроллинга страницы, пока не будут показаны все комментарии к новости. Данная функциональность включается и отключается в настройках скрипта.

8. Добавлена возможность указывать заголовок страницы правил сайта непосредственно в админпанели, при редактировании правил для сайта.

9. Для вывода новостей с использованием пользовательского тега {custom ...} добавлена возможность вывода навигации по страницам. Для этого добавлен новый параметр тега navigation="yes" . При добавлении данного параметра к пользовательскому тегу, будет выводится постраничная навигация по новостям, выводимым данным тегом. Тем самым вы можете осуществлять вывод новостей именно по вашим параметрам и при этом сохранять навигацию по страницам, если новостей по данным параметрами много. Навигация выводится только для страниц сайта, которые поддерживают навигацию для тега {content} , например, главная страница, страницы категорий и т.д. Если же страница не поддерживает навигации, например, вывод полной новости, или статической страницы, то для данного тега навигация автоматически также будет отключена.

10. Для тега пользовательского вывода новостей {custom ...} добавлен новый параметр fixed="without" , который выводит только новости, которые не были зафиксированы при публикации.

11. Обновлен HTML5 плеер до актуальной версии , добавлена поддержка полноэкранного режима в браузере IE11.

12. В модуле перекрестных ссылок добавлена возможность использования ссылок, содержащих в себе URL кодированные символы.

13. Добавлена проверка e-mail пользователя при его смене в профиле на то, находится ли данный адрес или пул адресов в списке адресов, запрещенных администратором к регистрации на сайте. Ранее данная проверка проводилась только при первоначальной регистрации посетителя на сайте.

14. Добавлено указание логина пользователя в e-mail письме , которое отправляется пользователю, в случае смены им своего e-mail адреса в профиле. Данное нововведение будет полезным также администраторам сайтов, в случае если e-mail адрес пытается сменить бот на несуществующий, в результате администраторам приходят письма о недоставке, и они могут видеть кто меняет данные, и соответственно принять меры к данному пользователю.

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

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

17. Добавлена возможность предосмотра рекламных материалов , добавленных в админпанели при помощи отдельного всплывающего окна.

18. Для модуля управления перекрестными ссылками добавлена возможность указания области применения, где будет производиться замена ключевого слова ссылкой. Вы можете для каждого ключевого слова указать либо замену по всей страницы, либо замену в новостях и комментариях, либо замену только в новостях, либо замену только в комментариях.

19. В модуле управления перекрестными ссылками в админпанели , добавлена проверка на уже существующие в базе данных ключевые слова. Тем самым избегается появление дубликатов ключевых слов.

20. Для модуля управления перекрестными ссылками добавлена возможность использование множественного склонения слов в пределах ключевой фразы, с указанием склонения для нескольких слов одновременно. Например, вы можете указать для замены фразу Иван(ов|ова|ову) Ива(н|на|ну) Иванови(ч|ча|чу) . А также добавлена возможность комбинирования фразы из нескольких слов, как содержащий склонения, так и не содержащий, например, фраза: Ремон(т|та|ту) мебели .

21. Изменен алгоритм вывода информации при помощи тега {title} в шаблоне вывода похожих новостей (relatednews.tpl ). При использовании данного тега будет выводится полный заголовок новости без его обрезания до 75 символов как ранее.

22. Для шаблона вывода похожих новостей (relatednews.tpl) добавлена поддержка нового тега {title limit="x"} , который выводит заголовок новости, сокращенный до указанного количества в теге X символов. При этом сокращение заголовка производится до завершения логического слова, а не обрывается посередине.

23. Для шаблона вывода кратких новостей (shortstory.tpl) добавлена поддержка новых тегов текст текст , и выводят текст заключенный в данные теги при показе любых по счету новостей, кроме указанных X новостей. Данный тег будет полезен, если вы хотите выводить какие-либо элементы оформления во всех новостях при показе кратких новостей, кроме вышеуказанных. Например, что-либо не показывать в первой по списку новости.

24. Для шаблона вывода комментариев (comments.tpl) добавлена поддержка новых тегов текст , которые является противоположностью уже существующих тегов текст , и выводят текст заключенный в данные теги при показе любых по счету комментариев, кроме указанных

Новость на DLE без загрузки и без обновления страницы!
Особенности модуля:
Не требует каких-либо правок движка. Учёт прав доступа к новости. Если пользователю по каким то причинам запрещено просматривать полную новость в настройках - он не сможет её посмотреть. Подсчёт количества просмотров. Модуль учитывает настройки DLE и если требуется - засчитывает просмотр новости. Корректная очистка кеша модуля. Кеш модуля очищается в соответствии с правилами автоочистки кеша DLE, поэтому в быстром просмотре новость будет всегда актуального содержания. Поддержка всех тегов. Модуль поддерживает все теги шаблона fullstory.tpl. Если тег не нужен в быстром просмотре - вместо него будет пустота. (форма добавления комментариев, сами комментарии). Кеширование на стороне клиента. Модуль отдаёт правильные заголовки. Если включено кеширование на сайте и пользователь повторно вызовет быстрый просмотр новости - браузер получит в ответ 304 статус и отдаст пользователю закешированную (в браузере) страницу. Установка:
Распаковать содержимое папки upload в корень сайта.
В нужном месте любого шаблона вставить минимальный код: Быстрый просмотр

Где {news-id} - ID новости (обязательный параметр).
Так же можно использовать дополнительные атрибуты:
Быстрый просмотр
data-afs-template="mytemplate" - путь к шаблону модуля относительно текущей папки с шаблоном сайта.

По умолчанию: **{THEME}/ajax/fullstory**. (Необязательный параметр).
data-afs-preset="mypreset" - путь к файлу с настройками модуля. По умолчанию не используется.
3. В js файл шаблона вставить:
$(document).on("click", "", function () { var $this = $(this), $data = $this.data(); $.ajax({ url: dle_root + "engine/ajax/full-story.php", type: "GET", dataType: "html", data: { newsId: $data.afsId, // Обязательная переменная preset: ($data.afsPreset) ? $data.afsPreset: "", // Название файла с настройками (необязательно) template: ($data.afsTemplate) ? $data.afsTemplate: "", // Название файла с шаблоном (необязательно) }, }) .done(function (data) { var $html = $(data); // Данные получены, можно заняться разбором и показать их в диалоге // Ниже простейший пример вывода контента в стандартном модальном окне DLE var modalId = "afs-" + $data.afsId + "-" + $data.afsPreset + "-" + $data.afsTemplate; modalId = modalId.replace(///g, "-"); var $modalBlock = $("

"); $modalBlock .appendTo("body") // Добавляем блок на страницу.find("#" + modalId) // Ищем интересующий нас селектор.html($html) // Вставляем в него полученный код.dialog({ // Показываем модальное окно width: 800 }); }) .fail(function () { console.log("full-story error"); }); }); 4. В CSS-файл шаблона вставить код для стилизации выводимых ошибок:
.afs-error { /*Общий стиль для всех ошибок*/ padding: 20px; background: #fff; color: #424242; } .afs-news-error { /*Стиль ошибки, если новость не найдена*/ background: #eceff1; } .afs-tpl-error { /*Стиль ошибки, если не найден шаблон*/ color: #b71c1c; } .afs-perm-error { /*Стиль ошибки, если не достаточно прав для просмотра полной новости*/ background: #e65100; color: #F5F5F5; }
Готово! Не забудьте подправить JS и CSS код под оформление своего сайта.
Параметры, принимаемые модулем:
Модуль принимает через GET-запросы следующие параметры:
newsId - обязательный параметр. ID новости для показа.
template - путь к шаблону модуля относительно текущей папки с шаблоном сайта.
Если на сайте разрешена смена скина, то путь будет построен относительно активного в данный момент шаблона сайта.
По умолчанию: {THEME}/ajax/fullstory
preset - путь к файлу с настройками модуля. По умолчанию не используется.
Настройки модуля:
Настройки модуля хранятся в отдельном файле, это сделано для безопасной передачи настроек и уменьшения нагрузки на хостинг.
Для хранения настроек был выбран формат шаблона т.к. его можно отредактировать через админпанель.
При формировании настроек необходимо соблюдать следующий синтаксис:
- Параметры необходимо писать по одному в строке.
- Имя параметра и его значение необходимо разделять знаком равенства.
На данный момент возможно использование следующих параметров:
fields - поля, отбираемые из БД.
Доступны следующие поля для запроса: short_story, full_story, xfields, comm_num, fixed, tags.
Так же можно использовать поле all, тогда будут отобраны все возможные поля новости из БД. Аналогичный результат будет, если не передавать в модуль переменную preset или передать её пустой.
cachePrefix - префикс кеша, создаваемого модулем. По умолчанию full. Если вы хотите, чтобы кеш модуля автоматически не чистился - можно изменить этот парамер.