Instalacion y configuracion servidor web para joomla

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 para la instalacion y configuracion servidor web.
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 como 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.


  • Seleccionar la distribución a Instalar

    Probé varias (manía vieja mía), primero probé SME Server, después Debian (mi amor imposible, jajaja), 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.

  • Instalando antiX-M8

    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, reprodutor 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 ahi 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 ahi lo que les dice.

  • Instalando el servidor web

    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 Apache 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.

  • 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 lighttpdDespué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».

  • Instalando MySQL y phpmyadmin

    Volvemos a la consola de root y tipeamos:
    # aptitude install mysql-server mysql-client phpmyadminAquí, 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, ja. También durante la instalación de phpmyadmin preguntará sobre que servidor web vamos a instalar a lo que deberemos seleccionar «Lighttpd».

  • 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

  • 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.iniEsto abrirá en un editor de texto de consola el archivo ini de PHP y agregarmos la siguiente línea al final:cgi.fix_pathinfo = 1Ahora 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.confObservamos las líneas donde dice «server.modules” ydescomentamos o removemos el “#” en la línea “mod_rewrite”, y en una nueva linea 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» => (
    «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 estár corriendoy 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

  • 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.phpDentro agregamos este código php:
    phpinfo();
    ?>Abrimos el navegador y ponemos nuestra IP (o localhost) agregandole la «/» y el nombre del archivo creado, de forma, por ejemplo:
    http:// 192.168.1.101/info.php  (ojo! dejé un espacio entre http:// y la IP para que no aparezca como un link)Ahi podrán ver toda la info de PHP5 y las API activas, incluyendo FastCGI así como también si MySQL está soportado.
  • 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/wwwY 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.

  • 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-commonEsto 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-windowsY 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 pero les digo por si lo quieren hacer así.

  • 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. He buscado y probado algunos administradores similares al Cpanel pero ninguno me satisfizo. Lástima que el Cpanel sea de pago.

    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 (ojo! dejé un espacio entre https:// y el número de IP para que no aparezca como un link)

    Observen dos cosas: primero que no es http solo sino que es https (con «s» final), 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 sumante 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.

    Hasta aquí el tutorial, sobre servidores webs, quedan muchas cosas en el tintero porque es un tema apasionante, pero simplemente quería comentarles cómo había hecho para montar mi propio web server con una máquina prácticamente en descarte. 

    Tips: el número de IP que utilicé es el que corresponde a la que asigné al servidor. En todos los casos pueden probar localmente en GNU/Linux con localhost pero si quieren acceder desde otra PC deberán asignarle una IP fija. Esto último con la explicación de cómo ponerlo on line sin tener que pagar una IP fija a nuestro ISP, quedará para el próximo tutorial.

Comments

  1. Dimar

    Gracias!!! muy claro 🙂
    Excelente el aporte extenso y claro. Gracias por tomarte el tiempo de redactar tan buen manual (aunque no lo e probado, pero tu si, ya por hay es buen manual porque te funciono :D) . Suelo utilizar Windows siempre, una vez quise pasarme a Ubuntu pero que va 🙁 muchos problemas para configurar. Lo que si es que Linux para funcionar como servidor es lo mejor de lo mejor (por eso la mayoria de hosting utilizan Linux). Tengo una Pemtium IX no recuerdo demas carateristicas, algun dia con tiempo le monto Linux y demas con tu manual.

    Exitos!! 😉

  2. redlo

    Webmin
    Acabo de enterarme porque no me volvio a funcionar el accesso al webmin que instale con Suse. El puñetero espacio. Y contestando a dimar sobre porque la mayoria de los hostings utilizan linux, creo que es mas por el hecho de que simplemente es mucho mas barato 🙂 . Señalar a los indecisos sobre que distribucion utilizar, les dire que DEBIAN es la unica distribucion que tiene señalado en sus politicas de desarollo que todo lo que se haga para y sobre Debian debe ser Open Source, (al no ser que tambien hayan cambiado como otros) y eso merece nuetsro apoyo.

  3. Dimar

    mmmmmmmm bueno no era una pregunta jejejejejejejej 😀 solo fue un comentario. Pero es verdad lo que dices Redlo. Pero linux (y toda su rama) son mas seguros y ya por hay valen mucho 😉 aparte que las empresas grandes de hosting igual utilizan linux y a la hora de recomendar a un cliente entre windows y linux, la empresa le recomendara Linux y si la empresa le habla de la segurida que tendra su Sitio web con linux, el cliente se inclinara por Linux. Para una empresa de Hosting (SERIA) siempre se inclinara por el mejor Software y DEBIAN por lo poco que e leido es uno de ellos. Exitos!!! 😉

  4. mrobledo

    Tutorial pendiente de ip fija
    Estimado tuxmerlin. tienes por ahi el tutorial para dejar ip fija sin costear mas valores a nuestros ISP? esto ya que implementare la idea que tu has publicado para montar el server en linux. En cuanto lo haga comentaré. Muchas gracias

  5. Isabel
    Isabel

    Gracias, me ha venido perfecto, justo cuando lo necesitaba y muy escalonado para no perderse.

Deja un comentario