mnshome.info
marzenia się spełniają



  Apache 2.4. Пропал метод remote_ip! Решение простое
13.11.2016 18:03

После появления Apache 2.4 разработчики mod_perl2 не "подтянули" весь набор изменений. 
Теперь место метода $r->connection->remote_ip следует использовать client_ip.

Изменение можно внести в startup.pl:

    package Apache2::Connection;
    # patch: http://osdir.com/ml/modperl.perl.apache.org/2014-11/msg00055.html
    sub remote_ip { return $_[0]->client_ip }
    1;

Или в обработчик Handlers::handler:

    my $PATCH_20141100055 = 0;
    sub handler {
        my $r = shift;

        unless ($PATCH_20141100055) {
            my $sver = _get_server_version();
            if ($sver && ($sver >= 2.04) && !$r->connection->can('remote_ip')) { # Apache 2.4.x or larger
                eval 'sub Apache2::Connection::remote_ip { return $_[0]->client_ip }';
            }
            $PATCH_20141100055 = 1;
        }

    # ...
    }
    
    sub _get_server_version {
        my $sver = Apache2::ServerUtil::get_server_banner() || '';
        $sver =~ s/^.+?\///;
        if ($sver =~ /([0-9]+)\.([0-9]+)\.([0-9]+)/) {
            return $1 + ($2/100) + ($3/10000);
        } elsif ($sver =~ /([0-9]+)\.([0-9]+)/) {
            return $1 + ($2/100);
        } elsif ($sver =~ /([0-9]+)/) {
            return $1;
        }
        return 0
    }

  Блог полностью переехал на MPMinus и появились новые плюшки любезно предоставленные нам Google :)
12.08.2013 17:07

Вот и готова новая редакция блога, переехав на свое законное место и подпилив разные косяки «неровности» мягкими напильничками и надфилечками он перед вами :)

Главной особенностью данной версии является переход на самые последние версии библиотек MPMinus, jQuery и jQueryUI. Помимо этого сайт блога стал более портабельным, и устанавливается как системный модуль Perl. Более подробную информацию о модуле MPMinus можно увидеть на странице проекта http://search.cpan.org/search?query=MPMinus

Стоит отметить, что блог по-прежнему работает в тесной связке с Apache и mod_perl2

  Установка mnshome.info на новых модулях. Пример того как ставить проекты основанные на MPMinus
10.08.2013 13:48

Задача была в переписании текущего сайта блога таким образом, чтобы убить двух зайцев: перевести сайт на использование нового модуля MPMinus и исправить найденные за время работы баги и недочеты. Помимо этого - убить зайченка в виде улудшения юзабилити админской части сайта (блога) okularnik

Для начала удалил все настройки старого сайта которые только были, т.к. они теперь не нужны. Скачал сам проект из svn репозитория и дал права на доступ к папкам на запись. Помимо этого создал симлинки на те файлы которые раньше располагались где-то в другом месте сетевого хранилища. cwaniak

Далее обновил порты FreeBSD и обновил программу cpan до второй версии.

После этих подготовительных операции установил сам MPMinus:

cpan> install MPMinus
cpan> install MPMinusX::AuthSsn

При установке все зависимые пакеты подтянулись и установились сами... нужно было немного подождать и попить любимый кофе Starbucks из серии Medium (Organic ethiopia) kawa -- спасибо Илюшке за столь вкусненький подарочек przytul

Далее нужно поставить несколько пакетов нужных для самого сайта mnshome.info:

cpan> install Captcha::reCAPTCHA
cpan> install XML::Simple

Последний, кстати сказать, пакет нужный не только для нужд сайта, а вообще!

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

#> perl Makefile.PL
#> make
#> make test
#> make install
#> make clean

Проект (сайт) интегрировался в систему! Ура... 

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

#> /usr/local/etc/rc.d/apache22 restart

Вуаля! Блог работает и процветает hura

 

 

  HTTP 1.1 Status Codes
29.05.2013 10:41
  • Informational 1xx:

     100 HTTP_CONTINUE                        Continue
     101 HTTP_SWITCHING_PROTOCOLS             Switching Protocols
  • Successful 2xx:

     200 HTTP_OK                              OK
     201 HTTP_CREATED                         Created
     202 HTTP_ACCEPTED                        Accepted
     203 HTTP_NON_AUTHORITATIVE               Non-Authoritative Information
     204 HTTP_NO_CONTENT                      No Content
     205 HTTP_RESET_CONTENT                   Reset Content
     206 HTTP_PARTIAL_CONTENT                 Partial Content
  • Redirection 3xx:

     300 HTTP_MULTIPLE_CHOICES                Multiple Choices
     301 HTTP_MOVED_PERMANENTLY               Moved Permanently
     302 HTTP_MOVED_TEMPORARILY               Found
     303 HTTP_SEE_OTHER                       See Other
     304 HTTP_NOT_MODIFIED                    Not Modified
     305 HTTP_USE_PROXY                       Use Proxy
     306                                      (Unused)
     307 HTTP_TEMPORARY_REDIRECT              Temporary Redirect
  • Client Error 4xx:

     400 HTTP_BAD_REQUEST                     Bad Request
     401 HTTP_UNAUTHORIZED                    Unauthorized
     402 HTTP_PAYMENT_REQUIRED                Payment Required
     403 HTTP_FORBIDDEN                       Forbidden
     404 HTTP_NOT_FOUND                       Not Found
     405 HTTP_METHOD_NOT_ALLOWED              Method Not Allowed
     406 HTTP_NOT_ACCEPTABLE                  Not Acceptable
     407 HTTP_PROXY_AUTHENTICATION_REQUIRED   Proxy Authentication Required
     408 HTTP_REQUEST_TIMEOUT                 Request Timeout
     409 HTTP_CONFLICT                        Conflict
     410 HTTP_GONE                            Gone
     411 HTTP_LENGTH REQUIRED                 Length Required
     412 HTTP_PRECONDITION_FAILED             Precondition Failed
     413 HTTP_REQUEST_ENTITY_TOO_LARGE        Request Entity Too Large
     414 HTTP_REQUEST_URI_TOO_LARGE           Request-URI Too Long
     415 HTTP_UNSUPPORTED_MEDIA_TYPE          Unsupported Media Type
     416 HTTP_RANGE_NOT_SATISFIABLE           Requested Range Not Satisfiable
     417 HTTP_EXPECTATION_FAILED              Expectation Failed
  • Server Error 5xx:

     500 HTTP_INTERNAL_SERVER_ERROR           Internal Server Error
     501 HTTP_NOT IMPLEMENTED                 Not Implemented
     502 HTTP_BAD_GATEWAY                     Bad Gateway
     503 HTTP_SERVICE_UNAVAILABLE             Service Unavailable
     504 HTTP_GATEWAY_TIME_OUT                Gateway Timeout
     505 HTTP_VERSION_NOT_SUPPORTED           HTTP Version Not Supported

 

  Установка проекта SUFFIT на новом оборудовании
10.12.2011 22:24

Самое главное - нормально поставить модули через cpan! Вот они:

(Ставить нужно в объявленном порядке)

TemplateM 3.00
File::Copy::Recursive
Config::General
YAML
Moose
namespace::autoclean
MIME::Lite
Term::ReadKey
Text::SimpleTable
Apache::Session
Captcha::reCAPTCHA
XML::RSS
XML::Simple
File::Spec
Sys::SigAction
Time::HiRes
Text::CSV
CGI::Session

 

  Установка Apache 2.2 и mod_perl2 в связке с Perl 5.12.xx
29.06.2011 14:52

1. Ставим Perl 5.12 с сайта perl.org

2. Ставим Apache с сайта apache (с поддержкой SSL)

3. Запускаем PPM и вводим адрес репозитория http://cpan.uwinnipeg.ca/PPMPackages/12xx/package.xml

4. Читаем по диагонали инструкцию. http://cpan.uwinnipeg.ca/PPMPackages/12xx/

5. Устанавливаем в PPM модуль с названием mod_perl 

5.1. При установке программа заругается на то что на диске D нет Apache cwaniak -- ставим модуль вручную: http://cpan.uwinnipeg.ca/PPMPackages/12xx/x86/mod_perl.so 

6. Проверяем, доставляем нужные модули для запуска? прописываем в строку конфига строки:

#
# ModPerl
#
LoadFile "C:/Perl/bin/perl512.dll"
LoadModule perl_module modules/mod_perl.so

Все! oklasky
 

---
Альтернативный способ с помощью графической оболчки PPM:

1. Создать папку D:\Apache2.2\modules
2. Читаем http://cpan.uwinnipeg.ca/PPMPackages/12xx/ (инструкция)
3. Добавить в PPM репозиторий адрес http://cpan.uwinnipeg.ca/PPMPackages/12xx/package.xml (PPM репозиторий)
4. http://cpan.uwinnipeg.ca/PPMPackages/12xx/x86/mod_perl.so (модуль для ручной установки после установки PPM если что-то не пройдет)
5. Добавляем файл conf\extra\httpd-modperl.conf (чтение библиотеки и установка для обработчика perl-status)

  TemplateM & MPMinus как улучшенный способ связи модуля TemplateM 3.00 с mod_perl2
17.12.2010 20:18

Код:

my $template;
my %h;
 
sub hInit {
    my $m = shift;
 
    ...    
 
    $template = new TemplateM(
            -file   => $m->conf('dir_shtml')."/".'TPLM300.shtml',
            #-asfile => 1,
            -cache  => catfile($m->conf('document_root'),$m->conf('dir_cache')),
            -time   => 100,
            -onutf8 => 1,
            #-method => 'POST',
            -rescode => sub {
                my $res = shift;
                $h{response} = $res->headers_as_string;
                return 1;
            },
        );
 
    ...
 
    return Apache2::Const::OK;
}
 
sub hResponse {
    my $m = shift;
    my $r = $m->r;
    $r->content_type('text/html; charset=UTF-8');
 
    ...
 
    my $output = $template->output();
    $r->set_content_length(length(Encode::encode_utf8($output)));
    $r->print($output);
    $r->rflush();
 
    return Apache2::Const::OK;
}
 
