NetBSD-7.0.1 + Nginx + PHP5 + fastcgi

NetBSD Después de instalar NetBSD-5.1 que sin duda he tenido algunas dificultades iniciales y con ayuda ficovh quien ha sido muy gentil en hacerme comentarios, respuestas a mis dudas, me he decidido a escribir esta guía para que le ayude a otros usuarios de este estupendo sistema operativo, del cual lo encuentro muy limpio, ágil, liviano y veloz.

Comentarios Previos

Sin duda que si queremos sólo instalar un servidor, no necesitaremos a Xorg, en este artículo he puesto cosas de más si sólo queremos instalar el servidor con php5 y fastcgi, pero la intención es que se aborde algo más que sólo la instalación estricta del servidor.

Bajar ISO

Las imágenes ISO de este Sistema Operativo NetbSD-7.0.1, se encuentran en muchos lugares y son de acceso libre, se pueden descargar libremente y grabar en un CD para realizar una instalación en un hardware que se encuentre entre los sistemas compatibles que son muchos.

Usted deberá elegir la ISO para la arquitectura de hardware que disponga, hay una gran variedad de plataformas de hardware.

Hardware

El hardware que he usado para la instalación del sistema es:

  • Procesador Atom 330 de 1.66GHz, montado sobre una placa Intel.
  • Memoria RAM de 2GB.
  • HDD de 1TB
  • Tarjeta de Video Intel integrada i945GM

La instalación ha ido sin problemas usando una arquitectura AMD64, para sacarle el máximo provecho a esta estupenda maquinita, la cual tiene para su precio, un muy buen rendimiento, es una placa Intel MicroATX muy pequeña y su consumo es muy bajo, es de las máquinas que se pueden dejar encendidas muchas horas, sin dar problemas, originalmente estas máquinas están desarrolladas para ser usadas como máquina de escritorio, pero en el hogar pueden servir perfectamente como servidor de archivos, web, con acceso por SSH… bueno la verdad es que se le puede sacar bastante provecho.

Particiones Generadas

Uno de los temas que se debe tener especial cuidado es en las particiones que se le de al disco del sistema, ya que una mala definición nos pueda causar problemas a futuro si nos quedan particiones muy estrechas, por lo que para este ejemplo he definido lo siguiente:

  • 4GB para la partición /
  • 4GB para la partición /var
  • 18GB para la partición /usr
  • 1,5GB para la partición /tmp
  • El resto del disco para /home

Alguien podría comentar porque no usar las particiones recomendadas por la instalación, con los valores por defecto que se indican, al menos en mi experiencia lo hice y quedé corto con la /usr y al final terminé reinstalando el sistema, por lo que para prevenir futuros problemas las dejé en los tamaños indicados, total con el espacio que se dispone no hay problemas en sobre dimensionar algunas de las particiones.

Configuraciones Iniciales

Posterior a la instalación del sistema hay ciertas cosas que debemos respetar, para ello una vez que el sistema se ha booteado, he modificado el archivo /etc/rc.conf con las siguiente líneas:

/etc/rc.conf

rc_configured=YES
wscons=YES
famd=YES        // No es necesario, sólo para el servidor X
hal=YES         // No es necesario, sólo para el servidor X
dbus=YES        // No es necesario, sólo para el servidor X
auto_ifconfig=YES
dhclient=YES
sshd=YES
hostname=nombre_que_quieras
rtclocaltime=YES
xfs=YES         // No es necesario, sólo para el servidor X
xdm=YES         // No es necesario, sólo para el servidor X
clear_tmp=YES

Lo que está indicado y comentado, no es realmente necesario para una máquina que se administrará por consola.

Bajando el Árbol de Fuentes

export CVS_RSH=ssh
export CVSROOT=anoncvs@anoncvs.NetBSD.org:/cvsroot
cd /usr
cvs checkout -PA pkgsrc

Esto permite bajar por primera vez el árbol de fuentes del sistema, con esto tenemos instalado todas las versiones actualizadas del sistema al momento de la instalación, este árbol deberemos mantenerlo actualizado.

Actualizando el Árbol de las Fuentes

Una vez que tenemos el árbol instalado, lo debemos mantener actualizado, para ello debemos ejecutar como root lo siguiente:

# cd /usr/pkgsrc/
# cvs -q up -Pd

Configuraciones Posteriores

Una vez instalado el árbol de fuentes debemos modificar algunos archivos, los que paso a indicar:

/root/.profile

Este archivo viene con la versión 6.0, la que debe ser cambiada a la versión NetBSD-7.0.2 un descuido que debemos corregir y dejar como sigue:

export PKG_PATH=ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/7.0.2/All

Con esto podemos estar seguros que la versión del sistema es la correcta, y apunta a la rama correcta en los mirrors de NetBSD.

Una vez modificado podemos comprobar en consola con el siguiente comando:

# set | grep PKG_PATH
PKG_PATH=ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/7.0.2/All

Con esto estaremos seguros que estamos apuntando correctamente al mirror de nuestra versión y arquitectura.

Instalando Demonios

Ahora que tenemos instalado el árbol de las fuentes, debemos instalar varios demonios (los que NO SON necesarios para el Servidor administrado por consola), teniendo esto claro, se instala lo siguiente:

famd

cd /usr/pkgsrc/sysutils/fam
unset PKG_PATH
make install clean clean-depends

Una vez que el sistema ha compilado el demonio y lo ha instalado debemos ejecutar siempre como root el siguiente comando:

# cp /usr/pkg/share/examples/rc.d/famd  /etc/rc.d/.
# chmod 775 /etc/rc.d/famd

Con esto podemos iniciar y detener este demonio que al arrancar el sistema lo levanta ya que lo tenemos configuraco en el /etc/rc.conf

hal

cd /usr/pkgsrc/sysutils/hal
unset PKG_PATH
make install clean clean-depends

Una vez que el sistema ha compilado el demonio y lo ha instalado debemos ejecutar siempre como root el siguiente comando:

# cp /usr/pkg/share/examples/rc.d/hal  /etc/rc.d/.
# chmod 775 /etc/rc.d/hal

Con esto podemos iniciar y detener este demonio que al arrancar el sistema lo levanta ya que lo tenemos configuraco en el /etc/rc.conf

dbus

DBUS debe instalarse en el paso anterior, es decir al instalar HAL debe instalarse DBUS, de todas formas dejo indicado el procedimiento de instalación y es el siguiente:

cd /usr/pkgsrc/sysutils/dbus
unset PKG_PATH
make install clean

Una vez que el sistema ha compilado el demonio y lo ha instalado debemos ejecutar siempre como root el siguiente comando:

# cp /usr/pkg/share/examples/rc.d/dbus  /etc/rc.d/.
# chmod 775 /etc/rc.d/dbus

Con esto podemos iniciar y detener este demonio que al arrancar el sistema lo levanta ya que lo tenemos configuraco en el /etc/rc.conf

Configurando PHP5

Debemos modificar el archivo de configuración /usr/pkg/etc/php.ini y descomentar la línea siguiente:

cgi.fix_pathinfo=1

Instalando FastCGI

Debemos instalar ahora spawn-fcgi, lo que debemos hacer en consola y como root es lo siguiente:

# cd /usr/pkgsrc/www/spawn-fcgi
# unset PKG_PATH
# make install clean

Una vez instalado debemos generar los script para que sea iniciado.

# cp /usr/pkg/share/examples/rc.d/spawnfcgi  /etc/rc.d/.
# chmod 775 /etc/rc.d/spawnfcgi

Con esto podemos iniciar y parar fastcgi

Instalando NginX

Para instalar este servidor WEB que tiene suficiente documentación disponible como root ejecutamos lo siguiente:

# cd /usr/pkgsrc/www/nginx
# unset PKG_PATH
# make install clean clean-depends

Después de algunos minutos tendremos el servidor web compilado e instalado, sin embargo es necesario realizar algunos pasos adicionales.

Configuraciones Adicionales a NginX

Cuando arrancamos la máquina y queramos que este servidor de inicie en este momento debemos realizar lo siguiente como root:

# cp /usr/pkg/share/examples/rc.d/nginx  /etc/rc.d/.
# chmod 775 /etc/nginx

Esto permite disponer del script para arrancar y parar el servidor web, ahora nos queda modificar el archivo /etc/rc.conf y deberemos agregar la siguiente línea:

nginx=YES

Con estas modificaciones tendremos el servicio web arrancando desde la partida. Ahora deberemos integrar a este servidor en los logs para realizar una correcta administración de este servicio, para ello modificamos el archivo /etc/newsyslog.conf y agregamos al final las líneas siguientes:

/var/log/nginx/access.log     640  7  *  *  BZ  /var/run/nginx.pid  SIGUSR1
/var/log/nginx/error.log      640  7  *  *  BZ  /var/run/nginx.pid  SIGUSR1

Configurando el Servidor WEB

Para configurar el servidor, que es distinto a lo que hemos realizado en los pasos anteriores, ya que estos son para que el servicio se inicie automáticamente y que se generen los logs correspondientes, lo que ahora corresponde es modificar el archivo de configuración del nginx que es /usr/pkg/etc/nginx/nginx.conf, de la siguiente forma:

 location / {
   root share/examples/nginx/html;
   index  index.html index.htm   index.php
   }

Lo que se ha realizado es agregar, las palabras 'index.php' al final de las líneas de index. En el mismo archivo ahora debemos descomentar y dejar de la forma siguiente, las líneas que configuran al fastcgi.

location ~\.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /usr/pkg/share/examples/nginx/html$fastcgi_script_name;
    include /usr/pkg/etc/nginx/fastci_params;
  }

Esto deja habilitado en el servidor web NginX el fastcgi, ahora debemos ejecutar para arrancar el fastcgi como root la línea siguiente:

/usr/pkg/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -f /usr/pkg/libexec/cgi-bin/php

Seguramente hay otra forma más limpia de realizar esto pero por ahora lo dejaremos así, cuando encuentre una mejor forma sin duda lo dejaremos acá para que quede como dios manda, es decir bien hecho.

Probando la Instalación

Una vez que hemos reiniciado la máquina, tendremos los servicios SSH y HTTP arriba, si se fijan en la configuración de /etc/rc.conf, tenemos estos dos servicios habilitados.

Para probar las configuraciones del servidor debemos poner en el directorio /usr/pkg/share/examples/nginx/html un archivo que llamaremos info.php que contendrá el siguiente contenido:

<?php
  phpinfo();
?>

Si después de grabarlo, habrimos un browser y ponemos http://ip_del_servidor, tendremos una página de bienvenida del servidor 'NginX' que indica Welcame to nginx!, esto confirma lo que hemos indicado y tenemos la certeza de tener el Servidor WEB funcionando.

Ahora para verificar que exista PHP5 y FASTCGI debemos poner en el mismo browser http://ip_del_servidor/info.php, con esto tendremos los parámetros y características que nos entrega PHP5 y si ven detenidamente toda la información, incluirá fastcgi

Notas Finales

Si tienen observaciones y comentarios, o corregir algún error en el mismo, no duden en enviarme un correo ralbab[at]gmail[dot]com, espero que les sea de utilidad.

informatica/unix_netbsd/nbsd-nginx.txt · Última modificación: 2020/03/23 22:24 por 127.0.0.1
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki