Advertisement
MikFoxi

idoor cms info

May 16th, 2019
1,548
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 21.37 KB | None | 0 0
  1. Дорген iDoor CMS v. 1.02 от 16 мая 2019.
  2.  
  3. Этот дорген является идеологическим продолжением iDoor Lite + мультикеи.
  4.  
  5. Возможна доп услуга по настройке сервера/vps под этот дорген без панелей.
  6.  
  7. Демо пример дора и официальная страница: https://idoorcms.top/
  8.  
  9. Основная философия доргена:
  10. 1) быстрое создание безлимитного количества дорвеев.
  11. 2) никаких парсингов, только кеи загрузить из файла.
  12. 3) максимальная скорость работы и минимальные нагрузки.
  13.  
  14. Софтовые требования к серверу: nginx, php-fpm 7, memcached.
  15. Хардовые требования к серверу: желательно от 2 GB RAM, SSD.
  16.  
  17. ------------------------------------------------------------------------
  18. ВСЯКИЕ НЮАНСЫ:
  19.  
  20. В дорген встроен легкий клоакинг (ботам один шаблон, людям другой) и антибот лайт.
  21. Для максимального быстродействия размер свободной оперативки должен быть больше размера базы.
  22. Apache не поддерживается, на нем не тестировалось и не планируется.
  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 прописать реврайты и настройки:
  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. 404.php - страница ошибок с кодом ответа сервера 404 b редиректом на морду.
  65. 5xx.htm - страница ошибок, если сервер с nginx упадет.
  66. BingSiteAuth.xml - файл для подтверждения в Bing Webmaster
  67. bing.php - редирект на пинг xml карты в bing (пусть боты сами пингуют дор).
  68. cntr.php - счетчик хитов юзеров, выполняющих JS.
  69. data/conf.php - конфиг, изучить и настроить лучше заранее.
  70. data/content.db - база доргена, ее нету, но она появится после запуска install.php
  71. data/multi.db - база мультикеев, ее нету, но она появится после запуска install.php
  72. data/keywords.txt - список ключевиков построчно в utf-8 без bom для заливки в базу.
  73. data/la.txt - лог медленных запросов, для вычисления какой LA сервер выдерживает.
  74. data/noref.txt - лог зашедших с пустым реферером, в основном говноботы, которых надо забанить в nginx.
  75. data/tpl_sebot.txt - шаблон для ботов (Яндекс, Гугл, Мейл, Бинг, Байду, Яху).
  76. data/tpl_user.txt - шаблон для людей.
  77. google.php - редирект на пинг xml карты в google (пусть боты сами пингуют дор).
  78. google.htm - для подтверждения в Google Webmaster (через html файл).
  79. html.php - html карта сайта.
  80. index.php - основа доргена, просто, кратко и гениально.
  81. info.txt - инструкция которую вы читаете, перечитывать при выходе новых версий.
  82. install.php - инсталятор ключевиков в дорвей, после запуска можно удалить с сервера.
  83. php/SxGeo.dat - база для определения geo ip.
  84. php/SxGeo.php - функция определения geo данных ip.
  85. robots.php - динамический robots.txt
  86. rss.php - RSS лента с рандомными ссылками на страницы домена.
  87. sitemap.php - динамический sitemap.xml
  88. stat.php - статистика запросов к дорвею.
  89. testdb.php - нализатор файла keywords.txt
  90. wm.php - динамическое подтверждение через html файл в вебмастере яндекса и мейла.
  91.  
  92. ------------------------------------------------------------------------
  93. НАСТРОЙКИ КОНФИГА:
  94.  
  95. date_default_timezone_set('Europe/Moscow') - Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте. Список поддерживаемых зон: https://www.php.net/manual/ru/timezones.php
  96.  
  97. $str_len - Длина строки в байтах в базе ключевиков. НАСТРОИТЬ ДО ИНСТАЛА КЕЕВ И БОЛЬШЕ НЕ МЕНЯТЬ. Анализировать (подбирать оптимальную длину) в скрипте testdb.php
  98.  
  99. $multi_keys - Включить мультикеи (1) или не использовать мультикеи (0). НАСТРОИТЬ ДО ИНСТАЛА КЕЕВ.
  100.  
  101. $multi_delimiter - Символ разделения кеев и мультикеев в строке. НАСТРОИТЬ ДО ИНСТАЛА КЕЕВ.
  102.  
  103. $multi_str_len - Длина строки в базе мультикеев. Это число получите после запуска install.php
  104.  
  105. $multi_db_file - Имя файла базы мультикеев в папке data.
  106.  
  107. $db_file - Имя файла базы кеев в папке data.
  108.  
  109. $adminname - Логин для доступа к stat.php, testdb.php и т.п. админским местам.
  110.  
  111. $adminpass - Пароль для доступа к stat.php, testdb.php и т.п. админским местам.
  112.  
  113. $tpl_sebot - Файл шаблона для SE ботов в папке data.
  114.  
  115. $tpl_user  - Файл шаблона для людей в папке data.
  116.  
  117. $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 ключевиков.
  118.  
  119. $tit_keys - Ключевиков для заглавия. Если используются мультикеи, то будет автоматически применяться = 1. Хотя 1 это оптимально для большинства тематик. Если кеи близкородственные и весь дор делается под один урл слива, то можно и 2-3 поставить. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
  120.  
  121. $des_keys - Ключевиков для мета описания. Оптимально 3-5. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
  122.  
  123. $lnk_keys - Ссылок локальной перелинковки. Оптимально 5-10. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
  124.  
  125. $hst_keys - Количество ссылок в линковке живых доменов. Оптимально до 3 (больше поисковикам не нравится много исходящих). Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
  126.  
  127. $ufu_keys - Количество ссылок дополнительной линковки типа меню c ЧПУ. Если больше 0 то количество страниц на доре будет > $max_num, т.е. дор на количество страниц будет безлимитный. Если используются мультикеи, то лучше отключить, поставив = 0, т.к. на таких страницах будут левые мультикеи, не совпадающие с ключевиком. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
  128.  
  129. $additional_keys - Добавить столько раз $title в $content (+ еще будет 4 варианта с тегами) для увеличения плотности кея в тексте. Если текст (кеи) и так перенасыщен словами изза однородности исходных кеев, то лучше поставить 0.
  130.  
  131. $max_num - Количество кеев в базе (взять после запуска install.php).
  132.  
  133. $la_max - Максимальный load average при котором ботам показывать минимизированный контент. Подбирать методом тыка, наблюдая как ваш сервер справляется с нагрузкой и при каком LA страницы начинают тормозить.
  134.  
  135. $site_name - Название сайта. Можно указать какой нибудь очень жирный ключевик по тематике дорвея.
  136.  
  137. $noref_msg - Текст кнопки если юзер не поисковый бот и зашел с пустым реферером.
  138.  
  139. $mem_stat_disable - Отключить статистику (1) stat.php (немного снижает нагрузку, если memcached по статистике htop ее создает), 0 - не отключать.
  140.  
  141. $memcached_host - Адрес хоста мемкешеда, по правильному и оптимизированному должно быть типа так: /var/run/memcached/memcached.sock (это unix сокет, он на процентов 30 быстрее, чем tcp), но по дефолту часто = 'localhost', это tcp сокет. Пример правильного конфига /etc/memcached.conf: https://pastebin.com/E1JYUm9a
  142.  
  143. $memcached_port - Порт мемкешеда, для юникс сокета по примеру выше = 0, по дефолту часто = 11211
  144.  
  145. $memcached_prefix - Префикс для данных в мемкешеде (если на сервере много пачек доров и запросы людей и ботов к ним надо разделить), формат лучше вида: латиница и обязательно подчеркивание в конце, чтоб небыло никаких внутренних конфликтов.
  146.  
  147. $cloudflare_only - Если нужно не спалиться, что на ip доры, 1 - разрешить доступ только через cloudflare, 0 - разрешить всем.
  148.  
  149. $https_only - Протокол работы дорвеев. Если все доры через cloudflare, то оптимально 1 - разрешить только https доступ, 0 - разрешить и http.
  150.  
  151. $notmodified304 - Если посетитель (бот или человек) пришел с заголовком HTTP_IF_MODIFIED_SINCE или HTTP_IF_NONE_MATCH то отвечать кодом 304 Not Modified (1), это снижает нагрузку и бот не сможет увидеть контент, если он там уже новый изменился, 0 - не включать.
  152.  
  153. $autolink_disable - Умная автоматическая линковка живых доменов. Чем больше кто-то (бот или человек) заходит на страницы домена, тем больше ссылок появляется на этот домен. 0 - автоматически линковать. 1 - отключить линковку (текущие ссылки в мемкешеде чистить самостоятельно или заменять).
  154.  
  155. $lnk_max - Количество страниц на домене, номерные страницы, отображается в основной линковке, в рсс ленте и xml карте сайта. Этот параметр никак не связан с регулированием ссылок и страниц через $ufu_keys.
  156.  
  157. ------------------------------------------------------------------------
  158. МАКРОСЫ ДЛЯ ШАБЛОНОВ:
  159.  
  160. <?php echo $title; ?> - Заглавие, главный ключевик страницы, под которую оптимизируется страница, его длина регулируется конфигом $tit_keys.
  161.  
  162. <?php echo $descr; ?> - Описание, его длина регулируется конфигом $des_keys. Применять только в шаблоне для ботов, в шаблоне для людей он будет с пустым значением.
  163.  
  164. <?php echo $content; ?> - Контент. Применять только в шаблоне для ботов, в шаблоне для людей он будет с пустым значением.
  165.  
  166. <?php echo $links; ?> - Ссылки в ЧПУ виде, их количество регулируется конфигом $ufu_keys. Применять только в шаблоне для ботов, в шаблоне для людей он будет с пустым значением.
  167.  
  168. <?php echo $canonical; ?> - Полный урл текущей страницы вида http://door.com/123.html
  169.  
  170. <?php echo $site_name; ?> - Название дора из конфига.
  171.  
  172. В остальном как все это оформлено можно посмотреть в имеющихся шаблонах.
  173.  
  174. Если дорвей с мультикеями, то в шаблоне будет доступен массив $multi, с значениями мультикея, которые можно применять в шаблонах в виде <?php echo $multi[0]; ?> <?php echo $multi[1]; ?>
  175.  
  176. ------------------------------------------------------------------------
  177. МУЛЬТИКЕИ:
  178.  
  179. Мультикеи - это дополнительные "столбцы" структурированных данных в базе, связанные с основным ключевиком.
  180. Для их использвания - включить в конфиге соответствующие пункты.
  181. Файл кеев /data/keywords.txt создавать в виде:
  182. Ключевик|Мультикей 1|Мультикей 2|Мультикей 3|Мультикей 4|Мультикей 5
  183. Количество столбцов не ограничено. Символ разделителя указан в конфиге.
  184. В шаблонах выводить в виде <?php echo $multi[0]; ?> <?php echo $multi[1]; ?>
  185. Не забывайте про начала счета с нуля в php, т.е. в данном примере будет:
  186. Мультикей 1 = <?php echo $multi[0]; ?>
  187. Мультикей 2 = <?php echo $multi[1]; ?>
  188.  
  189. ------------------------------------------------------------------------
  190. ТИПЫ СТРАНИЦ:
  191.  
  192. /123.html - основные страницы, которые в линковке из контента, xml карте и рсс ленте.
  193. /Ключевик.html - доп система бесконечной линковки, отображаемая макросом $links.
  194. /Ключевик.txt - текстовая копия страницы /Ключевик.html, хз зачем созданная.
  195. /sitemap.xml - xml карта сайта.
  196. /rss.php - рсс лента с рандомным выводом страниц.
  197.  
  198. ------------------------------------------------------------------------
  199. ПОДТВЕРЖДЕНИЕ В ПАНЕЛЯХ ВЕБМАСТЕРА:
  200.  
  201. Для Яндекса и Мейла - просто ничего не меняя на доре в панели вебмастера жать "подтвердить через html файл".
  202. Для Гугла - в файл google.htm добавить строку предлагаемую для подтверждения через html файл и потом подтверждать.
  203. Для Бинг - подтверждение через BingSiteAuth.xml файл, сначала залив его на сервер.
  204.  
  205. ------------------------------------------------------------------------
  206. Совсем всякая всячина:
  207.  
  208. Бот фринома, его банить не надо, встречается в логе noref.txt:
  209. AppEngine-Google; (+http://code.google.com/appengine; appid: s~gce-spider)
  210.  
  211. ------------------------------------------------------------------------
  212. Лог изменений:
  213.  
  214. 1.02 от 16 мая 2019:
  215.  
  216. Строка реврайтов nginx:
  217. rewrite ^/google(.*).html$ /google.htm;
  218. заменена на:
  219. rewrite ^/google(.*).html$ /google.htm;
  220. rewrite ^/(.*).pdf$ /index.php;
  221.  
  222. Файл google.txt переименован в google.htm
  223. Был косяк с подтверждением в google webmaster и на будущее .pdf добавлено.
  224.  
  225. Изменен index.php - всякие правки.
  226.  
  227. В конфиг добавлена новая переменная: $txtpage_disable = 1;
  228.  
  229. -----
  230.  
  231. Относительно iDoor Lite:
  232. Дорген полностью переписан.
  233. Снижение нагрузки в 10 раз.
  234. Ускорение генерации страниц в 10 раз.
  235. Расширен список настроек конфига.
  236. Больше не надо sqlite.
  237. Добавлены мультикеи.
  238. Улучшена линковка из контента.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement