_                    _
  ___ | |__   __ _ _______ | |_
 / _ \| '_ \ / _` |_  / _ \| __|
| (_) | | | | (_| |/ / (_) | |_
 \___/|_| |_|\__,_/___\___/ \__|

cgiconfiguración y uso

- Un script requiere un intérprete. (eg.: #!/bin/ksh).
- La primera línea debe ser 'echo "Content-type: text/html"'.
- La segunda línea escrita debe estar vacía 'echo ""'.
- Copiar los ejecutables (incluyendo el intérprete) a /var/www/bin/.
- Copiar las dependencias a su estructura correspondiente dentro de /var/www.
- Los ejecutables y las librerías deben corresponder al usuario www.

$ whereis grep
/usr/bin/grep
$ ldd /usr/bin/grep
Start End Type Open Ref GrpRef Name
0000030be12e4000 0000030be12ef000 exe 1 0 0 /usr/bin/grep
0000030e32295000 0000030e322b3000 rlib 0 1 0 /usr/lib/libz.so.6.0
0000030eb72e8000 0000030eb73dd000 rlib 0 1 0 /usr/lib/libc.so.96.1
0000030de67ed000 0000030de67ed000 ld.so 0 1 0 /usr/libexec/ld.so
$ doas install -o www /usr/lib/libz.so.6.0 /var/www/usr/lib/
$ doas install -o www /usr/libexec/ld.so /var/www/usr/libexec/

La ubicación de los scripts de cgi deben tener el socket fastcgi definido.

server default {
	...
	location "/$CGI_PATH/*" {
		fastcgi socket "/run/slowcgi.sock"
	}
}

Esta página tiene la ubicación "/:*" definida, al acceder desde curl se muestra la versión en texto de los archivos.

location /:* {
	fastcgi { param SCRIPT_FILENAME "$CGI_PATH_FROM_CHROOT/$SCRIPT"}
 }

server default {
	listen on * port 80
	root "/htdocs/$DIR"
	location "/$CGI_PATH/*" {
		fastcgi socket "/run/slowcgi.sock"
	}
	#curl access
	location "/:*" {
		fastcgi { param SCRIPT_FILENAME "$CGI_PATH_FROM_CHROOT/$SCRIPT"}
	}
}

(inicio)

chroot /var/www para probar el script y asegurarse que todas las dependencias se encuentran disponibles y tienen los permisos correctos.

(inicio)

  1. Prueba:
    doas slowcgi -dnvvv
  2. Habilitar e iniciar.
    doas rcctl enable slowcgi
    doas rcctl restart slowcgi
  3. Reiniciar httpd.

(inicio)

Al actualizar el sistema, se deben actualizar los ejecutables y sus dependencias.

(inicio)

ejemplos: ejemplo de cgi con figlet, buscar
archivos de texto: </dev/example.cgi> , </dev/curl.cgi> , </dev/search.cgi>
Manuales de OpenBSD: slowcgi(8), rcctl(8)
links
- Serving Fossil via httpd on OpenBSD

(inicio)

2026-07-12 : Creado.

(inicio)

ohazot | info | ohazot.com <admin@ohazot.com>

OpenBSD 7.9 2026-07-12