2017-12-09

Современное сайтостроение или как я блять себе CMS выбирал😊

Предисловие и предыстория

Сайтеков у меня было много, почему было? Потому что с периодическими поломками серверов за 20 лет и соответственно переездами на другие чтото гдето терялось, чтото забывалось переносица, на чтото просто забивалось, в итоге получилась тьма заглушек и нихрена полезного. Поэтому в мозге последние лет 7-10 была мысля - что нада завести какуюнить CMC, которая мне бы нравилась, ато попыток было много, а толку мало, потому что чтото постоянно не нравилось или приходило непотребное состояние как форк движка debian-administration.org который досих пор торчит на tula.bofh.ru но обновить его не рельно, как и чтото оттуда выдернуть и перенести, работает на убой вобщем😊

И вот чтото просидев ночь обновляя софт на почтовом сервире и как следствие проспав на работу (но зато хоть выспался) и обнаружив пятницу в 22 с чем то часа решил опять провентилировать сей вопрос😊

Так что же мне нравица?

  1. - perl
  2. - никаких баз данных.
  3. - чтоп работал на nginx/lighttpd.
  4. - желательно попроще.

и вот почему:

Почему perl?

Perl потому что пхп нахуй😊 ну вот блять скока там дыр? сколько изменений не совместимых взад? и сколько дебилов на нем пишут из за низкого порога вхождения? сколько лет эта дрочь написанная этими дебилами проработает прежде чем ее сломают? сколько лет эта дрочь написанная этими дебилами проработает прежде чем выйдет версия интерпретатора XXX написанная другими дебилами в которой уберут нужную моей CMS фичу X по причине какой нить там концептуальной дырки или заменят на фичу Y потому что она типа круче и моя CMS опять отвалица? Корпоративный сцайт наш с каждым обновлением дебиана на новый стабл наебываеца, нахуй мне такое счастье, у меня все наебываца и без этого.

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

че еще остаеца? руби,хуюби да хер ево знает че ето ваще, и че с ними будет через 5-10 лет? Ктому же на одном из моих сцайтов у меня была вика на перле, и заебись работала, пока блять не вышел второй апачь в котором mod_perl не перепахали так что сходу завести ее я там не осилил, но осилил потом, но сцуко было уже поздно - все заглохло.

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

А еще я сам пишу на перле, и тоже все работает десятки лет, без всякий ой интерпретатор обновился фсе сломалось.

поэтому perl, написанное на нем работает дестилетиями на автопилоте вообще и похер на обновления - не помню чтоп ченить сломалось хоть рас.

Дальше базы данных.

Ну какие блять нахуй скуэли для моего сраного сайта? яж блять не ебаныйгугол, амазон там какойнить или алиэкспресс на худой конец. между тем:

megaprovider ~ # equery s dev-db/mariadb
 * dev-db/mariadb-10.1.26-r1
         Total files : 395
         Total size  : 70.17 MiB
megaprovider ~ #

и это блять только ебаный клиент!!! нихуя не сервер, 70 мегабайт!!! карл!!!

db2 ~ # equery s dev-db/mariadb
 * dev-db/mariadb-10.1.26
         Total files : 744
         Total size  : 158.46 MiB
db2 ~ # 

а вот это блять СЕРВИР!!!

я как вспомню в молодости фокспро на комбайновом заводе на трешке с парой мегабайт памяти обслуживающей ВЕСЬ ЕТОТ ЕБАНЫЙ ЗАВОД так ме хуева становица. и нахуй это все? чтоп сгенерить страничку в сотню килобайт? да я ебал!!! поэтому никаких баз данных.

чтоп работал на nginx/lighttpd

Ну, апачь эта сука монстр, большой и не поворотливый, типа как sql, тока апачь😊 зато все может😊 тока накой мне все это? мне нужны простейшие вещи - fastcgi и выплюнуть ответ от него, но сцуко быстро-много, а монстры так не могут поэтому nginx/lighttpd. Ну и плюс вообще - при таких блять размерах кодовых баз типа апача там или mysql/mariadb ошиок там естестевнно тоже дохера, так что чем проще тем надежней.

желательно попроще.

Ну тоесть безовсякого там гавна типа жабаскриптов и прочей дрочи на нем написанной типа jquery/руби на рельсах и прочей хуеты чтоп небыло опять мучительно больно когда здоровенные куски гавна называемые браузерами вдруг обновились и чтото там в js нахуй отвалилось, и хуйваще разбереш че потому что там ваще постоянно чтото в отвале и это нормальная блять работа считается, типа < милиона ворнингов в секунду значит все заебись, или блять в хроме меньше милиона ворнингов в секунду - значит все заебись а в ff как хотищ так и ебись, или наоборот - похер с какой стороны на яйца смореть.

Ну и

Обдумав все это, секунды за 0.03, вбил я в гугол 'CMS perl' и нашол какой то сцайт, с невьебенным списком, CMS, и там было в том числе на чем они написаны, к моему удивлению там даже была сортировка по начем написаны - отсортировал по начем написаны😊 И осталось их сцуко две из всего этого невьебенного списка: webgui и twiki, и начал я их смотреть😊

webgui

Сразу насторожило что готовых примеров конфигов для nginx нет, гугол выдает тока nginx в качестве фронтэнда перед апачем на котором ета webgui пашет, к lighttpd есно тоже нихрена. по ссылке source install на их сайте 404😊 Зато блять куча надписей в стиле Rich User Interface, Powerful API, Personalization, Easy To Install, изи то поверфул ето, в даунлоаде есть блять образ вмвари с етой херней - ваще ахуеть, внатуре ДАУНлоад😊 на этом фоне мое нытье по поводу размера sql клиента ваще ничто😊 В итоге зато нашлась у них онлайн дема, зашол туда, и ахуел от админского интерфейса - милион пунктиков в меню которые хер знает че означают, по етой херне нада курсы открывать как ею пользоваца, многолетние.

вобщем вердикт - нахуй.

twiki

Вроде бы вообще все красиво если почитать - на перле, вместо базы стандартная RCS (Revision Control System), нашолся пример как ее запустить под lighttpd, потыкавшись завел и под nginx, и тут - опять хрен поймеш, настолько запутанный интерфейс что не понятно что куда и для чего ваще нужно и как вообще оно работать должно, показывает херню какуюто дефолтную и что с этим делать не ясно, вдобавок нарвался на глюки с регистрацией юзверей, пропадало поле ввода пароля при смене кодировки в настройках, вобщем пока я экспериментировал нечаянно посмотрел на размер архива - сука 20 мегабайт!!! 20 мегабайт Карл!!! проебался с нею часа 4 наверное зря тока.

вердикт - ну ие нах.

И чтож блять делать?

Вспомнил тот самый аквариумный компьютер - там же какаято вики стояла - ну думал - нада попробовать ее допилить, а как называется забыл, пошол искать, долго рылся во всяком хламе коего у меня самосвал, и на работе еще 4, но нашол, дернул оттуда флешку, подмонтировал, и обнаружил что это некая хрень с названием cwiki.pl😊 1 файл, ВСЕГО 1 Карл, размером 176294 байт, никакой базы, все в текстовых файлах, но конечно малость примитивно по своим возможностям но что поделать, внутри в хедере обнаружилось следующее:

# cwick version cassiopeia (25 September, 2003)
# Copyright (c) 2003 Lee Jenkins
# includes features by Rudi Bruchez
# Based on UseModWiki version 0.92 (April 21, 2001)
# Copyright (C) 2000-2001 Clifford A. Adams
#    <caadams@frontiernet.net> or <usemod@usemod.com>
# Based on the GPLed AtisWiki 0.3  (C) 1998 Markus Denker
#    <marcus@ira.uka.de>
# ...which was based on
#    the LGPLed CVWiki CVS-patches (C) 1997 Peter Merel
#    and The Original WikiWikiWeb  (C) Ward Cunningham
#        <ward@c2.com> (code reused with permission)
# Email and ThinLine options by Jim Mahoney <mahoney@marlboro.edu>

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

