Bom, após um experiência terrível migrando o meu ambiente de desenvolvimento do XP para o Windows Vista; devido à minha nova máquina,  onde fui forçado a atualizar a minha versão de desenvolvimento do Apache 1.3 para o Apache 2.x, pois, não consegui fazer o Apache 1.3 rodar com o Windows Vista.  Caso queira detalhes da instalação do Apache no Vista veja o artigo anterior.

Agora com o Apache 2.x rodando tenho que reconfigurar o meu antigo projeto Intraweb para rodar no Apache 2.2 agora. Esse processo atrasou um pouco meu trabalho, mas, na verdade, estava precisando mesmo atualizar, visto que o Apache 2.x tem muitas novidades e correções em relação à versão que utilizávamos antes; então, mãos à obra e, nada de preguiça.

Mais uma vez o Dr.Bob’s Delphi Clinic (fera no assunto Delphi) tinha uma solução (ou quase); na verdade o artigo do Dr.Bob já está desatualizado,vai até o Apache 2.06; mas, ele deu o “caminho das pedras”; para a versão 2.2 existem mais alguns procedimentos que serão citados abaixo e, foram obtidos à partir do endereço: http://delphi.newswhat.com/geoxml/forumhistorythread?groupname=borland.public.delphi.webservices.soap&messageid=1159712929.371031.8670@i3g2000cwc.googlegroups.com

Como uso ainda o Intraweb em alguns projetos, esse era o desafio do dia, fazer o Intraweb 5.x rodar no Apache 2.2;

Vamos lá, mãos à obra então:

  1. Abra o seu projeto Delphi x Intraweb e em seguida adicione os arquivos: ..\Delphi7\source\internet\HTTPD2.pas, ..\Delphi7\source\internet\ApacheTwoApp.pas, ..\Delphi7\source\internet\ApacheTwoHTTP.pas
  2. Apenas o HTTPD2.pas será modificado; porêm será necessário recompilar o ApacheTwoApp.pas e ApacheTwoHTTP.pas
  3. Modifique o codigo de HTTPD2.pas conforme abaixo:
  • Antes da declaração conn_rec declaration, adicione:
      ap_conn_keepalive_e = (AP_CONN_UNKNOWN, AP_CONN_CLOSE, AP_CONN_KEEPALIVE);
  • Dentro da estrutura de conn_rec, substitua isso:
        (** Are we still talking? *)
        flags: Cardinal;
        { The following are in the flags bitset:
        unsigned aborted:1;
    
        (** Are we going to keep the connection alive for another request?
         *  -1 fatal error, 0 undecided, 1 yes   *)
        signed int keepalive:2;
    
        (** have we done double-reverse DNS? -1 yes/failure, 0 not yet,
         *  1 yes/success *)
        signed int double_reverse:2;
        }

    with:

        (** Are we still talking? *)
        flags1: Cardinal;
        { The following are in the flags bitset:
        unsigned aborted:1; }
    
        (** Are we going to keep the connection alive for another request?
         * @see ap_conn_keepalive_e *)
        keepalive: ap_conn_keepalive_e;
    
        flags2: Cardinal;
        { The following are in the flags bitset:
        (** have we done double-reverse DNS? -1 yes/failure, 0 not yet,
         *  1 yes/success *)
        signed int double_reverse:2;
        }
  • Modifique os valores das variaveis conforme abaixo:
    MODULE_MAGIC_COOKIE = $041503232;                 (* "AP22" *)
    MODULE_MAGIC_NUMBER_MAJOR = 20051115; { Apache 2.2.x}
    MODULE_MAGIC_NUMBER_MINOR = 0;
    
  • Mofique também o valor da declaração da LibAPR conforme abaixo:
    LibAPR = 'libapr-1.dll';     {do not localize}
    
  • Após realizar as alterações acima salve o código de recompile; não esqueça também no seu projeto intraweb de modificar as declarações: “IWInitApache” e “ApacheApp” para “IWInitApacheTwo” e
    “ApacheTwoApp”; respectivamente.

    Compile e instale o no apache que vai rodar sem problemas. Estou até pensando que vai dar pra desenvolver no vista. rsrsrs..

    Posts Relacionados

    Tags: , , ,



    7 Comentários

    • At 2009.10.08 14:43, Luis Wagner said:

      Este artigo me ajudou muito a iniciar uma aplicação com componentes da atozed. ( intraweb ).
      Consegui fazer funcionar no IIS mas no apache não sei publicar.
      Você tem algumas dicas para passar ?

      Parabéns pelo artigo

      Wagner

      • At 2010.06.07 11:10, Marcelo Mota said:

        Caio, bom dia (help-me)

        To insistindo no Intraweb pois achei muito prático seus componentes, visto q é uma mão na roda pra quem ja domina o Delphi VCL. Contudo, to apanhando pra burro pra colocar “no ar” a dll. A primeira página abre na boa, mas qualquer evento disparado gera uma erro de leitura. o ISS (Win2003) tá rodando Scripts e executáveis, mas retorno sempre o mesmo erro. To com meu projeto todo pronto mas ja to pensando em desistir. Usei a versão 5.1 a 7 e agora a 10.8, mas nada. Se puder me ajudar, agradeço.

        • At 2010.12.12 20:38, mauricio amauri machado said:

          preciso urgente de ajuda usava windows 2003 server stander com delphi 7 o componente ACBRNFE funcionava muito bem dai mudei pro windows 2003 server enterprise edition e apos a compilacao praou de funcionar por favor me ajudem urgentissimo

          • At 2010.12.12 20:41, mauricio amauri machado said:

            por favor me ajudem, me desculpem por enviar este comentario mas a coisa e seria

            • At 2010.12.13 08:48, admin said:

              Mauricio,

              Desculpe a demora para te responder; acesse o FAQ do ACBrNFe para informações desse produto; clique no link abaixo:

              http://acbr.sourceforge.net/drupal/?q=node/18

              Sds

              • At 2010.12.13 09:53, Ederson Selvati said:

                Caio,

                Aproveitando o assunto intraweb, vi que vc ainda mantem uns projetos usando esta tecnologia, estou pensando em aproveitar algumas de minhas classes delphi e distribui-las na Web, com sua experiencia, recomendaria o uso desta tecnologia?

                D7 + IW XI

                Ederson Selvati

                • At 2010.12.13 10:14, admin said:

                  Olá Ederson,

                  Recomendo sim, o Intraweb, a partir da sua versão 10 ficou muito bom, após a implementação do uso do Ajax. Dá pra fazer agora, praticamente qualquer coisa que fazíamos nos VCL forms.

                  Sds

                  You must be logged in to post a comment.