_ _ ___ | |__ __ _ _______ | |_ / _ \| '_ \ / _` |_ / _ \| __| | (_) | | | | (_| |/ / (_) | |_ \___/|_| |_|\__,_/___\___/ \__|
| ohazot | docs | links | dev | conf | txt |
| > es < | en |
| archivo mdoc |
| buscar |
cgi —
configuración y uso
CGI
script
| - 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. |
ejemplo
$ 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/
httpd.conf
La ubicación de los scripts de cgi deben tener el socket fastcgi definido.
server default {
...
location "/$CGI_PATH/*" {
fastcgi socket "/run/slowcgi.sock"
}
}
EJEMPLO
curl
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"}
}
httpd.conf
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"}
}
}
PRUEBAS
chroot /var/www para
probar el script y asegurarse que todas las dependencias se encuentran
disponibles y tienen los permisos correctos.
SERVICIOS
- Prueba:
doas slowcgi -dnvvv - Habilitar e iniciar.
doas rcctl enable slowcgi doas rcctl restart slowcgi
- Reiniciar httpd.
ACTUALIZAR
Al actualizar el sistema, se deben actualizar los ejecutables y sus dependencias.
VER TAMBIÉN
| 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 |
HISTORIAL
| 2026-07-12 | : Creado. |
AUTORES
ohazot | info | ohazot.com <admin@ohazot.com>