Гит клонирован, nginx есть, lighttpd есть, вбил в гугол конфиг от них, и гдето случайно набрел на толи форк толи ответвление какое хз, зовется oddmuse.org. В отличии от usemod есть куча расширений модулями и поддержка utf-8 которая хромает в usemod. Туь уровень моей счастливости многократно увеличился, хоть utf я ваще не люблю - нахуй он нужен, но рас есть пусть будет, и я переключился на колупание этой oddmuse.

Дальше впринципе дело техники - кое какие корявые примеры конфигов есть как для nginx так и для lighttpd, у меня nginx по дефолту - кое как удалось взлететь со всем этим минут за 15 чтоп хоть посмотреть в живую и потыкать, а там отшлифуеца. Очень понравились модули - просто тупо копируеш в директорию и она сама их цепляет. И их там кстати овер 200 штук. Так же более-менее все сразу понятно как с этим работать и что для чего. и никаких блять сотен мегобайт, баз, перделок, свистелок и прочей хуеты.

Конфигурация nginx на данный момент:

        server {
                listen 10.32.75.177;
                server_name srv;
                root /var/www/localhost;
                index /cgi-bin/index.pl;
#               fastcgi_index /cgi-bin/index.pl;
                access_log /var/log/nginx/srv.access_log main;
                error_log /var/log/nginx/srv.error_log info;

                location = /favicon.ico {
                    return 204;
                    access_log     off;
                    log_not_found  off;
                }
                
                location = /ad_replace/null.gif {
                    empty_gif;
                }
                
                location /static/ {
                    root /var/www/localhost/htdocs;
                }
                
                location /htdocs/data/ {
                    access_log off;
                    deny all;
                }
                
                location ~ ^/cgi-bin/index.pl {
                    #gzip           off;
                    root           /var/www/localhost;
                    fastcgi_pass   unix:/run/fcgiwrap-wiki.sock-1;
                    fastcgi_keep_conn on;
                    include        fastcgi_params;
                    fastcgi_param  QUERY_STRING       $query_string;
                    fastcgi_param  REQUEST_METHOD     $request_method;
                    fastcgi_param  CONTENT_TYPE       $content_type;
                    fastcgi_param  CONTENT_LENGTH     $content_length;

                    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
                    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
                    fastcgi_param  REQUEST_URI        $request_uri;
                    fastcgi_param  DOCUMENT_URI       $document_uri;
                    fastcgi_param  DOCUMENT_ROOT      $document_root;
                    fastcgi_param  SERVER_PROTOCOL    $server_protocol;

                    fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
                    fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

                    fastcgi_param  REMOTE_ADDR        $remote_addr;
                    fastcgi_param  REMOTE_PORT        $remote_port;
                    fastcgi_param  SERVER_ADDR        $server_addr;
                    fastcgi_param  SERVER_PORT        $server_port;
                    # According to RFC3875 (https://tools.ietf.org/html/rfc3875#section-4.1.14) in SERVER_NAME
                    # we should put actual hostname user came to. For nginx it is in $host
                    # This will allow to run multihost instances
                    fastcgi_param  SERVER_NAME        $host;
                }
        }

Частично накопипасшена с просторов интернету и потому кривовато но пока надоело с ним ковыряца - с самой вики интереснее, 200 модулей как никак😊 В конфиге самой вики нада выставить $UsePathInfo = 0; иначе с такой конфигурацией не заработает. Сама вика лежит в /var/www/localhost/cgi-bin/index.pl, запускается через fcgiwrap. Данные пишет в /var/www/localhost/htdocs/data/, конфиг ее там же, в static статика, лого там, css ну итд.

вобщем вердикт - У меня появился очередной сайтег, и Вы на него смотрите😊

Посмотрим сколько проживет😊