.Dd 2026-07-12 .de oit .It \\$* .. .de obi .Bl -\\$1 -compact .shift .oit \\$* .. .de obe .obi \\$* .El .. .de obd .Bd -literal -compact \\$* .. .de obc .Bl -column \\$* .. .Dt CGI oh .Os .Nm cgi .Nd configuraci\('on y uso .Sh CGI .Ss script .obc .It - Un script requiere un int\('erprete. (eg.: #!/bin/ksh). .It - La primera l\('inea debe ser 'echo \&"Content-type: text/html\&"'. .It - La segunda l\('inea escrita debe estar vac\('ia 'echo \&"\&"'. .It - Copiar los ejecutables (incluyendo el int\('erprete) a /var/www/bin/. .It - Copiar las dependencias a su estructura correspondiente dentro de /var/www. .It - Los ejecutables y las librer\('ias deben corresponder al usuario www. .El .Ss ejemplo .obd $ 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/ .Ed .Ss httpd.conf La ubicaci\('on de los scripts de cgi deben tener el socket fastcgi definido. .obd server "default" { ... location "/$CGI_PATH/*" { fastcgi socket "/run/slowcgi.sock" } } .Ed .Sh EJEMPLO .Ss curl Esta p\('agina tiene la ubicaci\('on "/:*" definida, al acceder desde curl se muestra la versi\('on en texto de los archivos. .obd location "/:*" { fastcgi { param SCRIPT_FILENAME "$CGI_PATH_FROM_CHROOT/$SCRIPT"} } .Ed .Ss httpd.conf .obd 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"} } } .Ed .Sh PRUEBAS .Li chroot /var/www No para probar el script y asegurarse que todas las dependencias se encuentran disponibles y tienen los permisos correctos. .Sh SERVICIOS .Bl -enum -compact .oit Prueba: .Dl doas slowcgi -dnvvv .oit Habilitar e iniciar. .obd doas rcctl enable slowcgi doas rcctl restart slowcgi .Ed .oit Reiniciar httpd. .El .Sh ACTUALIZAR Al actualizar el sistema, se deben actualizar los ejecutables y sus dependencias. .Sh VER TAMBI\('EN .obc .It .It ejemplos: .Lk /cgi/example.cgi ejemplo de cgi con figlet , .Lk /cgi/search.cgi buscar .It archivos de texto: .In /dev/example.cgi , .In /dev/curl.cgi , .In /dev/search.cgi .It Manuales de OpenBSD: .Xr slowcgi 8 , .Xr rcctl 8 .It links .It - Lk https://www.fossil-scm.org/home/doc/trunk/www/server/openbsd/fastcgi.md Serving Fossil via httpd on OpenBSD .El .Sh HISTORIAL .obc _______ .It 2026-07-12 Ta : Creado. .El .Sh AUTORES .An -nosplit .Xr ohazot oh | .Xr info oh | .Lk https://ohazot.com ohazot.com .Aq Mt admin@ohazot.com