Página 1 de 2

Xampp, apache + Harbour como CGI.

Enviado: 07 Fev 2017 13:14
por Itamar M. Lins Jr.
Apenas repassando.

Código: Selecionar todos

Hi Roberto, Andy

In <drive:>\xampp\apache\conf\httpd.conf make sure the line <AddHandler> contains .prg. So it might look like this:
AddHandler cgi-script .cgi .pl .asp .prg

Then create within xampp\cgi-bin folder DEMO.PRG
Next create folder within xampp: 'hscript' + folder 'bin' in hscript
Within hscript/bin copy HBRUN.EXE + harbour-32.dll from HARBOUR

- start XAMPP

http://localhost/cgi-bin/demo.prg    start in your browser



DEMO.PRG
 
#!"<drive:>:/xampp/hscript/bin/hbrun.exe"
fwrite( 1, "Content-Type: text/html" + chr(10 ) + chr(10) )
fwrite( 1, "<h1>World countries</h1>" + chr(10) )
fwrite( 1, "<body>"  + chr(10) )
fwrite( 1, "<table>" + chr(10) )
USE  <drive:>:\TEST\LANDEN    // CHANGE THIS
GO TOP
DO WHILE .NOT. EOF()  
   fwrite( 1, "<tr>" + chr(10) )
   fwrite( 1, "<td>" + LANDEN->LAND_ISO + "</td>" + chr(10) )            // CHANGE THIS
   fwrite( 1, "<td>" + LANDEN->LAND_CD  + "</td>" + chr(10) )            // CHANGE THIS    
   fwrite( 1, "<td>" + LANDEN->LAND_NR  + "</td>" + chr(10) )            // CHANGE THIS
   fwrite( 1, "<td>" + ALLTRIM(LANDEN->LAND_OMS) + "</td>" + chr(10) )        // CHANGE THIS
   fwrite( 1, "</tr>" + chr(10) )
   SKIP
ENDDO
fwrite( 1, "</table>" + chr(10) )
fwrite( 1, "</body>"  + chr(10) )
fwrite( 1, "</html>"  + chr(10) )
CLOSE ALL
 
RETURN

  


DECLARE ALL VARS AS LOCAL !!!


<drive:>  is C, D, E or where your XAMPP is located

It also works with NETIO and you will have to use HTML5 + CSS

 Serge
Saudações,
Itamar M. Lins Jr.

Xampp, apache + Harbour como CGI.

Enviado: 07 Fev 2017 13:19
por Itamar M. Lins Jr.
Li, comentário que ficou mais rápido do que PHP.

Saudações,
Itamar M. Lins Jr.

Xampp, apache + Harbour como CGI.

Enviado: 07 Fev 2017 14:05
por fladimir
Desculpem mas não entendo direito seria pra criar tipo um sistema Web?

Xampp, apache + Harbour como CGI.

Enviado: 07 Fev 2017 14:37
por Itamar M. Lins Jr.
Ola!
Sim. É isso mesmo nossa opção xBase(dialeto) para trabalhar na WEB, igual a linguagens como PHP e ASP.
Ainda tem mais uma dica do Andi que roda HRB, que é o PRG compilado. Pois não convém deixar os PRG´s nos clientes, para alguns programadores.
Mas assim é mais fácil aprender só com PRG depois passamos para o "advanced" !

Já fiz vários testes quando usava Linux+Harbour, muito mais complicado de fazer e rodava sem problemas, agora está mais fácil para aprender.

Saudações,
Itamar M. Lins Jr.

Xampp, apache + Harbour como CGI.

Enviado: 08 Fev 2017 02:02
por rochinha
Amiguinhos,

X:) "...I Feel Gooooooood..." X:)

Xampp, apache + Harbour como CGI.

Enviado: 08 Fev 2017 04:23
por fladimir
Entendi o q é, agora não entendi muito bem como testar... como não manjo de inglês fiquei em dúvida com relação a esta parte
Then create within xampp\cgi-bin folder DEMO.PRG
Next create folder within xampp: 'hscript' + folder 'bin' in hscript
Within hscript/bin copy HBRUN.EXE + harbour-32.dll from HARBOUR
Alguém q entende melhor pode explicar?

Xampp, apache + Harbour como CGI.

Enviado: 08 Fev 2017 14:34
por rochinha
Amiguinhos,

fladimir
Depois de instalar o XAMPP e ter certeza que todos os componentes estão rodando a contento você poderá testar os scripts colocando-os na pasta CGI-BIN que é uma pasta especialmente preparada para executar CGI que são todos os tipos de arquivos de execução como os .PRGs e até executáveis.

Então dentro da pasta XAMPP crie a pasta CGI-BIN e jogue nela o DEMO.PRG
dentro da pasta XAMPP crie a pasta HSCRIPT e dentro desta pasta crie a pasta BIN
Jogue o HBRUN.EXE e a HARBOUR-32.DLL dentro da pasta HSCRIPT/BIN

Acho ser isto.

Xampp, apache + Harbour como CGI.

Enviado: 08 Fev 2017 14:45
por asimoes
Pessoal,

Onde eu baixo o XAMPP ?

Xampp, apache + Harbour como CGI.

Enviado: 08 Fev 2017 16:17
por rochinha

Xampp, apache + Harbour como CGI.

Enviado: 09 Fev 2017 10:51
por Itamar M. Lins Jr.
Ola!
O básico:
O que é o XAMPP?
XAMPP é o ambiente de desenvolvimento PHP mais popular

O XAMPP é completamente gratuito, de fácil de instalar a distribuição Apache, contendo MySQL, PHP e Perl. O pacote de código aberto do XAMPP foi criado para ser extremamente fácil de instalar e de usar.
Fonte:
https://www.apachefriends.org/pt_br/index.html
Apache Friends é um projeto sem fins lucrativos para promover o servidor web Apache e abriga o projeto XAMPP. O XAMPP é uma distribuição Apache de fácil instalação, contendo PHP, MySQL e Perl...
Ps. Parece que agora não é mais o MySQL e sim o MariaDb.

Saudações,
Itamar M. Lins Jr.

Xampp, apache + Harbour como CGI.

Enviado: 09 Fev 2017 20:47
por wmanesco
Itamar M. Lins Jr. escreveu:Ps. Parece que agora não é mais o MySQL e sim o MariaDb.
Itamar, não sei como está agora mas até a uns 3 meses atrás quando baixei o XAMPP ainda era mysql rs...

Mas enfim, tenho uma dúvida:

Será que seria muito dificil configurar e utilizar o cgi-bin em produção? Quero dizer em um servidor mais robusto, pois XAMPP é indicado apenas para testes...
Digo isso por que vi em um tópico no FiveTech que é dificil hospedar servidor web com a arquitetura cgi-bin, sabem de alguma coisa?


Outra coisa, através do .prg, como é feito para pegar dados? Tipo query_string, cookies, etc, é possível?

Xampp, apache + Harbour como CGI.

Enviado: 13 Fev 2017 10:22
por Itamar M. Lins Jr.
Ola!
pois XAMPP é indicado apenas para testes...
Desconheço essa informação.
XAmmp é apenas o nome do pacote. É só para facilitar a instalação do conjunto. APACHE é para testes ? MySQL é para testes ? CGI-BIN é amadorismo ?
Acredito que eles fazem referência para quando nós utilizamos a extenção ".EXE" na pasta CGI-BIN por causa da vulnerabilidade... questões de segurança... No mais vc encontra livros e livros sobe CGI(common getway interface) com as mais diversas ferramentas.
Quanto as outras coisas que vc pergunta, só testando para ver como é, mas com certeza tem e deve ser da mesma forma que usamos com PHP ou ASP.
Senão, não tem como interagir. São as variáveis de ambiente do APACHE.

Saudações,
Itamar M. Lins Jr.

Xampp, apache + Harbour como CGI.

Enviado: 13 Fev 2017 11:30
por fladimir
Itamar, vc sabe algum link com mais informações para fazermos testes?

Xampp, apache + Harbour como CGI.

Enviado: 13 Fev 2017 14:28
por wmanesco
Itamar,

Quando me referi a testes, quis dizer ao programa XAMPP em si, nunca vi rodando isso em servidor de produção. Geralmente é instalado tudo separado, apache, mysql, etc. É o que eu ouvi um programador WEB falar, não sei como funciona na realidade.

Andei testando e consegui fazer uso das variaveis de ambiente do apache...

Xampp, apache + Harbour como CGI.

Enviado: 14 Fev 2017 10:37
por Itamar M. Lins Jr.
Ola!
Itamar, vc sabe algum link com mais informações para fazermos testes?
Na verdade, verdadeira mesmo rsrsrs, só precisa do apache, como eu tenho aqui ele instalado foi só ajustar isso aqui:

Código: Selecionar todos

C:\Users\Itamar>cd "\Program Files\Apache Software Foundation\Apache2.2\conf"
C:\Program Files\Apache Software Foundation\Apache2.2\conf>notepad httpd.conf
>Achar essa linha e colocar o tal "ponto pê, érri, gê"!
       	 AddHandler cgi-script .exe .prg
Só isso ai. Reiniciar o APACHE!

Fiz esse programinha aqui para testar, coloque dentro da pasta cgi-bin com o nome que desejar.

Código: Selecionar todos

#!C:\hb34\bin\hbrun.exe
Function main
local cHbVer := hb_Version()
outstd( "Content-Type: text/html" + hb_eol() + hb_eol() )
outstd( "<h1>" + cHbVer + "</h1>" + hb_eol() )
outstd( ""  + hb_eol() )
outstd( "<pre>" + hb_eol() )
outstd( "SERVER_SOFTWARE="   + hb_GetEnv("SERVER_SOFTWARE") + hb_eol() )
outstd( "GETEWAY_INTERFACE=" + hb_GetEnv("GETEWAY_INTERFACE") + hb_eol()  )
outstd( "SERVER_NAME="       + hb_GetEnv("SERVER_NAME")  + hb_eol() )
outstd( "SERVER_PORT="       + hb_GetEnv("SERVER_PORT") + hb_eol()  )
outstd( "SERVER_PROTOCOL="   + hb_GetEnv("SERVER_PROTOCOL")  + hb_eol() )
outstd( "REQUEST_METHOD="    + hb_GetEnv("REQUEST_METHOD")  + hb_eol() )
outstd( "PATH_INFO="         + hb_GetEnv("PATH_INFO")       + hb_eol() )
outstd( "PATH_TRANSLATED="   + hb_GetEnv("PATH_TRANSLATED") + hb_eol() )
outstd( "SCRIPT_NAME="       + hb_GetEnv("SCRIPT_NAME")     + hb_eol() )
outstd( "QUERY_STRING="      + hb_GetEnv("QUERY_STRING")    + hb_eol() )
outstd( "CONTENT_TYPE="      + hb_GetEnv("CONTENT_TYPE")  + hb_eol() )
outstd( "CONTENT_LENGHT="    + hb_GetEnv("CONTENT_LENGHT")  + hb_eol() )
outstd( "REMOTE_ADDR="       + hb_GetEnv("REMOTE_ADDR")  + hb_eol() )
outstd( "REMOTE_HOST	="       + hb_GetEnv("REMOTE_HOST")  + hb_eol() )
outstd( "REMOTE_USER="       + hb_GetEnv("REMOTE_USER")  + hb_eol() )
outstd( "HTTP_ACCEPT="       + hb_GetEnv("HTTP_ACCEPT")  + hb_eol() )
outstd( "HTTP_COOKIE="       + hb_GetEnv("HTTP_COOKIE")  + hb_eol() )
outstd( "HTTP_KEEP_ALIVE="   + hb_GetEnv("HTTP_KEEP_ALIVE")  + hb_eol() )
outstd( "HTTP_USER_AGENT="   + hb_GetEnv("HTTP_USER_AGENT")  + hb_eol() )
outstd( "HTTP_REFERER="      + hb_GetEnv("HTTP_REFERER")  + hb_eol() )
outstd( hb_dtoc(date())      + hb_eol() )
outstd( "</pre>"  + chr(10) )

return nil
Funcionou sem problema."ATENÇÃO PARA O LUGAR ONDE ESTÁ O HBRUN!!!!!" na linha 1, no meu note está em c:\hb34\bin\hbrun.exe

E respondendo sobre o xampp, ser inseguro, não vejo dessa forma o xampp pelo que entendo é o nome do pacotão com tudo junto e já configurado para o pessoal não ficar perdendo tempo em configurar o apache e mysql + php.
Se baixarmos um por um é preciso editar os .conf da vida desses três grandes programas. O xampp facilita isso.

Saudações,
Itamar M. Lins Jr.