Presentación
En un post anterior comenzaba a contar sobre el entorno que uso para trabajar. En ese post hablé sobre el router que utilizo, que si bien me es muy útil no es relevante para la programación.
En este caso nos sumergimos en algo mucho más específico como será un pequeño servidor web. Creo que se cae de lógico que si vamos a programar en un lenguaje de lado servidor, vayamos a necesitar uno para probar los desarrollos.
Otras alternativas
Antes de comentar la implementación que usé, voy a comentar brevemente que otras alternativa tenemos.
La primera y más simple es buscar un hosting gratuito o si tenemos la posibilidad contratar uno básico.
Ventajas
- No necesitamos realizar configuraciones
- En algunos casos los hosting pagos ofrecen backup regulares
Desventajas
- Costo, en caso de un hosting pago.
- En caso de los gratuitos, podemos padecer publicidades no deseadas.
- Sólo dispondremos de lo básico: (Apache, PHP, Mysql). Y no podremos usar otras opciones como ser agregar un debug.
- Dependemos de la conexión a internet. Con los cual estamos limitados al funcionamiento de esta. Sobre todo al momento de subir archivos al servidor con las conexiones asimétricas que disponemos en Argentina.
- Muchos de los servidores gratuitos no tiene soporte para base de datos o limitan determinadas opciones.
Otra alternativa es utilizar un paquete como XAMMP

XAMMP es un paquete que contiene entre otras cosas Apache, PHP, Mysql, PHPMyAdmin listos para usar. Sólo es cuestión de descomprimir, ejecutar y listo. Es mínimo lo que habrá que configurar. Por ejemplo setear una contraseña para el Root del servidor MySQL que viene en blanco.
De esta manera descartamos la dependencia de una conexión a internet y los costos sobre todo. Pero no todo es color de Rosas tampoco.
Ventajas
- Configuraciones mínimas.
- Instalación simple.
- No se depende de una conexión a internet.
- Siguiendo estas instrucciones se puede utilizar desde un pendrive.
- Podemos personalizar las opciones, agregado un debug o modificar la configuración de PHP.
Desventajas
- Usado en nuestro equipo, puede dar conflictos con el puerto 80, por ejemplo si al mismo tiempo tenemos abierto Skype.
- Abrir y cerrar los programas cuando lo necesitamos. Para que no queden consumiendo recursos.
Mi elección
Para mis desarrollos elegí otro tipo de servidor distinto las opciones anteriores. Siempre teniendo en mente las posibilidades de expandir sus aplicaciones, maximizando así cada recurso disponible
Lo que hice fue montar un servidor en Debian. Claro, dicho así suena muy simple y no lo fue tanto en un principio. Pero afortunadamente me topé con el Blog Picando Código de Fernando Briano donde en su foro de discusión encontré personas con muy buena predisposición para ayudar y artículos que me fueron muy útiles. Incluso Fernando muchas veces ha resuelto mis dudas por Foro o hasta por IRC.
Vamos de desmenuzar el servidor. Algunos elementos llevarán un artículo aparte así que atentos que esto recién comienza.
Hardware
Comencemos por la parte física. La máquina está compuesta de esta manera:
- Motherboard: Soyo
- Procesador: AMD K6-2 400 MHZ
- Memoria: 256 MB PC100
- Disco: 40 GB
- Video: Riva TNT2 16MB
Dato anecdótico: Podríamos hasta decir que entre este hard y yo existe una conexión sentimental. Fue la primer computadora que asesoré y mantuve desde el momento de su compra, cuando comencé a trabajar solo con una muy buena base aprendida de trabajar junto a Sebastian a quién tengo el gusto de llamar amigo.
Software

Cuando llegó el momento de elegir sistema operativo para el Servidor me orienté hacia Linux principalmente porque me permitiría aprovechar mejor el Hardware que disponía.
Entre todas las distribuciones disponibles de Linux, me recomendaron trabajar con Debian. La primera vez que lo instalé fue muy poco personalizado, usando el instalador gráfico. No me terminaba de convencer, veía muchas cosas instaladas a las cuales no le conocía su uso, así que decidí hacer un camino un poco más largo.
Cabe destacar que no soy un usuario experto en Linux, es por eso que muchas de los programas instalados no entendía, y aún hoy desconozco, su utilidad dentro del sistema. Pero la idea de hacer una instalación minimalista me seducía.
Cuando realicé la instalación mediante el disco NetInstall de Debian en su versión Lenny, las opciones que marcaba eran sistema base y entorno gráfico siguiendo un tutorial que encontré en un foro del cual soy integrante hace un tiempo.
En este caso fuí un poco más allá, y sólo usé la opción de sistema Base.Por defecto Debian instala Gnome, para qué iba a instalarlo si luego lo iba a sacar para poner algo un poco más liviano, pero eso es tema para otro post, sigamos puntualmente por el lado del servidor.
Una vez que el sistema está instalado, mediante consola instalé los paquetes apache2, PHP5 y MySql. Las configuraciones iniciales no fueron complicadas de hacer.
TIP: Para quienes no son expertos en Linux como yo, usar un editor de texto tipo Vi puede ser muy complicado, por más que es poderoso que sea. Por eso les recomiendo usar Nano, simple y efectivo.
Una de las mejores opciones de tener todo montado sobre Linux es la facilidad de mantener actualizado todo el sistema y las aplicaciones instaladas con un par de comandos.
sudo apt-get update
sudo apt-get upgrade
Ahora bien, hay momentos en los cuales no me es posible conectar monitor y teclado a ese equipo, tampoco debería ser necesario, pero puede ser necesario por ejemplo hacer una actualización, reiniciar un demonio, etc. Para eso un paquete que no debe faltar es SSH.
Si no contamos con muchos recursos como para levantar un entorno gráfico, hay un programa excelente para manejar las configuraciones del sistema llamado Webmin. En próximos post les voy a contar un poco más sobre este programa con algunas capturas desde mi servidor.
Para ir cerrando este post, el último servicio que le agregé al server y donde hoy por hoy van a parar todos los proyectos que voy programando, Subversion. Conocí este programa/forma de trabajo, mediante el blog de Fernando que mencioné más arriba y realmente es algo que todo programador debería usar ya sea para trabajar en grupo o solo. Este es otro tema que será tratado aparte. Tanto su funcionamiento como las posibilidades que brinda, son muy amplias como para describirlas en pocas líneas.
2 Comments