sub hCleanup {
    ...
 
    undef $template;
    undef %h;
 
    ...
 
    return Apache2::Const::OK;
}
  Установка Apache 2.2 + ActivePerl 5.10 + mod_perl на WindowsXP
07.04.2010 14:49

1. Установка компонентов:

Устанавливаем ActivePerl-5.10.1.1007-MSWin32-x86-291969.msi с сайта http://www.activestate.com в папку C:/Perl (по умолчанию)

Устанавливам httpd-2.2.15-win32-x86-no_ssl.msi с сайта http://apache.org в папку C:/Apache (при настройке указать надо localhost в 2 поля адресов - и домена и хоста)

Затем идем сюда и внимательно чтаем: http://perl.apache.org/docs/2.0/os/win32/install.html#PPM_Packages

Находим секцию примеров с вхождением фразы "ActivePerl 10xx" и выполняем то что указано:

ppm install http://cpan.uwinnipeg.ca/PPMPackages/10xx/mod_perl.ppd

2. Настройка httpd.conf

После установки нужно сделать примерно это в httpd.conf (обратите внимание на C:/Path/to/Perl/bin/):

LoadFile "C:/Path/to/Perl/bin/perl510.dll"
LoadModule perl_module modules/mod_perl.so
Include conf/extra/httpd-modperl.conf

3. Создаем файл "conf/extra/httpd-modperl.conf" с конфигурацией:

PerlRequire "conf/extra/startup.pl"


      SetHandler modperl
      PerlOptions +GlobalRequest
      PerlResponseHandler Apache2::Status

4. создаем там-же файл startup.pl с примерно таким содержимым:

# SECTION INIT: USE ModPerl modules 
use ModPerl::Util (); #for CORE::GLOBAL::exit

use Apache2::Filter ();
use Apache2::FilterRec ();
#use base qw(Apache2::Filter);

use Apache2::Const qw(-compile :common);
use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::RequestUtil ();
use Apache2::ServerRec ();
use Apache2::ServerUtil ();
use Apache2::Connection ();
use Apache2::Log ();

use APR::Const qw(-compile :common);
use APR::Table ();
use APR::Bucket ();
use APR::Brigade ();

use ModPerl::Registry ();
use APR::Const -compile => ':common';

# SECTION INIT: USE Other modules
use Apache2::Status;
use Apache::DBI;

1;

5. Запускаем ppm без аргументов и ставим через него модули:

Apache-DBI

Готово! можно проверять так:

http://localhost/perl-status

  На чем написан этот блог
20.11.2009 15:42

Многие спрашивают, «а чем отличается твой блог от бесплатного и широко распространенного?». Если честно, я даже затрудняюсь как отвечать на такой вопрос… если в кратце, то мой блог написан на языке Perl, когда как большинство других – PHP… а если быть точным, то вот что используется и зачем для работы блога в полном объеме:

  • Apache 2.2 в связке с mod_perl2 – обеспечивают хорошую устойчивость при больших нагрузках
  • MPMinus – MVC Frame Work для mod_perl2 который обеспечивает хорошую скорость написания новых обработчиков и поддерживает полную независимость программиста от привязки к стандартным хендлерам Apache
  • MVC SKEL TRANSACTION -- механизм, позволяющий отделять процедуры уровня модели, контроллера и отображения, а также позволяет легко назначать и использовать обработчики второго уровня (action)
  • XML - обмен для нужд AJAX
  • DHTML и AJAX - HTML, CSS, JavaScript – обеспечивают «внешний вид» блога и его инструментарий
THUD XYZZY PLUGH FRED WALDO GARPLY
GRAULT CORGE QUUZ QUX BAZ BAR FOO

День памяти перевода часов на летнее время

0
0
0
days
:
0
0
hrs
:
0
0
min
:
0
0
sec

поиск по дате...
поиск по содержимому...
GGCzat 1.00
Tagi
Artefakty
28.12.2015 13:09:22
MDScore: Marionette.js
06.05.2016 13:07:16
Создать RESTfull обработчик как модуль
01.12.2017 22:56:38
SubProject: static-site
24.06.2017 17:34:47
MNSHOME: Переходить на Centos!
30.10.2017 13:05:21
Создать функционал 2 в 1: mod_perl библиотеку для получения отчета по бэкапам за последние сутки
19.08.2015 11:35:42
Переезд разработчиков на тестовый MySQL сервере
02.03.2016 18:20:19
По вёрстке - loftblog
02.06.2015 13:52:56
С Даши за ECB/VTB24
29.11.2017 18:05:16
Создать простые функции криптования AES256+Blowfish+base64
Tue, 16 Oct 2018 13:09:22 +0400

Linki zewnętrzne

#OPERA
Czytam
GRY
MnshomeInfo
Monitoring
Photo
Przyjaciele
Serwisy
fla-master

IP

Valid XHTML 1.0 Transitional

Valid CSS!


Copyright © 1998-2017 Serż Minus. All rights reserved


do góry