Anda di halaman 1dari 10

Armando un servidor web

Con una PC de bajos recursos

10/03/2009
MoatSoft
Miguel Tuyaré
Este documento tiene licencia:
Creative Commons Atribución-No Comercial-Sin Obras Derivadas 2.5 Argentina
Sitio de la Licencia: http://creativecommons.org/licenses/by-nc-nd/2.5/ar/
y está registrado SafeCreative.org.

Agradecimientos:

A todos los programadores que dan su tiempo y hacen excelente software de uso libre.

Lo mejor fue, es y seguirá siendo GNU.

2
Introducción
Seguramente muchos de nosotros tenemos por ahí, tal vez al borde del tacho de
basura, alguna computadora obsoleta, digamos un Pentium II de 266Mhz, con 64Mb de
memoria, con un HD de 4Gb y con cualquier placa de video. Si tal es el caso le digo que no la
tiren, todavía sirve. Si aunque parezca mentira se pueden llegar a asombrar lo que se puede
hacer con una máquina de esas características. Si, ya sé que XP ni hablar de instalar, inclusive
hasta el Windows 98 se arrastra, pero para el pingüino, GNU/Linux, no hay nada imposible.

Les voy a contar como armé un servidor web personal (que inclusive pronto estará on
line ya que estoy tramitando el dominio) con una máquina similar, en realidad un poquito
mejor, pero para el caso serviría igual a la que nombré al principio.

Tenía en un rincón, abandonada ya, una PC Pentium III de 550Mhz, con 128Mb de
RAM, HD de 10 Gb., todo sobre una motherboard PC-CHIP M748LMRT (con video, sonido y
placa de red on board y soporte USB), una placa madre bastante mala por cierto pero fue lo
que pude comprar años atrás. Sobre esta máquina me dispuse a armar un servidor web porque
quería tener un lugar físico independiente de mi computadora más nueva donde probar y jugar
con Joomla, Drupal, y otros CMS, y también testear un software en PHP de Administración que
estoy armando. Aquí les explico cómo lo logré y los invito a que prueben. Se van a quedar más
qué felices de tener su propio servidor. Hasta les voy a decir cómo ponerlo on line sin pagar
una IP fija utilizando servicios gratuitos de internet.

3
Capítulo I
Seleccionando la distribución
Probé varias (manía vieja mía), primero probé SME Server, después Debian (mi amor
imposible), más tarde Puppy, Centos, DragonLX, DSL Linux y finalmente antiX.

SME Server es servidor armado para PyMES (Pequeñas y Medianas Empresas) Es muy
seguro y tiene prácticamente todo lo que una empresa puede llegar ocupar. Es
"extremadamente seguro" y fue por eso que lo descarté. Demasiados scripts que retocar para
usar Joomla y eso me puso muy nervioso.

Tanto Debian y Centos fueron demasiado grandes y pesadas como para soportar la PC,
aunque andaban, siempre sin instalar entornos gráficos.

Puppy, Dragon LX y DSL Linux “volaban” pero no me gustaba el “aspecto final” y


aunque tenían entorno gráfico para trabajar no me convencieron del todo.

Finalmente antiX, una distro basada en Mepis y Debian, me dejó más que conforme ya
que mi “viejita” –como había bautizado a mi computadora- quedó convertida en un Fórmula 1,
anda de lujo. Por eso, les recomiendo esa distribución que los asombrará, no solo para
máquinas con pocos recursos sino para máquinas más nuevas también. Además usa
repositorios Debian Lenny lo cual la pone a la vanguardia de la movida linuxera.

El título anexo al nombre, M8, se refiere a la versión de la distribución Mepis en la que


está basada. La ISO completa (con todas las utilidades, incluyendo procesador de texto, planilla
de cálculo, reproductor de mp3, grabadora de DVD, reproductor de DVD, etc., etc., si, si, tiene
todo eso y más y todo anda) pesa algo de 446Mb y la versión “base” (con entorno gráfico y un
paquete “base”) pesa algo 242Mb.

Para la descarga accedan a la página http://antix.mepis.org/index.php/Spanish y ahí


verán muchos mirrors y torrents. Instalarla lleva entre 5 y 20 minutos dependiendo de la
computadora donde la instalen y su memoria. Lean cómo cambiar a los repositorios estables de
Debian y hagan ahí lo que les dice.

