Harbour CGI con Apache/2.4.38 en Raspbian

Publicar una respuesta

Emoticonos
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode está habilitado
[img] está habilitado
[Flash] está deshabilitado
[url] está habilitado
Emoticonos están habilitados

Revisión de tema
   

Expandir vista Revisión de tema: Harbour CGI con Apache/2.4.38 en Raspbian

Re: Harbour CGI con Apache/2.4.38 en Raspbian

por nikko1960 » Lun May 23, 2022 3:39 pm

Hola quimm

yo estoy usando harbour + apache + cgi, estas utsando sessiones o cookies o otra solucion ?

Re: Harbour CGI con Apache/2.4.38 en Raspbian

por quim » Mié Sep 08, 2021 10:19 am

diegof escribió: Jue Sep 02, 2021 6:38 pm Proba agregandole al proyecto...

REQUEST HB_GT_CGI_DEFAULT

y en vez de hb_eol() usa hb_OSNewLine()

Diego.
Muchas gracias Diego por tu respuesta

Has dado en el clavo con la sentencia REQUEST HB_GT_CGI_DEFAULT

Funciona indistintamente con hb_eol() o con hb_OSNewLine()

Saludos

Re: Harbour CGI con Apache/2.4.38 en Raspbian

por quim » Mié Sep 08, 2021 10:16 am

Cristobal escribió: Jue Sep 02, 2021 5:42 pm Hola Quim, gusto en saludarte
Has probado a poner simplemente

Código: Seleccionar todo

? cOut
O lo que estás ejecutando es el exe construído con el código que mencionas?, no me ha quedado muy claro.
Saludos igualmente Cristobal,

Lo que ejecuto es el binario construido con el codigo citado, es decir, un CGI por navegador

La salida tiene que ser la estándar, es decir, por OutStd(cString) o fwrite(0, cString)
Los comandos ? o funciones qout() qqout() producen la salida por consola, por lo que no son válidas para un CGI

Muchas gracias por tu interés !

Re: Harbour CGI con Apache/2.4.38 en Raspbian

por diegof » Jue Sep 02, 2021 6:38 pm

Proba agregandole al proyecto...

REQUEST HB_GT_CGI_DEFAULT

y en vez de hb_eol() usa hb_OSNewLine()

Diego.
quim escribió: Jue Sep 02, 2021 9:54 am Saludos al foro

Estoy intentando correr un CGI con puro Harbour, en una Raspberry Pi 3B con Debian
He instalado Apache2
He instalado los mod : header y cgi
He probado y funciona, el siguiente script, para descartar configuraciones de Apache

Código: Seleccionar todo

#!/bin/sh 
echo "Content-Type: text/html\n\n"
echo "<h1>Hello world</h2>"
He construido un ejecutable desde C y también funciona sin problemas

Código: Seleccionar todo

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main(void)
{
	printf("Content-type:text/html\n\n");
	printf("<HTML><HEAD><TITLE>Nombre</TITLE></HEAD>");
	printf("<BODY BGCOLOR=\"#FFFFFF\"><P ALIGN=CENTER>");
	printf("<BR>SERVER_NAME = %s", getenv("SERVER_NAME"));
	printf("<BR>SERVER_SOFTWARE = %s", getenv("SERVER_SOFTWARE"));
	printf("<BR>REQUEST_METHOD = %s", getenv("REQUEST_METHOD"));
	printf("<BR>HTTP_REFERED = %s", getenv("HTTP_REFERED"));
	printf("<BR>SCRIPT_NAME = %s", getenv("SCRIPT_NAME"));
	printf("<BR>QUERY_STRING = %s", getenv("QUERY_STRING"));
	printf("<BR>REMOTE_HOST = %s", getenv("REMOTE_HOST"));
	printf("</P></BODY></HTML>");
}
Finalmente, he construido Harbour para Linux
El código PRG que estoy intentando es el siguiente :

Código: Seleccionar todo

function main()
	local cOut
	cOut := "Content-Type: text/html"+ hb_eol() + hb_eol()
	cOut += "<h1>Hello world</h2>"+ hb_eol()
	//fwrite(0, cOut )
	OutStd( cOut )
return nil
Una vez se ejecuta en navegador, el resultado es un error 500
Revisando el error.log de Apache

Código: Seleccionar todo

[http:error] [pid 1273:tid 1806656544] [client ::1:57902] AH02429: Response header '\x1b[0m\x1b[1;1H\x1b[?25hContent-Type' contains invalid characters, aborting request
Parece que la salida que produce harbour incluya carácteres no admitidos
He intentado guardar dicho PRG en distintos formatos, Unicodes UTF8 con BOM y sin él, ISOs, Windows... pero nada, la salida de la cadena 'Content-type' produce dichos carácteres en el header de la petición. Sin embargo, aparece correctamente si se ejecuta por cónsola.

Es posible que deba construir Harbour con 'algo' especial para la Raspi Debian ?

Re: Harbour CGI con Apache/2.4.38 en Raspbian

por Cristobal » Jue Sep 02, 2021 5:42 pm

Hola Quim, gusto en saludarte
Has probado a poner simplemente

Código: Seleccionar todo

? cOut
O lo que estás ejecutando es el exe construído con el código que mencionas?, no me ha quedado muy claro.

Harbour CGI con Apache/2.4.38 en Raspbian

por quim » Jue Sep 02, 2021 9:54 am

Saludos al foro

Estoy intentando correr un CGI con puro Harbour, en una Raspberry Pi 3B con Debian
He instalado Apache2
He instalado los mod : header y cgi
He probado y funciona, el siguiente script, para descartar configuraciones de Apache

Código: Seleccionar todo

#!/bin/sh 
echo "Content-Type: text/html\n\n"
echo "<h1>Hello world</h2>"
He construido un ejecutable desde C y también funciona sin problemas

Código: Seleccionar todo

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main(void)
{
	printf("Content-type:text/html\n\n");
	printf("<HTML><HEAD><TITLE>Nombre</TITLE></HEAD>");
	printf("<BODY BGCOLOR=\"#FFFFFF\"><P ALIGN=CENTER>");
	printf("<BR>SERVER_NAME = %s", getenv("SERVER_NAME"));
	printf("<BR>SERVER_SOFTWARE = %s", getenv("SERVER_SOFTWARE"));
	printf("<BR>REQUEST_METHOD = %s", getenv("REQUEST_METHOD"));
	printf("<BR>HTTP_REFERED = %s", getenv("HTTP_REFERED"));
	printf("<BR>SCRIPT_NAME = %s", getenv("SCRIPT_NAME"));
	printf("<BR>QUERY_STRING = %s", getenv("QUERY_STRING"));
	printf("<BR>REMOTE_HOST = %s", getenv("REMOTE_HOST"));
	printf("</P></BODY></HTML>");
}
Finalmente, he construido Harbour para Linux
El código PRG que estoy intentando es el siguiente :

Código: Seleccionar todo

function main()
	local cOut
	cOut := "Content-Type: text/html"+ hb_eol() + hb_eol()
	cOut += "<h1>Hello world</h2>"+ hb_eol()
	//fwrite(0, cOut )
	OutStd( cOut )
return nil
Una vez se ejecuta en navegador, el resultado es un error 500
Revisando el error.log de Apache

Código: Seleccionar todo

[http:error] [pid 1273:tid 1806656544] [client ::1:57902] AH02429: Response header '\x1b[0m\x1b[1;1H\x1b[?25hContent-Type' contains invalid characters, aborting request
Parece que la salida que produce harbour incluya carácteres no admitidos
He intentado guardar dicho PRG en distintos formatos, Unicodes UTF8 con BOM y sin él, ISOs, Windows... pero nada, la salida de la cadena 'Content-type' produce dichos carácteres en el header de la petición. Sin embargo, aparece correctamente si se ejecuta por cónsola.

Es posible que deba construir Harbour con 'algo' especial para la Raspi Debian ?

Arriba