Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Дорген iDoor CMS v. 1.02 от 16 мая 2019.
- Этот дорген является идеологическим продолжением iDoor Lite + мультикеи.
- Возможна доп услуга по настройке сервера/vps под этот дорген без панелей.
- Демо пример дора и официальная страница: https://idoorcms.top/
- Основная философия доргена:
- 1) быстрое создание безлимитного количества дорвеев.
- 2) никаких парсингов, только кеи загрузить из файла.
- 3) максимальная скорость работы и минимальные нагрузки.
- Софтовые требования к серверу: nginx, php-fpm 7, memcached.
- Хардовые требования к серверу: желательно от 2 GB RAM, SSD.
- ------------------------------------------------------------------------
- ВСЯКИЕ НЮАНСЫ:
- В дорген встроен легкий клоакинг (ботам один шаблон, людям другой) и антибот лайт.
- Для максимального быстродействия размер свободной оперативки должен быть больше размера базы.
- Apache не поддерживается, на нем не тестировалось и не планируется.
- Субдомен www редиректит всегда на без www.
- Дорген устанавливается только в корень сайта, в папках не работает.
- Дорген поддерживает мультисайтовость (много доменов на одном скрипте).
- Дорген поддерживает мультикеи (дополнительные столбцы структурированных данных в базе).
- Дорген больше затачивается под Google и бурж, т.к. Яндекс доры победил.
- ------------------------------------------------------------------------
- УСТАНОВКА:
- 1) залить кеи в /data/keywords.txt построчно в utf-8 без bom (предварительно чекайте на дубли).
- 2) запустить в браузере /testdb.php (чтобы определить какую длину строки выставить).
- 3) выставить в конфиге /data/conf.php длину строки в переменной $str_len.
- 4) запустить /install.php в браузере, при успехе получите цифру кеев в базе.
- 5) цифру (или 2, если с мультикеями) из пункта 4 прописать в конфиг в переменную $max_num и $multi_str_len.
- 6) скрипты /install.php и /testdb.php можно удалить.
- 8) В конфиг домена в nginx прописать реврайты и настройки:
- error_page 404 = /404.php;
- error_page 500 501 502 503 504 /5xx.htm;
- location / {
- rewrite ^/robots.txt$ /robots.php;
- rewrite ^/sitemap.xml$ /sitemap.php;
- rewrite ^/yandex_(.*).html$ /wm.php?id=$1;
- rewrite ^/wmail_(.*).html$ /wm.php?id=$1;
- rewrite ^/google(.*).html$ /google.htm;
- rewrite ^/(.*).pdf$ /index.php;
- rewrite ^/(.*).txt$ /index.php;
- rewrite ^/(.*).html$ /index.php;
- index index.php;
- }
- location ~ /(data/|php/) {
- deny all;
- }
- Долив кеев в базу не предусмотрен, если нужно добавлять - придется пересоздавать все с нуля с новыми кеями.
- Размер файла keywords.txt не важен, чтение из него идет построчно, потому загружать можно десятки млн кеев.
- ------------------------------------------------------------------------
- СОСТАВ СКРИПТА:
- 404.php - страница ошибок с кодом ответа сервера 404 b редиректом на морду.
- 5xx.htm - страница ошибок, если сервер с nginx упадет.
- BingSiteAuth.xml - файл для подтверждения в Bing Webmaster
- bing.php - редирект на пинг xml карты в bing (пусть боты сами пингуют дор).
- cntr.php - счетчик хитов юзеров, выполняющих JS.
- data/conf.php - конфиг, изучить и настроить лучше заранее.
- data/content.db - база доргена, ее нету, но она появится после запуска install.php
- data/multi.db - база мультикеев, ее нету, но она появится после запуска install.php
- data/keywords.txt - список ключевиков построчно в utf-8 без bom для заливки в базу.
- data/la.txt - лог медленных запросов, для вычисления какой LA сервер выдерживает.
- data/noref.txt - лог зашедших с пустым реферером, в основном говноботы, которых надо забанить в nginx.
- data/tpl_sebot.txt - шаблон для ботов (Яндекс, Гугл, Мейл, Бинг, Байду, Яху).
- data/tpl_user.txt - шаблон для людей.
- google.php - редирект на пинг xml карты в google (пусть боты сами пингуют дор).
- google.htm - для подтверждения в Google Webmaster (через html файл).
- html.php - html карта сайта.
- index.php - основа доргена, просто, кратко и гениально.
- info.txt - инструкция которую вы читаете, перечитывать при выходе новых версий.
- install.php - инсталятор ключевиков в дорвей, после запуска можно удалить с сервера.
- php/SxGeo.dat - база для определения geo ip.
- php/SxGeo.php - функция определения geo данных ip.
- robots.php - динамический robots.txt
- rss.php - RSS лента с рандомными ссылками на страницы домена.
- sitemap.php - динамический sitemap.xml
- stat.php - статистика запросов к дорвею.
- testdb.php - нализатор файла keywords.txt
- wm.php - динамическое подтверждение через html файл в вебмастере яндекса и мейла.
- ------------------------------------------------------------------------
- НАСТРОЙКИ КОНФИГА:
- date_default_timezone_set('Europe/Moscow') - Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте. Список поддерживаемых зон: https://www.php.net/manual/ru/timezones.php
- $str_len - Длина строки в байтах в базе ключевиков. НАСТРОИТЬ ДО ИНСТАЛА КЕЕВ И БОЛЬШЕ НЕ МЕНЯТЬ. Анализировать (подбирать оптимальную длину) в скрипте testdb.php
- $multi_keys - Включить мультикеи (1) или не использовать мультикеи (0). НАСТРОИТЬ ДО ИНСТАЛА КЕЕВ.
- $multi_delimiter - Символ разделения кеев и мультикеев в строке. НАСТРОИТЬ ДО ИНСТАЛА КЕЕВ.
- $multi_str_len - Длина строки в базе мультикеев. Это число получите после запуска install.php
- $multi_db_file - Имя файла базы мультикеев в папке data.
- $db_file - Имя файла базы кеев в папке data.
- $adminname - Логин для доступа к stat.php, testdb.php и т.п. админским местам.
- $adminpass - Пароль для доступа к stat.php, testdb.php и т.п. админским местам.
- $tpl_sebot - Файл шаблона для SE ботов в папке data.
- $tpl_user - Файл шаблона для людей в папке data.
- $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 ключевиков.
- $tit_keys - Ключевиков для заглавия. Если используются мультикеи, то будет автоматически применяться = 1. Хотя 1 это оптимально для большинства тематик. Если кеи близкородственные и весь дор делается под один урл слива, то можно и 2-3 поставить. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
- $des_keys - Ключевиков для мета описания. Оптимально 3-5. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
- $lnk_keys - Ссылок локальной перелинковки. Оптимально 5-10. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
- $hst_keys - Количество ссылок в линковке живых доменов. Оптимально до 3 (больше поисковикам не нравится много исходящих). Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
- $ufu_keys - Количество ссылок дополнительной линковки типа меню c ЧПУ. Если больше 0 то количество страниц на доре будет > $max_num, т.е. дор на количество страниц будет безлимитный. Если используются мультикеи, то лучше отключить, поставив = 0, т.к. на таких страницах будут левые мультикеи, не совпадающие с ключевиком. Если это значение менять в процессе жизни дора, то набор кеев для контента будет меняться, заглавие (кей, под который оптимизируется страница) будет постоянен.
- $additional_keys - Добавить столько раз $title в $content (+ еще будет 4 варианта с тегами) для увеличения плотности кея в тексте. Если текст (кеи) и так перенасыщен словами изза однородности исходных кеев, то лучше поставить 0.
- $max_num - Количество кеев в базе (взять после запуска install.php).
- $la_max - Максимальный load average при котором ботам показывать минимизированный контент. Подбирать методом тыка, наблюдая как ваш сервер справляется с нагрузкой и при каком LA страницы начинают тормозить.
- $site_name - Название сайта. Можно указать какой нибудь очень жирный ключевик по тематике дорвея.
- $noref_msg - Текст кнопки если юзер не поисковый бот и зашел с пустым реферером.
- $mem_stat_disable - Отключить статистику (1) stat.php (немного снижает нагрузку, если memcached по статистике htop ее создает), 0 - не отключать.
- $memcached_host - Адрес хоста мемкешеда, по правильному и оптимизированному должно быть типа так: /var/run/memcached/memcached.sock (это unix сокет, он на процентов 30 быстрее, чем tcp), но по дефолту часто = 'localhost', это tcp сокет. Пример правильного конфига /etc/memcached.conf: https://pastebin.com/E1JYUm9a
- $memcached_port - Порт мемкешеда, для юникс сокета по примеру выше = 0, по дефолту часто = 11211
- $memcached_prefix - Префикс для данных в мемкешеде (если на сервере много пачек доров и запросы людей и ботов к ним надо разделить), формат лучше вида: латиница и обязательно подчеркивание в конце, чтоб небыло никаких внутренних конфликтов.
- $cloudflare_only - Если нужно не спалиться, что на ip доры, 1 - разрешить доступ только через cloudflare, 0 - разрешить всем.
- $https_only - Протокол работы дорвеев. Если все доры через cloudflare, то оптимально 1 - разрешить только https доступ, 0 - разрешить и http.
- $notmodified304 - Если посетитель (бот или человек) пришел с заголовком HTTP_IF_MODIFIED_SINCE или HTTP_IF_NONE_MATCH то отвечать кодом 304 Not Modified (1), это снижает нагрузку и бот не сможет увидеть контент, если он там уже новый изменился, 0 - не включать.
- $autolink_disable - Умная автоматическая линковка живых доменов. Чем больше кто-то (бот или человек) заходит на страницы домена, тем больше ссылок появляется на этот домен. 0 - автоматически линковать. 1 - отключить линковку (текущие ссылки в мемкешеде чистить самостоятельно или заменять).
- $lnk_max - Количество страниц на домене, номерные страницы, отображается в основной линковке, в рсс ленте и xml карте сайта. Этот параметр никак не связан с регулированием ссылок и страниц через $ufu_keys.
- ------------------------------------------------------------------------
- МАКРОСЫ ДЛЯ ШАБЛОНОВ:
- <?php echo $title; ?> - Заглавие, главный ключевик страницы, под которую оптимизируется страница, его длина регулируется конфигом $tit_keys.
- <?php echo $descr; ?> - Описание, его длина регулируется конфигом $des_keys. Применять только в шаблоне для ботов, в шаблоне для людей он будет с пустым значением.
- <?php echo $content; ?> - Контент. Применять только в шаблоне для ботов, в шаблоне для людей он будет с пустым значением.
- <?php echo $links; ?> - Ссылки в ЧПУ виде, их количество регулируется конфигом $ufu_keys. Применять только в шаблоне для ботов, в шаблоне для людей он будет с пустым значением.
- <?php echo $canonical; ?> - Полный урл текущей страницы вида http://door.com/123.html
- <?php echo $site_name; ?> - Название дора из конфига.
- В остальном как все это оформлено можно посмотреть в имеющихся шаблонах.
- Если дорвей с мультикеями, то в шаблоне будет доступен массив $multi, с значениями мультикея, которые можно применять в шаблонах в виде <?php echo $multi[0]; ?> <?php echo $multi[1]; ?>
- ------------------------------------------------------------------------
- МУЛЬТИКЕИ:
- Мультикеи - это дополнительные "столбцы" структурированных данных в базе, связанные с основным ключевиком.
- Для их использвания - включить в конфиге соответствующие пункты.
- Файл кеев /data/keywords.txt создавать в виде:
- Ключевик|Мультикей 1|Мультикей 2|Мультикей 3|Мультикей 4|Мультикей 5
- Количество столбцов не ограничено. Символ разделителя указан в конфиге.
- В шаблонах выводить в виде <?php echo $multi[0]; ?> <?php echo $multi[1]; ?>
- Не забывайте про начала счета с нуля в php, т.е. в данном примере будет:
- Мультикей 1 = <?php echo $multi[0]; ?>
- Мультикей 2 = <?php echo $multi[1]; ?>
- ------------------------------------------------------------------------
- ТИПЫ СТРАНИЦ:
- /123.html - основные страницы, которые в линковке из контента, xml карте и рсс ленте.
- /Ключевик.html - доп система бесконечной линковки, отображаемая макросом $links.
- /Ключевик.txt - текстовая копия страницы /Ключевик.html, хз зачем созданная.
- /sitemap.xml - xml карта сайта.
- /rss.php - рсс лента с рандомным выводом страниц.
- ------------------------------------------------------------------------
- ПОДТВЕРЖДЕНИЕ В ПАНЕЛЯХ ВЕБМАСТЕРА:
- Для Яндекса и Мейла - просто ничего не меняя на доре в панели вебмастера жать "подтвердить через html файл".
- Для Гугла - в файл google.htm добавить строку предлагаемую для подтверждения через html файл и потом подтверждать.
- Для Бинг - подтверждение через BingSiteAuth.xml файл, сначала залив его на сервер.
- ------------------------------------------------------------------------
- Совсем всякая всячина:
- Бот фринома, его банить не надо, встречается в логе noref.txt:
- AppEngine-Google; (+http://code.google.com/appengine; appid: s~gce-spider)
- ------------------------------------------------------------------------
- Лог изменений:
- 1.02 от 16 мая 2019:
- Строка реврайтов nginx:
- rewrite ^/google(.*).html$ /google.htm;
- заменена на:
- rewrite ^/google(.*).html$ /google.htm;
- rewrite ^/(.*).pdf$ /index.php;
- Файл google.txt переименован в google.htm
- Был косяк с подтверждением в google webmaster и на будущее .pdf добавлено.
- Изменен index.php - всякие правки.
- В конфиг добавлена новая переменная: $txtpage_disable = 1;
- -----
- Относительно iDoor Lite:
- Дорген полностью переписан.
- Снижение нагрузки в 10 раз.
- Ускорение генерации страниц в 10 раз.
- Расширен список настроек конфига.
- Больше не надо sqlite.
- Добавлены мультикеи.
- Улучшена линковка из контента.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement