dotfiles para Unix/Linux

Written on July 4th, 2008
.

imagen 1 dotfiles para Unix/Linux

A veces encuentras perlas por internet gracias a las cuales aprendes más que leyendo libros.

En esta ocasión he encontrado una web que recompila ficheros de configuración de muchísima gente con buscador incorporado. http://dotfiles.org/

Ya conocía en GitHub un proyecto conjunto donde todos los usuarios creaban un repositorio en git donde colgaban sus ficheros .files, y la verdad es que ayuda mucho sobre todo encontrar ficheros de configuración de autenticos gurús en distintos campos. Si os interesa aquí teneis una lista en github.

Web Server optimizado con Nginx (Nginx I)

Written on May 7th, 2008
.

nginx black logo Web Server optimizado con Nginx (Nginx I)Este post inicia una serie de post sobre Nginx, instalación, configuración y optimización todo fruto de el trasteo, la búsqueda de la máxima optimización, en parte impulsada por la limitación de recursos en general de el servidor en el que tengo alojada este humilde site.
En mi incursión en optimizar tanto el rendimiento como el consumo de memoria en mi servidor casero he estado probando Nginx. Despues de muchas pruebas y de escuchar en la red que era el mejor servidor.

Pero vayamos y echemos un ojo a todo de esta maravilla rusa. Nginx (“engine x”) es un servidor HTTP y proxy inverso de alto rendimiento, y un servidor proxy para IMAP/POP3/SMTP. Nginx fue desarrollado por Igor Sysoev para Rambler.ru, el segundo sitio web más visitado de Rusia, donde ha estado, y sigue, funcionando en producción más de dos años y medio. Igor ha lanzado el código fuente bajo una licencia estilo BSD. Nginx es conocido por su estabilidad, gran conjunto de características, configuración simple, y bajo consumo de recursos.
Nginx en estos momentos está haciendo mucho ruído precisamente porque para el caso de montar servidores web es muy rápido, sino el mejor, sirviendo estáticos, esto sumado a la posibilidad de configurar servidores proxy web inversos, nos permite tener un servidor con un rendimiento increíble y lo más importante y lo que más me impactó, en sólo 4 mben runtime.

Nginx es usualmente utilizado como reemplazo de apache que gestiona muchas conexiones concurrentes, como servidor proxy de balanceo de carga, como servidor proxy de mail, entre otros.

Dejemonos de alabanzas y procedamos a la instalación del mismo: En el momento que escribo tanto Debian Testing como Sid tienen unas versiones desfasadas  tiene nginx en su repositorio pero es una versión algo desfasada, 0.4.13, por lo que vamos a compilar e instalar la última versión:

Antes de nada instalaremos unas cuantas dependencias:

sudo aptitude install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev

Hecho esto, ahora procedemos a recoger los fuentes, compilar y configurar.
Read the rest of this entry »

Configuración de Lighttpd sobre Linux con PHP5, Ruby on Rails y SSL

Written on November 12th, 2007
.

imagen 1 Configuración de Lighttpd sobre Linux con PHP5, Ruby on Rails y SSLRecientemente he migrado mi server casero de Apache a Lighttpd, con la eterna promesa de la reducción consumo de recursos, sobre todo para deploys de múltiples aplicaciones en Rails. No se si es una panacea, pero aquí voy a relatar los puntos más algidos sobre la configuración de un server de estas características, así como mis valoraciones iniciales e intermedias.

Primer comentar que mi principal objetivo era conseguir una configuración lo más simplificada y menos estresante de cara a minimizar el tiempo de configuracion. Lighttpd es inmediato en GNU/Linux, y con pocos pasos tenemos un server para desarrollo muy bueno. Vamos allá

Instalación

Partimos de una Debian estable en la que ya había corriendo, como digo, un apache 2.0 del que últimamente no estaba muy contento ya que, mi server está muy limitado en recursos de memoria. Recientemente he encontrado un módulo de 64 Mb más, por lo que el server se quedaría con 200 mb de memoria física, que para un server casero no está nada mal.

Pues como siempre se instala un server y despues de limpiar la configuración anterior de apache en command line:

sudo aptitude install lighttpd openssl mysql php5-cgi

Instalo php5-cgi para utilizar el módulo fastcgi del lighty. Listo ya esta nuestro server instalado.

Configuración

Aquí configuraremos el soporte de PHP y Ruby para despues configurar nuestros virtual hosting, de forma muy simple, y el soporte para SSL.

El php5 ya lo tenemos instalado de antes, por lo que no voy a explicar como se hace, pero la decisión de instalar PHP5 es simple, ahora no hay soporte para PHP4 y además la versión PHP5 tiene muchisimas mejoras respecto a su antecesor. Si alguno de vosotros prefiere PHP4 la instalación es muy parecida a esta y resulta trivial.
Editamos el archivo /etc/lighttpd/lighttpd.conf y añadimos el soporte para fastcgi

server.modules              = (
            "mod_access",
            "mod_alias",
            "mod_accesslog",
            "mod_fastcgi",
[....]

Ahora configuraremos el módulo fastcgi en el archivo /etc/lighttpd/conf-available/10-fastcgi.conf

fastcgi.server    = ( ".php" =>
 ((
 	"bin-path" => "/usr/bin/php5-cgi", # ruta al wrapper php5-cgi, php4-cgi
 	"socket" => "/tmp/php.socket",     # ruta al socket de php
 	"max-procs" => 2,				   # numero máximo de procesos
 	"idle-timeout" => 20,
 	"bin-environment" => (
 		"PHP_FCGI_CHILDREN" => "4",
 		"PHP_FCGI_MAX_REQUESTS" => "10000"
 	),
 	"bin-copy-environment" => (
 		"PATH", "SHELL", "USER"
 	),
 	"broken-scriptfilename" => "enable"
 ))
# y ahora la configuración para aplicaciones rails
".fcgi" =>
        ( "dominio.com" =>
        (
               "socket" => "/tmp/rails-new.socket",
               "bin-path" => "/var/www/rails_app/public/dispatch.fcgi", #ruta al dispatcher rails
               "bin-environment" => ( "RAILS_ENV" => "production" )
               )
        )
)

Reiniciamos el server

# /etc/init.d/lighttpd restart

Y ya tenemos un lighty con php5

Ahora podemos configurar distintos hosting de forma muy muy simple, y además muy intuitiva, así como de distintos subdominios. Editamos el archivo /etc/lighttpd/lighttpd.conf y añadimos según convenga:

$HTTP["host"] == "subdominio.dominio.com" {
	server.document-root = "/var/www/subdominio.dominio.com/" }
$HTTP["host"] == "sub.dominio.com" {
	server.document-root = "/var/www/dominio.com/subdominio" }
$HTTP["host"] == "dominio2.es" {
	server.document-root = "/var/www/dominio2.es/" }

Como veis la configuración es inmediata.

SSL

Activaremos aquí el soporte para cifrado de la conexión para que ciertas zonas de nuestro server tengan más seguridad, aquí teneis un manual más extenso de generación de certificados para lighttpd

$SERVER["socket"] == "dominio.com:443" {
	ssl.engine = "enable"
	ssl.pemfile = "/etc/lighttpd/dominio.com/dominio.com.pem" #certificado del servidor
	ssl.ca-file = "/etc/lighttpd/dominio.com/CA_issuing.crt" #certificado intermedio
	server.name = "dominio.com"
	server.document-root = "/home/lighttpd/dominio.com/https" # path del servidor
	server.errorlog = "/var/log/lighttpd/dominio.com/serror.log"
	accesslog.filename = "/var/log/lighttpd/dominio.com/saccess.log"
}

Reiniciamos el server

# /etc/init.d/lighttpd restart

Y si nada ha fallado tenemos nuestro lighttpd totalmente funcional.

Recursos y Valoración

Mi valoración inicial es que el lighttpd, de primeras es mucho más fácil de administrar (bajo mi punto de vista), lógicamente bajo el recorte de funcionalidades respecto a apache, la configuración si se lee resulta muy intuitiva y con solo leerla aprendes la forma de configuración.
En cuanto al consumo de recursos, en mi server sin iniciar ningún servidor de aplicaciones, en este caso mongrel, el consumo de memoria se redujo un 30%, es decir

Mas información

Podeis encontrar más información en la página www.lighttpd.net

Wireless Atheros del MacBook en GNU/Linux

Written on September 30th, 2007
.

madwifi logo 20070907 Wireless Atheros del MacBook en GNU/LinuxAquí está la segunda entrega de instalación de nuestro sistema operativo favorito, GNU/Linux. Como amante del software libre no me canso de recomendar este sistema, y en el tiempo que llevo los problemas que se presentan siempre son recursivos:

  • instalación de software, llegados a un punto de práctica suficiente se solventa con un ./configure, make, make install para el caso de los tarball y un dpkg -i para los archivos deb, en el caso de los paquetes de debian.
  • configuración de hardware, este es el tema más peliagudo que le veo a GNU/Linux, la gente inexperta se desespera al tener una máquina que no funciona del todo.

Siguiendo la temática del último punto hoy instalaremos la tarjeta inalámbrica con chipset Atheros del Macbook de la segunda hornada (Core 2 Duo). Al principio era mucho, mucho más complicado, de hecho no hace más de 6 meses todavía no había soporte teniendo que tirar de una llave usb para tener conectividad sin cables. Hoy día no solo tenemos soporte para esta tarjeta que se identifica en nuestro sistema facendo un

$lspci -vvxxx
02:00.0 Network controller: Atheros Communications, Inc.
AR5418 802.11a/b/g/n Wireless PCI Express Adapter (rev 01)
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR-
00: 8c 16 24 00 07 00 10 00 01 00 80 02 40 00 00 00
10: 04 00 10 50 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 00 00

sino que tenemos soporte para cifrado de los datos en modos WEP y WPA, aunque algún inconveniente tenía que tener, la señal de recepción se va a ver disminuída.

Read the rest of this entry »