4
Capítulo II
Instalando el servidor
Llegado a este punto fue también toda una debacle. Probé Apache2, Cherokee y
Lighttpd. De Apache2 qué podemos decir si es el más usado en el mundo, hasta la
todopoderosa Microsoft lo usa ya que con sus productos no lo puede vencer. Apache es “el
server” pero el paquete es grande son 25Mb más todos los anexos y para máquinas como la
mía es mucho. Igualmente lo instalé y probé Joomla y si, andaba lento, más lento que trabajar
sobre la web. Probé Cherokee, mucho más liviano y fácil de configurar y todo anduvo muy
bien, más rápido que Apache, pero finalmente decanté por Lighttpd que está basado en
Apache pero sin tantos artilugios, es extremadamente liviano y además fue el de mejor
performance de todos: Joomla vuela!, que era lo que quería.

1- Instalando Lighttpd
Suponiendo que ya hayas instalado GNU/Linux te explico cómo instalar Lighttpd.
Accedemos a una consola en modo root y ponemos lo siguiente:

#aptitude install lighttpd

Después de la instalación, abrimos cualquier navegador (antiX instala por defecto


IceWeasel, un clon del Mozilla-Firefox muy bueno y más liviano) y tipeamos nuestra IP o
localhost. Si todo salió bien debería aparecer la "Lighttpd placeholder page".

2- Instalando MySQL y phpmyadmin

Volvemos a la consola de root y tipeamos:

# aptitude install mysql-server mysql-client phpmyadmin

Aquí, durante la instalación de MySQL el sistema pregunta por la contraseña de root


que le vamos a poner a MySQL, no se la olviden. También durante la instalación de
phpmyadmin preguntará sobre que servidor web vamos a instalar a lo que deberemos
seleccionar "Lighttpd".

3- Instalando PHP con soporte para MySQL

Siempre como root tipeamos todo esto:

# aptitude install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick


php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-
recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json

5
4- Seteando Lighttpd y PHP

PHP no está habilitado por defecto en Lighttpd, por eso necesitamos configurarlo. Así
que realizaremos el siguiente paso: Tipeamos en la consola lo siguiente:

# nano /etc/php5/cgi/php.ini

Esto abrirá en un editor de texto de consola el archivo ini de PHP y agregaremos la


siguiente línea al final:

cgi.fix_pathinfo = 1

Ahora necesitamos habilitar el módulo fastcgi de Lighttpd y también habilitar el módulo


rewrite que seguramente lo usaremos después en Joomla y otro similares. Tipeamos en la
consola:

# nano /etc/lighttpd/lighttpd.conf

Observamos las líneas donde dice "server.modules” y descomentamos o removemos el


“#” en la línea “mod_rewrite”, y en una nueva línea agregamos “mod_fastcgi”, (¡no olvidar la
coma!). La sección se debería ver algo así:

server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_fastcgi",
"mod_rewrite",
#"mod_redirect",
#"mod_evhost",
#"mod_usertrack",
#"mod_rrdtool",
#"mod_webdav",
#"mod_expire",
#"mod_flv_streaming",
#"mod_evasive"
)

Antes de cerrar el archivo agregaremos al final del mismo lo siguiente:

fastcgi.server = ( ".php" => ((

"bin-path"=>"/usr/bin/php5-cgi",
"socket"=>"/tmp/php.socket",
"max-procs"=>1,
"bin-environment"=>(

6
"PHP_FCGI_CHILDREN"=>"4",
"PHP_FCGI_MAX_REQUESTS"=>"1000"
),
)))

Estas líneas agregadas en el lighttpd.conf cumplen dos cometidos. Las primeras líneas
le dicen a Lighttpd como tiene que manejar las llamadas de PHP, y los 3 últimas indican
cuantos procesos FastCGI pueden estar corriendo y el número de respuestas de PHP, estas dos
últimas variables pueden ajustarlas dependiendo del uso que le van a dar al servidor (intensivo
o no) para evitar cuelgues o largos delays (demoras).

Ahora reiniciaremos Lighttpd para activar los cambios tipeando en la consola:

# /etc/init.d/lighttpd restart

5- Testeando todas las salidas

Creamos un archivo llamado info.php para testear la correcta instalación y


funcionamiento de todo. Tipeamos:

# nano /var/www/info.php

Dentro agregamos este código php:

<?php
phpinfo();
?>

Abrimos el navegador y ponemos nuestra IP (o localhost) agregándole la "/" y el


nombre del archivo creado, de forma por ejemplo:

http://192.168.1.101/info.php

Ahí podrán ver toda la info de PHP5 y las API activas, incluyendo FastCGI así como
también si MySQL está soportado.

6- Habilitando phpmyadmin

Por defecto phpmyadmin no estará enlazado con nuestro localhost por ello es necesario
realizar un último paso. Escribimos en la consola:

ln -s /user/share/phpmyadmin /var/www

Y probamos en nuestro navegador ingresando nuestra IP o localhost de la forma:

http://192.168.1.101/phpmyadmin

Voilá!!!! Ya tenemos nuestro web server funcionando.

7
Capítulo III
Trabajando en forma remota
Hasta aquí tenemos nuestro servidor funcionando con todos los “chiches” sobre nuestro
flamante GNU/Linux Web Server, pero supongamos que queremos trabajar desde otra PC y
desde Windows. Para eso deberemos instalar Samba Server que es un servidor que nos permite
compartir archivos entre GNU/Linux y Windows.

Instalando Samba Server


Vamos a nuestro Linux y en una consola de root escribimos:

#aptitude install samba-server samba-common

Esto instalará nuestro servidor samba y en determinado momento nos preguntará el


Grupo de Trabajo al que responderemos con el mismo Grupo de Trabajo que tengamos en
nuestro XP. Sin ponemos el mismo, cuando vayamos al Explorer de Windows o al Entorno de
Red simplemente veremos un nuevo Grupo de Trabajo.

Luego debemos configurar los usuarios Samba. Aquí hay que tener en cuenta algo MUY
IMPORTANTE, el usuario que crearemos debe ser igual a nuestro usuario de Windows y con la
misma contraseña, de lo contrario no funcionará. Puede suceder que no usemos contraseña en
Windows en ese caso tampoco le asignaremos contraseña al usuario Samba

Agregando usuarios Samba


En nuestra consola de root crearemos un usuario linux pero con el mismo nombre,
como dije, del usuario de Windows, escribiremos:

#useradd -s /sbin/nologin usuario-windows


#smbpasswd -a usuario-windows

Y aquí les explico algo. La primera línea crea un usuario linux pero sin directorio
/home, es decir, no se podrá loguear a linux.
En la segunda línea va la misma contraseña que Windows pero sin en Windows no
usamos contraseña, luego de tipear la línea presionaremos ENTER (2 veces).

Si necesitamos usuarios con acceso a Telnet, SSH o a otros servicios, escribiremos lo


siguiente:
#useradd -s /bin/bash usuario-windows
#passwd usuario-windows
#smbpasswd -a usuario-windows

Esto le dará acceso al shell de Linux y podrá realizar otras tareas. Para nuestro caso
no es necesario.

8
Instalando Webmin
Ahora vamos a ver una forma fácil de compartir carpetas pero no solo de eso sino que
además podremos administrar en forma remota todo nuestro servidor. Para eso vamos a
instalar Webmin. Qué es Webmin? Es un administrador remoto para servidores vía web. Es uno
de los mejores que conozco y con él prácticamente podremos realizar cualquier tarea sobre
nuestro server desde otra computadora.

En la consola de root escribimos:

#aptitude install webmin

Para probar si funciona, abrimos el navegador IceWeasel y ponemos:

https:// 192.168.1.101:10000

Observen dos cosas: primero que no es http solo sino que es http+s, es decir, en modo
seguro, y segundo que al poner :10000 le estamos indicando el puerto por donde nos
comunicaremos. Estas dos características son propias de Webmin lo que lo hace sumamente
seguro.

Para loguearse a Webmin deben poner “root” y la contraseña de root del linux
instalado.

Para ponerlo en castellano vayan al acceso Webmin y hagan click en Change Language
and Theme (o algo así).

Para compartir archivos con Webmin vayan a la sección “Otros” y hagan click en
“Explorador de Archivos” y allí podrán ver todo el árbol de directorios del servidor.

Para empezar podemos ir a la carpeta “/var/www” y compartirla, de ese modo


podremos pegar nuestro Joomla desde el Windows.

9
Final
Hasta aquí el tutorial sobre armar el servidor web, quedan muchas cosas en el tintero
porque es un tema apasionante. Espero que les haya servido para que tengan su propio
servidorcito en su casa y se diviertan aprendiendo.

Si quieren hacer consultas y sugerencias pueden contactareme vía email a la siguiente


dirección:

info@moatsoft.com.ar

o visitar mi web:

http://www.moatsoft.com.ar

10