Advertisement
MikFoxi

Дорген iDoor CMS v. 1.07

Jun 15th, 2019
2,534
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 29.24 KB | None | 0 0
  1. Дорген iDoor CMS v. 1.07 от 15 июня 2019.
  2.  
  3. Этот дорген является идеологическим продолжением iDoor Lite + мультикеи.
  4.  
  5. Возможна доп услуга по настройке сервера/vps под этот дорген без панелей.
  6. Или можете преобрести баш скрипт самостоятельной настройки сервера: https://wmsn.biz/m.php?p=141206
  7.  
  8. Демо пример дора и официальная страница: https://idoorcms.top/
  9.  
  10. Основная философия доргена:
  11. 1) быстрое создание безлимитного количества дорвеев.
  12. 2) никаких парсингов, только кеи загрузить из файла.
  13. 3) максимальная скорость работы и минимальные нагрузки.
  14.  
  15. Софтовые требования к серверу: nginx или apache, php 7, memcached.
  16. Хардовые требования к серверу: желательно от 2 GB RAM, SSD.
  17.  
  18. ------------------------------------------------------------------------
  19. ВСЯКИЕ НЮАНСЫ:
  20.  
  21. В дорген встроен легкий клоакинг (ботам один шаблон, людям другой) и антибот лайт.
  22. Для максимального быстродействия размер свободной оперативки должен быть больше размера базы.
  23. Субдомен www редиректит всегда на без www.
  24. Дорген устанавливается только в корень сайта, в папках не работает.
  25. Дорген поддерживает мультисайтовость (много доменов на одном скрипте).
  26. Дорген поддерживает мультикеи (дополнительные столбцы структурированных данных в базе).
  27. Дорген больше затачивается под Google и бурж, т.к. Яндекс доры победил.
  28.  
  29. ------------------------------------------------------------------------
  30. УСТАНОВКА:
  31.  
  32. 1) залить кеи в /data/keywords.txt построчно в utf-8 без bom (предварительно чекайте на дубли).
  33. 2) запустить в браузере /testdb.php (чтобы определить какую длину строки выставить).
  34. 3) выставить в конфиге /data/conf.php длину строки в переменной $str_len.
  35. 4) запустить /install.php в браузере, при успехе получите цифру кеев в базе.
  36. 5) цифру (или 2, если с мультикеями) из пункта 4 прописать в конфиг в переменную $max_num и $multi_str_len.
  37. 6) скрипты /install.php и /testdb.php можно удалить.
  38. 8) В конфиг домена в nginx (если на сервере только nginx без apache) прописать реврайты и настройки:
  39.  
  40. error_page 404 = /404.php;
  41. error_page 500 501 502 503 504 /5xx.htm;
  42. location / {
  43.     rewrite ^/robots.txt$ /robots.php;
  44.     rewrite ^/sitemap.xml$ /sitemap.php;
  45.     rewrite ^/yandex_(.*).html$ /wm.php?id=$1;
  46.     rewrite ^/wmail_(.*).html$ /wm.php?id=$1;
  47.     rewrite ^/google(.*).html$ /google.htm;
  48.     rewrite ^/(.*).pdf$ /index.php;
  49.     rewrite ^/(.*).txt$ /index.php;
  50.     rewrite ^/(.*).html$ /index.php;
  51.     index index.php;
  52. }
  53.  
  54. location ~ /(data/|php/) {
  55.     deny  all;
  56. }
  57.  
  58. Долив кеев в базу не предусмотрен, если нужно добавлять - придется пересоздавать все с нуля с новыми кеями.
  59. Размер файла keywords.txt не важен, чтение из него идет построчно, потому загружать можно десятки млн кеев.
  60.  
  61. ------------------------------------------------------------------------
  62. СОСТАВ СКРИПТА:
  63.  
  64. .htaccess - реврайты для апача.
  65. 404.php - страница ошибок с кодом ответа сервера 404 b редиректом на морду.
  66. 5xx.htm - страница ошибок, если сервер с nginx упадет.
  67. BingSiteAuth.xml - файл для подтверждения в Bing Webmaster
  68. bing.php - редирект на пинг xml карты в bing (пусть боты сами пингуют дор).
  69. cntr.php - счетчик хитов юзеров, выполняющих JS.
  70. data/conf.php - конфиг, изучить и настроить лучше заранее.
  71. data/content.db - база доргена, ее нету, но она появится после запуска install.php
  72. data/multi.db - база мультикеев, ее нету, но она появится после запуска install.php
  73. data/keywords.txt - список ключевиков построчно в utf-8 без bom для заливки в базу.
  74. data/la.txt - лог медленных запросов, для вычисления какой LA сервер выдерживает.
  75. data/noref.txt - лог зашедших с пустым реферером, в основном говноботы, которых надо забанить в nginx.
  76. data/tpl_sebot.txt - шаблон для ботов (Яндекс, Гугл, Мейл, Бинг, Байду, Яху).
  77. data/tpl_user.txt - шаблон для людей.
  78. data/youtube.txt - база id видео из youtube созданная скриптом admin/youtube_pars_from_bing.php
  79. google.php - редирект на пинг xml карты в google (пусть боты сами пингуют дор).
  80. google.htm - для подтверждения в Google Webmaster (через html файл).
  81. html.php - html карта сайта.
  82. index.php - основа доргена, просто, кратко и гениально.
  83. info.txt - инструкция которую вы читаете, перечитывать при выходе новых версий.
  84. php/SxGeo.dat - база для определения geo ip.
  85. php/SxGeo.php - функция определения geo данных ip.
  86. php/geo-en.php - гео оптимизация под США (микроразметка, гео теги, упоминание городов).
  87. php/geo-ru.php - гео оптимизация под Россию (микроразметка, гео теги, упоминание городов).
  88. robots.php - динамический robots.txt
  89. rss.php - RSS лента с рандомными ссылками на страницы домена.
  90. sitemap.php - динамический sitemap.xml
  91. wm.php - динамическое подтверждение через html файл в вебмастере яндекса и мейла.
  92. admin/stat.php - статистика запросов к дорвею.
  93. admin/install.php - инсталятор ключевиков в дорвей, после запуска можно удалить с сервера.
  94. admin/testdb.php - нализатор файла data/keywords.txt
  95. admin/hosts.php - линковка дорвеев, в коде скрипта есть настройки.
  96. admin/hosts_rand.php - линковка дорвеев, в коде скрипта есть настройки.
  97. admin/yml-to-txt.php - конвертер xml выгрузок товарок, в коде скрипта есть настройки.
  98. admin/youtube_pars_from_bing.php - парсер ключевиков и видео с youtube, в коде есть настройки.
  99.  
  100. ------------------------------------------------------------------------
  101. НАСТРОЙКИ КОНФИГА:
  102.  
  103. date_default_timezone_set('Europe/Moscow') - Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте. Список поддерживаемых зон: https://www.php.net/manual/ru/timezones.php
  104.  
  105. $str_len - Длина строки в байтах в базе ключевиков. НАСТРОИТЬ ДО ИНСТАЛА КЕЕВ И БОЛЬШЕ НЕ МЕНЯТЬ. Анализировать (подбирать оптимальную длину) в скрипте testdb.php
  106.  
  107. $multi_keys - Включить мультикеи (1) или не использовать мультикеи (0). НАСТРОИТЬ ДО ИНСТАЛА КЕЕВ.
  108.  
  109. $multi_delimiter - Символ разделения кеев и мультикеев в строке. НАСТРОИТЬ ДО ИНСТАЛА КЕЕВ.
  110.  
  111. $multi_str_len - Длина строки в базе мультикеев. Это число получите после запуска install.php
  112.  
  113. $multi_db_file - Имя файла базы мультикеев в папке data.
  114.  
  115. $db_file - Имя файла базы кеев в папке data.
  116.  
  117. $adminname - Логин для доступа к stat.php, testdb.php и т.п. админским местам.
  118.  
  119. $adminpass - Пароль для доступа к stat.php, testdb.php и т.п. админским местам.
  120.  
  121. $tpl_sebot - Файл шаблона для SE ботов в папке data.
  122.  
  123. $tpl_user  - Файл шаблона для людей в папке data.
  124.  
  125. $all_keys - Столько всего брать ключевиков из базы для SE ботов. Должно быть больше чем сумма чисел в $tit_keys + $des_keys + $lnk_keys + $hst_keys + $ufu_keys. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен. Для посетителей-людей будет браться всегда $all_keys = $tit_keys (для снижений нагрузки). При превышении $la_max - для SE ботов будет автоматически = 10 до момента снижения $la_max до нормы. Оптимально в пределах 80-130 ключевиков.
  126.  
  127. $tit_keys - Ключевиков для заглавия. Если используются мультикеи, то будет автоматически применяться = 1. Хотя 1 это оптимально для большинства тематик. Если кеи близкородственные и весь дор делается под один урл слива, то можно и 2-3 поставить. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
  128.  
  129. $des_keys - Ключевиков для мета описания. Оптимально 3-5. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
  130.  
  131. $lnk_keys - Ссылок локальной перелинковки. Оптимально 5-10. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
  132.  
  133. $hst_keys - Количество ссылок в линковке живых доменов. Оптимально до 3 (больше поисковикам не нравится много исходящих). Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
  134.  
  135. $ufu_keys - Количество ссылок дополнительной линковки типа меню c ЧПУ. Если больше 0 то количество страниц на доре будет > $max_num, т.е. дор на количество страниц будет безлимитный. Если используются мультикеи, то лучше отключить, поставив = 0, т.к. на таких страницах будут левые мультикеи, не совпадающие с ключевиком. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
  136.  
  137. $additional_keys - Добавить столько раз $title в $content (+ еще будет 4 варианта с тегами) для увеличения плотности кея в тексте. Если текст (кеи) и так перенасыщен словами изза однородности исходных кеев, то лучше поставить 0.
  138.  
  139. $max_num - Количество кеев в базе (взять после запуска install.php).
  140.  
  141. $la_max - Максимальный load average при котором ботам показывать минимизированный контент. Подбирать методом тыка, наблюдая как ваш сервер справляется с нагрузкой и при каком LA страницы начинают тормозить.
  142.  
  143. $site_name - Название сайта. Можно указать какой нибудь очень жирный ключевик по тематике дорвея.
  144.  
  145. $noref_msg - Текст кнопки если юзер не поисковый бот и зашел с пустым реферером.
  146.  
  147. $mem_stat_disable - Отключить статистику (1) stat.php (немного снижает нагрузку, если memcached по статистике htop ее создает), 0 - не отключать.
  148.  
  149. $memcached_host - Адрес хоста мемкешеда, по правильному и оптимизированному должно быть типа так: /var/run/memcached/memcached.sock (это unix сокет, он на процентов 30 быстрее, чем tcp), но по дефолту часто = 'localhost', это tcp сокет. Пример правильного конфига /etc/memcached.conf: https://pastebin.com/E1JYUm9a
  150.  
  151. $memcached_port - Порт мемкешеда, для юникс сокета по примеру выше = 0, по дефолту часто = 11211
  152.  
  153. $memcached_prefix - Префикс для данных в мемкешеде (если на сервере много пачек доров и запросы людей и ботов к ним надо разделить), формат лучше вида: латиница и обязательно подчеркивание в конце, чтоб небыло никаких внутренних конфликтов.
  154.  
  155. $cloudflare_only - Если нужно не спалиться, что на ip доры, 1 - разрешить доступ только через cloudflare, 0 - разрешить всем.
  156.  
  157. $https_only - Протокол работы дорвеев. Если все доры через cloudflare, то оптимально 1 - разрешить только https доступ, 0 - разрешить и http.
  158.  
  159. $notmodified304 - Если посетитель (бот или человек) пришел с заголовком HTTP_IF_MODIFIED_SINCE или HTTP_IF_NONE_MATCH то отвечать кодом 304 Not Modified (1), это снижает нагрузку и бот не сможет увидеть контент, если он там уже новый изменился, 0 - не включать.
  160.  
  161. $autolink_disable - Умная автоматическая линковка живых доменов. Чем больше кто-то (бот или человек) заходит на страницы домена, тем больше ссылок появляется на этот домен. 0 - автоматически линковать. 1 - отключить линковку (текущие ссылки в мемкешеде чистить самостоятельно или заменять).
  162.  
  163. $txtpage_disable - Экспериментальная функция, если включить то будет безлимит текстовых страниц (как безлимит ЧПУ страниц) польза или вред от этих страниц научно не доказана, но в essay тематике на них вроде траф есть. разрешить безлимит txt страниц (0) или запретить .txt страницы (1).
  164.  
  165. $notnum_disable - Отключение неномерных .html страниц. 0 - не запрещать, 1 - запретить неномерные урлы. Если 1, то все ЧПУ урлы (настройка $ufu_keys) и .txt страницы (настройка $txtpage_disable) не будут работать, вместо них будет 301 редирект на рандомную номерную страницу вида 123.html
  166.  
  167. $lnk_max - Количество страниц на домене, номерные страницы, отображается в основной линковке, в рсс ленте и xml карте сайта. Этот параметр никак не связан с регулированием ссылок и страниц через $ufu_keys.
  168.  
  169. ------------------------------------------------------------------------
  170. МАКРОСЫ ДЛЯ ШАБЛОНОВ:
  171.  
  172. <?php echo $lang; ?> - Язык браузера (2 буквенный код в нижнем регистре), возможные варианты: http://htmlbook.ru/html/value/lang (только 2 буквенные).
  173.  
  174. <?php echo $country; ?> - Код страны (2 буквенный код в ВЕРХНЕМ регистре), берется из Cloudflare или определяется по базе SxGeo.
  175.  
  176. <?php echo $title; ?> - Заглавие, главный ключевик страницы, под которую оптимизируется страница, его длина регулируется конфигом $tit_keys.
  177.  
  178. <?php echo $descr; ?> - Описание, его длина регулируется конфигом $des_keys. Применять только в шаблоне для ботов, в шаблоне для людей он будет с пустым значением.
  179.  
  180. <?php echo $content; ?> - Контент. Применять только в шаблоне для ботов, в шаблоне для людей он будет с пустым значением.
  181.  
  182. <?php echo $links; ?> - Ссылки в ЧПУ виде, их количество регулируется конфигом $ufu_keys. Применять только в шаблоне для ботов, в шаблоне для людей он будет с пустым значением.
  183.  
  184. <?php echo $canonical; ?> - Полный урл текущей страницы вида http://door.com/123.html
  185.  
  186. <?php echo $site_name; ?> - Название дора из конфига.
  187.  
  188. <?php echo Table(2, 5); ?> - Вывод генеренной таблицы для разнообразия структуры контента. Применять только в шаблоне для ботов и только 1 раз в шаблоне. Настройки отображения: 2 это вероятность отображения таблицы на странице 1 из 2. 5 это количество строк в таблице.
  189.  
  190. <?php echo YouTube(2, 1000, 'video'); ?> - вывод случайного youtube видео или фото (скриншот из видео) из файла data/youtube.txt (если база видео создана с помощью скрипта youtube_pars_from_bing.php), настройки отображения: 2 это вероятность отображения видео на странице 1 из 2, 1000 это количество id видео в файле data/youtube.txt, video - тут может быть 2 варианта: video или image.
  191.  
  192. В остальном как все это оформлено можно посмотреть в имеющихся шаблонах.
  193.  
  194. Если дорвей с мультикеями, то в шаблоне будет доступен массив $multi, с значениями мультикея, которые можно применять в шаблонах в виде <?php echo $multi[0]; ?> <?php echo $multi[1]; ?>
  195.  
  196. Гео оптимизация дорвея под США или Россию (гео мета данные, гео микроразметка, гео субдомены). Под основные города России (/php/geo-ru.php) и США (/php/geo-en.php).
  197.  
  198. Для использования: в конец конфига дорвея вставить инклуд:
  199. require_once($_SERVER['DOCUMENT_ROOT'].'/php/geo-ru.php');
  200.  
  201. Если использовать при создании дорвеев по схеме: имя субдомена = город из скрипта (адрес дора делать вида: arhangelsk.domen.ru), то гео данные будут привязаны к этому городу-субдомену, иначе будет браться рандомный город. Если инклуд вставить в конфиг, то рандомный город будет привязан к домену, если инклуд вставить в шаблон, то рандомный город будет привязан к текущей странице.
  202.  
  203. Дальше в шаблоне можно использовать 3 дополнительных макроса:
  204.  
  205. <?php echo $geo_title; ?> - выводит текст типа "в Городе" (в Москве), можно использовать в заглавии: <title><?php echo $title; ?> <?php echo $geo_title; ?></title> или так: <h1><?php echo $title; ?> <?php echo $geo_title; ?></h1>
  206.  
  207. <?php echo $geo_meta; ?> - выводит гео мета теги. Вставлять этот код соответственно в район мета тегов.
  208.  
  209. <?php echo $geo_address; ?> - выводит адрес с микроразметкой. Вставлять в контент (например в footer).
  210.  
  211. ------------------------------------------------------------------------
  212. МУЛЬТИКЕИ:
  213.  
  214. Мультикеи - это дополнительные "столбцы" структурированных данных в базе, связанные с основным ключевиком.
  215. Для их использвания - включить в конфиге соответствующие пункты.
  216. Файл кеев /data/keywords.txt создавать в виде:
  217. Ключевик|Мультикей 1|Мультикей 2|Мультикей 3|Мультикей 4|Мультикей 5
  218. Количество столбцов не ограничено. Символ разделителя указан в конфиге.
  219. В шаблонах выводить в виде <?php echo $multi[0]; ?> <?php echo $multi[1]; ?>
  220. Не забывайте про начала счета с нуля в php, т.е. в данном примере будет:
  221. Мультикей 1 = <?php echo $multi[0]; ?>
  222. Мультикей 2 = <?php echo $multi[1]; ?>
  223.  
  224. ------------------------------------------------------------------------
  225. ТИПЫ СТРАНИЦ:
  226.  
  227. /123.html - основные страницы, которые в линковке из контента, xml карте и рсс ленте.
  228. /Ключевик.html - доп система бесконечной линковки, отображаемая макросом $links.
  229. /Ключевик.txt - текстовая копия страницы /Ключевик.html, хз зачем созданная.
  230. /sitemap.xml - xml карта сайта.
  231. /rss.php - рсс лента с рандомным выводом страниц.
  232.  
  233. ------------------------------------------------------------------------
  234. ПОДТВЕРЖДЕНИЕ В ПАНЕЛЯХ ВЕБМАСТЕРА:
  235.  
  236. Для Яндекса и Мейла - просто ничего не меняя на доре в панели вебмастера жать "подтвердить через html файл".
  237. Для Гугла - в файл google.htm добавить строку предлагаемую для подтверждения через html файл и потом подтверждать.
  238. Для Бинг - подтверждение через BingSiteAuth.xml файл, сначала залив его на сервер.
  239.  
  240. ------------------------------------------------------------------------
  241. Совсем всякая всячина:
  242.  
  243. Бот фринома, его банить не надо, встречается в логе noref.txt:
  244. AppEngine-Google; (+http://code.google.com/appengine; appid: s~gce-spider)
  245.  
  246. ------------------------------------------------------------------------
  247. ЛОГ ИЗМЕНЕНИЙ:
  248.  
  249. 1.07 от 15 июня 2019:
  250.  
  251. Добавлен .htaccess, теперь можно без проблем запускать дорген на apache.
  252.  
  253. -----
  254.  
  255. 1.06 от 13 июня 2019:
  256.  
  257. Папка "доп скрипты" переименована в admin, теперь из нее скрипты не надо доставать, нужно там их и запускать.
  258. Скрипты stat.php, testdb.php и install.php изменены и перенесены в папку admin.
  259. Все скрипты в папке admin обновлены.
  260. В статистику admin/stat.php добавлены средние данные кол-ва запросов в секунду.
  261. index.php много взяких изменений и добавлений функций.
  262. Мелкие незначительные правки в остальных .php скриптах в корне доргена.
  263. Новый макрос <?php echo YouTube(2, 1000, 'video'); ?> для вывода видео и фото.
  264. Новый макрос <?php echo Table(2, 5); ?> для вывода генеренной таблицы (для разнообразия структуры контента).
  265. В шаблон data/tpl_sebot.txt вставлены новые макросы.
  266. В конфиге data/conf.php обновлены рекомендуемые оптимальные настройки цифр.
  267. В конфиг добавлена новая настройка $notnum_disable - запрет не номерных урлов.
  268.  
  269. -----
  270.  
  271. 1.05 от 5 июня 2019:
  272.  
  273. php/geo-en.php и php/geo-ru.php - исправлены ошибки, их заменить.
  274.  
  275. -----
  276.  
  277. 1.04 от 4 июня 2019:
  278.  
  279. index.php - исправлена ошибка, возникшая в предыдущей версии (не всех mail.ru ботов пускало).
  280.  
  281. -----
  282.  
  283. 1.03 от 2 июня 2019:
  284.  
  285. info.txt - дополнено описание.
  286. index.php - всякие изменения и оптимизации.
  287. data/tpl_sebot.txt - теперь шаблон оптимизирован для мобильных устройств (гуглу норм).
  288. data/tpl_user_iframe_modal.txt - шаблон для людей, с фреймом и модалкой (для тех, кто хз что вешать на дор).
  289. php/geo-en.php - гео оптимизация под США (микроразметка, гео теги, упоминание городов).
  290. php/geo-ru.php - гео оптимизация под Россию (микроразметка, гео теги, упоминание городов).
  291.  
  292. -----
  293.  
  294. 1.02 от 16 мая 2019:
  295.  
  296. Строка реврайтов nginx:
  297. rewrite ^/google(.*).html$ /google.htm;
  298. заменена на:
  299. rewrite ^/google(.*).html$ /google.htm;
  300. rewrite ^/(.*).pdf$ /index.php;
  301.  
  302. Файл google.txt переименован в google.htm
  303. Был косяк с подтверждением в google webmaster и на будущее .pdf добавлено.
  304.  
  305. Изменен index.php - всякие правки.
  306.  
  307. В конфиг добавлена новая переменная: $txtpage_disable = 1;
  308.  
  309. -----
  310.  
  311. Относительно iDoor Lite:
  312. Дорген полностью переписан.
  313. Снижение нагрузки в 10 раз.
  314. Ускорение генерации страниц в 10 раз.
  315. Расширен список настроек конфига.
  316. Больше не надо sqlite.
  317. Добавлены мультикеи.
  318. Улучшена линковка из контента.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement