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 ?