domingo, 5 de junio de 2016

Aprovechando equipos viejitos con servidor web ligero (Lighttpd) en Debian

Tengo un equipo viejo pero viejo re viejo, que lo utilizaba como pisa papeles, un día se me ocurrió entrar a la programación en java con un servidor de base de datos relacional como mysql, como se que Linux no necesita mucho recursos pues decidí aprovechar el equipo viejo las cuales tiene las siguientes característica:

Pc ACER S series
Procesador 486  400MHZ
RAM           128 MB
DiscoDuro      3.5 GB

Al instalar el servidor de base de datos necesitaba un cliente de base de datos amigable y pense en phpmyadmin, pero para eso necesitaba un servidor web y por las características del equipo un servidor web ligero. ahi entra el servidor Lighttpd

Bueno procedemos con la instalación 

#aptitude install lighttpd

Asta ahi ya tenemos un servidor web sencillo que atiende html, pero no atiende php no trabajaría phpmyadmin a como tenemos el servidor necesitaríamos protocolo para interconectar programas interactivos con el servidor para los cuales instalaremos php5-cgi y php5-curl.

#aptitude install php5-cgi php5-curl

Abilitamos la funcion de php5-cgi ,Editamos el archivo /etc/php5/cgi/php.ini y reemplazamos la línea:


cgi.fix_pathinfo=0  

por:

cgi.fix_pathinfo=1

Habilitamos el módulo mod_fastcgi en lighttpd ejecutamos la siguiente sentencia:

#nano /etc/lighttpd/lighttpd.conf
agregamos la linea

fastcgi.server = (".php" => (("bin-path" => "/usr/bin/php5-cgi", "socket" => "/tmp/php.socket" )))
 Guardamos y ejecutamos
#lighty-enable-mod fastcgi

Reiniciamos lighttpd para que los cambios tenga efecto con la siguiente sentencia

#/etc/init.d/lighttpd restart

Asta aqui ya tenemos trabajando el servidor web habilitado para que de soporte a php.

Ahora una configuraciones  necesarias para la administración del servidor editamos de nuevo lighttpd.conf

#nano /etc/lighttpd/lighttpd.conf
nos aseguramos que estén la siguientes lineas
server.document-root        = "/home/usuario/www"

server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )

server.errorlog             = "/var/log/lighttpd/error.log"

index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )

  • Por defecto en Debian el Document Root se encuentra en: /var/www. aqui son almacenadas las paginas web, para evitar estar dando permisos de root es recomendable direccionar a la carpeta de usuario.
  • Por defecto los logs se encuentran en: /var/log/lighttpd, y son rotados semanalmente.
Adicionalmente es conveniente saber que
  • Las configuraciones adicionales disponibles se encuentran en /etc/lighttpd/conf-available/.
  • Las configuraciones adicionales habilitadas se encuentran en /etc/lighttpd/conf-enabled/.
  • Podemos habilitar una configuración disponible mediante el comando lighttpd-enable-mod nombremod que creará un enlace simbólico en la carpeta conf-enabled apuntando al archivo correspondiente de conf-available.
  • Podemos deshabilitar configuraciones adicionales con lighttpd-disable-mod nombremod.
Para tener el servidor web ya esta todo pero como la idea principal era dar uso a phpmyadmin hay que instalarlo con la siguiente sentencia

#aptitude install phpmyadmin
Se responde a las pantallas que irán apareciendo y listo.


Instalacion y configuración de Slim en debian


Buscando un administrador de session minialiesta me encontre con Slim, muy bueno por cierto amigable para la configuración, no muy vistoso , pero me dije en todo el tiempo que utilizo la computadora Slim solo lo veo en el inicio despues no lo veo asta el proximo arranque de la PC, asi que no me afectara lo poco vistoso de Slim si me ahorro unos kb de RAM

Iniciamos



aptitude update aptitude upgrade aptitude install slim 

una ves instalado procedemos a configurar para eso editamos el archivo /etc/slim.conf

leafpad /etc/slim.conf //utiliso leafpad en ves de nano por que me es mas amigable al copiar y pegar

# Ruta al servidor X y argumentos (si es necesario)
# Nota: -xauth $authfile es automáticamente añadido
default_path /bin:/usr/bin:/usr/local/bin
default_xserver /usr/bin/X
#xserver_arguments -dpi 75

# Comandos para apagar, conectarse, etc.
halt_cmd /sbin/shutdown -h now
reboot_cmd /sbin/shutdown -r now
console_cmd /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"
#suspend_cmd /usr/sbin/suspend

xauth_path /usr/bin/xauth
authfile /var/run/slim.auth

# Activar el bloqueo numérico cuando slim se inicie. Valores válidos: on (activar) |off (desactivar)
# numlock on

# Ocultar el cursor del ratón (nota: no funciona con muchos administradores de ventanas).
# Valores válidos: true (activar) |false (desactivar)
# hidecursor false

# Este comando es ejecutado después de conectarse.
# usted puede añadir las variables %session y %theme
# para la ejecución de comandos específicos en .xinitrc
# dependiendo de la sesión y tema elegidos.
#
# NOTA: si su sistema no tiene bash usted necesita ajustar
# el comando de acuerdo con su shell preferido,
# i.e. for freebsd use:
# login_cmd exec /bin/sh - ~/.xinitrc %session
login_cmd exec /bin/bash -login ~/.xinitrc %session

# Comandos a ejecutar al iniciar y terminar una sesión.
# Estos pueden usarse para registrar una sesión X11 con
# sessreg. Usted puede utilizar la variable %user

# sessionstart_cmd some command
# sessionstop_cmd some command

# Iniciar en modo daemon. Valores válidos: yes (sí) | no
# Tenga en cuenta que esto será sobreescrito con la
# opción de línea de comando, "-d"
# daemon yes

# Directorio de sesiones disponibles .
# El actual nombre de sesión es reemplazado en el login_cmd
sessiondir            /usr/share/xsessions/

# Ejecutado cuando se presione F11 (requiere imagemagick)
screenshot_cmd import -window root /slim.png

# mensaje de bienvenida. Variables disponibles: %host, %domain
welcome_msg Bienvenido a %host

# mensajes de apagado y reinicio
shutdown_msg El sistema se está apagando...
reboot_msg El sistema se está reiniciando...

# usuario por defecto
#default_user simone

# Enfocar la pantalla de contraseña en el inicio cuando el parámetro 'default_user' esté activado.
# Ajustar a "yes" para activar esta opción. Valores válidos: yes (sí) | no
#focus_password no

# Acceso automático para el usuario por defecto (sin tener que escribir
# la contraseña). Ajustar a "yes" para activar esta opción. Valores válidos: yes (sí) | no
#auto_login no

# tema actual, utilizar una lista separada por comas, para una carga
# aleatoria de los temas.
current_theme default

# Archivo de bloqueo
lockfile /var/run/slim.lock

# Archivo log
logfile /var/log/slim.log
Combiene modificar las sentencias al gusto claro

welcome_msg         Welcome to %host
# numlock on
# hidecursor false
sessiondir            /usr/share/xsessions/
#default_user simone#focus_password no
current_theme default

En mi caso modifique las siguientes sentencias, lo que hace que en la pantalla de slim en ves de Welcome to host.. me aparesca Bienvenido host, que en ves de que me pregunte por el nombre de usuario solo me pregunte por la clave del usuario y que me presente un thema mas a mi gusto

welcome_msg         Bienvenido %host
default_user myusuario
focus_password yes
current_theme debian-lines
Los temas que se instalan por defecto se encuentra en  /usr/share/slim/theme, los listo a continuacion:
debian-joy    debian-moreblue        debian-spacefun
debian-lines  debian-moreblue-orbit  default
si tiene varios gestores de escritorios instalados para definir el predeterminado edite los archivos de ejecucion que se encuentra en /usr/share/xsessions/ los que pudieran ser xfce.desktop, cinnamon.desktop etc..... en mi caso tengo cinnamon como predeterminando por el cual el contenido del archivo cinnamon.desktop lo tengo asi:

[Desktop Entry]
Name=Default Xsession
Comment=This session logs you into Cinnamon
Exec=cinnamon-session-cinnamon
TryExec=/usr/bin/cinnamon
Icon=
Type=Application


como podran ver name espesifico que es el gestor de escritorio que slim tome por defecto.


Cambiando el prompt de mi lxterminal

Me gusta lxterminal por que es liviana además que tiene características de configuración muy agradables (colores, opacidad , fuente, tamaño ...