Delphi 7 x Intraweb x Apache 2.2
Delphi, Informação, Sem categoria outubro 3rd, 2008
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:
- 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
- Apenas o HTTPD2.pas será modificado; porêm será necessário recompilar o ApacheTwoApp.pas e ApacheTwoHTTP.pas
- Modifique o codigo de HTTPD2.pas conforme abaixo:
ap_conn_keepalive_e = (AP_CONN_UNKNOWN, AP_CONN_CLOSE, AP_CONN_KEEPALIVE);
(** 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; }
MODULE_MAGIC_COOKIE = $041503232; (* "AP22" *) MODULE_MAGIC_NUMBER_MAJOR = 20051115; { Apache 2.2.x} MODULE_MAGIC_NUMBER_MINOR = 0;
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..