Como instalar un Servidor LAMP en Ubuntu Paso a Paso

 

Nivel : Básico – Intermedio

Ya ha pasado un tiempo desde que escribí el tutorial de Instalar un Servidor LAMP en Ubuntu/Debian, es un artículo bastante popular y con más de 100 comentarios y preguntas, he decidido a que ya es hora de actualizarlo y agregar mucho de los tips y preguntas incluidas en los comentarios así como también las cosas que han cambiado y algunos tópicos más avanzados. Así que empecemos…

En este tutorial vamos a ver como instalar y configurar un servidor LAMP para Ubuntu, aunque en este caso estoy utilizando la versión de Ubuntu 9.10 Karmic Koala, este tutorial sirve para cualquier versión de Ubuntu desde la 8.04 Hardy Heron.

Un servidor LAMP se refiere a un conjunto de aplicaciones que por sus siglas es Linux+Apache+MySQL+PHP y en este caso vamos a instalar y configurar un servidor con los siguientes componentes:

Apache 2 – Servidor Web muy versatil y uno de los más utilizados en el mundo

MySQL 5 – Uno de los servidores de base de datos más populares y utilizados en sitios y aplicaciones web

PHP 5 – Es un lenguaje interpretado utilizado para construir aplicaciones y páginas web

Y veremos algunas utilidades como phpmyadmin que nos permitirán administrar mejor nuestro servidor.

Concepto: Un servidor no es más que un PC que presta algún servicio (como mostrar páginas web).

Pasos previos:

 

  • Obtener e Instalar Ubuntu: lo pueden obtener desde la página Oficial de Ubuntu, si el servidor Web LAMP sólo lo van a utilizar como servidor les aconsejo descargar la versión de servidor. Igualmente se puede hacer la instalación sobre la versión de Escritorio de Ubuntu.
  • El servidor debe tener al menos 256 MB de memoria RAM, si no saben cuanta memoria tiene su PC simplemente ejecuten free -m en el terminal si donde dice total es mayor a 256 están bien. Yo personalmente recomiendo tener al menos 512 MB de memoria RAM
  • También pueden probar instalando el servidor en una máquina virtual ya sea con virtualbox, vmware, kvm o el manejador de máquinas virtuales de su preferencia.
  • Si van a hacer la administración del servidor LAMP de manera remota les aconsejo instalar openssh-server (sudo aptitude install openssh-server).

Les aconsejo también seguir el tutorial paso a paso, he tratado de hacer los pasos lo más concretos y cortos posibles, para que así no se pierdan de nada y tampoco les aburra el tutorial.

Bueno ya tenemos todo listo para empezar así que abran un Terminal y pongámonos a trabajar.

1. Actualizar nuestro sistema

Es siempre aconsejable realizar la actualización de nuestro sistema antes de llevar a cabo cualquier instalación simplemente ejecuten lo siguiente en el terminal

sudo aptitude update && sudo aptitude safe-upgrade

Con este comando se actualiza nuestra lista de repositorios y los paquetes que tengamos instalados si hay alguna actualización disponible. Si les hace cualquier pregunta acerca de actualizar algún paquete pueden contestar que sí.

2. Instalar Apache

Apache es el servidor Web más utilizado en el mundo, es open source, modular, flexible y totalmente configurable. Se puede instalar en muchas plataformas como Linux, MS Windows, Solaris, etc.

Apache soporta HTTPS, virtual hosting, CGI, SSI, IPv6, scripting y integración con bases de datos, filtrado de solicitudes y respuestas, muchos esquemas de autenticación y mucho más. Para más información pueden visitar http://httpd.apache.org/

Para instalarlo simplemente ejecutamos:

sudo aptitude install apache2

Esto instalará Apache 2 y todos los paquetes necesarios para su funcionamiento, si pregunta que si desea continuar instalando estos paquetes responda S o Y según sea el caso (depende del idioma de la instalación).

Una vez finalizada la instalación, pueden comprobar la versión de su Apache ejecutando:

apache2 -v

Les aparecerá algo como:

vensign@lamp-vensign:~$ apache2 -v
Server version: Apache/2.2.12 (Ubuntu)
Server built:   Nov 12 2009 22:51:51

Los comandos para manejar el servidor Apache son los siguientes, pueden utilizar cualquiera de las dos versiones del comando la versión larga o la corta:

Función Comando Comando Corto
Iniciar Apache sudo /etc/init.d/apache2 start sudo service apache2 start
Detener Apache sudo /etc/init.d/apache2 stop sudo service apache2 stop
Reiniciar Apache sudo /etc/init.d/apache2 restart sudo service apache2 restart
Estatus Apache sudo /etc/init.d/apache2 status sudo service apache2 status

Nota: Si no les funciona el comando sudo service apache2 … deben instalar sysvinit-utils (especialmente en las versiones más viejas de Ubuntu).

El archivo de configuración por defecto de Apache se encuentra en el directorio /etc/apache2/ y el directorio por defecto de los archivos donde se guardarán las páginas web es en /var/www

Para probar que Apache está funcionando bien basta con ir a la dirección en tu navegador (Firefox, Konqueror o el que prefieran) http://localhost desde el mismo servidor o http://ipservidor desde otra PC y les debe aparecer algo como lo siguiente:

 

 

 

Pantalla Inicio Apache en el Navegador

Pantalla Inicio Apache en el Navegador

 

 

 

 

3. Instalar MySQL

MySQL es una de las base de datos open source más popular y utilizadas en innumerables páginas web y aplicaciones tanto gratuitas como comerciales. Es una base de datos bastante robusta y flexible, fácil de configurar y lo bastante rápida para la mayoría de las aplicaciones comunes.

Para instalar el servidor de MySQL debemos ejecutar el siguiente comando:

sudo aptitude install mysql-server

Esto instalará todos los paquetes y librerias necesarios para que funcione el servidor MySQL

Durante la instalación les aparecerá la siguiente pantalla solicitando la clave de root para el servidor MySQL, aquí deberán colocar una clave para el administrador de la base de datos, no es recomendable colocar la misma clave del usuario de Ubuntu, se recomienda también que tenga una longitud mayor a 8 caracteres y que mezclen letras, símbolos y números, no son permitidos los espacios en blanco.

 

 

 

Clave root Servidor MySQL

Clave root Servidor MySQL

 

 

 

Nota: No confundir esto con el usuario root de Linux, este es el usuario root de MySQL

Para comprobar el funcionamiento del servidor MySQL ejecuten el siguiente comando:

mysql -u root -p

Deberá pedirles la clave que colocaron en el paso anterior y aparecerles el prompt  mysql> algo parecido a esto:

vensign@lamp-vensign:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 40
Server version: 5.1.37-1ubuntu5 (Ubuntu)

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

Vemos que nos muestra la versión del MySQL que acabamos de instalar. Para salir del prompt de mysql y volver al terminal de Linux simplemente escriban exit y presionen Enter o Intro.

Los comandos para administrar MySQL son:

Función Comando Comando Corto
Iniciar MySQL sudo /etc/init.d/mysql start sudo service mysql start
Detener MySQL sudo /etc/init.d/mysql stop sudo service mysql stop
Reiniciar MySQL sudo /etc/init.d/mysql restart sudo service mysql restart
Estatus MySQL sudo /etc/init.d/mysql status sudo service mysql status

Nota: Si no les funciona el comando sudo service mysql … deben instalar sysvinit-utils (especialmente en las versiones más viejas de Ubuntu).

El archivo de configuración de mysql se encuentra en /etc/mysql/my.cnf

Ya que tenemos instalado Apache y MySQL ahora vamos a proceder a instalar PHP.

4. Instalar PHP

PHP es un lenguaje interpretado que es utilizado para crear páginas web dinámicas y aplicaciones, de una manera rápida y flexible. Entre las plataformas que utilizan PHP está WordPress, Drupal y Joomla.

Para instalar PHP 5 junto con el soporte para Apache y MySQL ejecutamos el siguiente comando en el terminal:

sudo aptitude install php5 libapache2-mod-php5 php5-mysql

Igual que en los pasos anteriores responde S cuando te pregunte que quieres instalar los paquetes.

Una vez que finalice la instalación debemos reiniciar el servidor Apache para que tome los cambios de la libreria de PHP ejecutamos:

sudo /etc/init.d/apache2 restart

El paso anterior es muy importante ya que si no no funcionará el PHP hasta que reinicies el servidor Apache!

Para probar PHP vamos a crear el siguiente archivo llamado prueba.php con tu editor favorito puedes utilizar nano, vim, gedit, etc.:

sudo vim /var/www/prueba.php

Nota: Aquí estoy utilizando vim para editar utilicen el editor de su preferencia

Dentro del archivo copiamos lo siguiente:

<?php phpinfo(); ?>

Guardamos al archivo y vamos al navegador y colocamos la dirección http://localhost/prueba.php si estamos en el mismo servidor o http://ipdelservidor/prueba.php. Deberia desplegar una lista con toda la información de PHP, los módulos y librerias instalados.

 

 

 

Pagina de prueba.php phpinfo()

Pagina de prueba.php phpinfo()

 

 

 

 

Si te aparece una pantalla parecida a la anterior es que PHP está correctamente instalado y funcionando con Apache. Si te aparece algo como que quiere guardar el archivo prueba.php lo más seguro es que no hayas reiniciado el servidor Apache luego de instalar PHP.

El archivo de configuración de PHP se encuentra en /etc/php5/apache2/php.ini

Con estos cuatro pasos ya tenemos instalado un servidor LAMP con Ubuntu.

Ahora vamos a ver como instalar phpmyadmin para manejar MySQL

Instalar phpmyadmin

Phpmyadmin es una interfaz web que nos permite manejar nuestras bases de datos en MySQL en una forma más amigable. Para instalarlo en Ubuntu seguimos los siguientes pasos:

1. Ejecutamos

sudo aptitude install phpmyadmin

2. Durante el proceso de instalación aparecerá el siguiente diálogo en el cual debemos seleccionar Apache presionando barra espaciadora sobre la opción y despues presionar Enter o Intro:

 

 

 

Seleccionar Apache2

Seleccionar Apache2

 

 

 

 

3. Luego preguntará por la configuración de paquetes a lo que debemos responder que Si

 

 

 

Seleccionar Si en configuracion de Paquetes

Seleccionar Si en configuracion de Paquetes

 

 

 

4.  El siguiente dialogo nos pregunta por la clave que configuramos para el usuario root de MySQL que hicimos en los pasos anteriores

 

 

 

Clave root MySQL

Clave root MySQL

 

 

 

5. Por último nos pregunta la clave que queremos darle al usuario de administración de phpmyadmin, escriba la clave que prefieras, si la dejas en blanco y presionas Intro o Enter generará una clave aleatoria

 

 

 

Clave administración phpmyadmin

Clave administración phpmyadmin

 

 

 

 

Con esto finalizará la instalación de phpmyamin.

Para ingresar a la interfaz web de phpmyadmin vamos a nuestro navegador web y colocamos la dirección http://localhost/phpmyadmin ó  http://ipdelservidor/phpmyadmin y debería aparecer una ventana como la siguiente:

 

 

 

Pagina inicio Phpmyadmin

Pagina inicio Phpmyadmin

 

 

 

 

Ahí deben colocar el usuario root y la clave de root para MySQL para administrar todas las bases de datos, a medida que creen nuevos usuarios y base de datos pueden entrar con otros usuarios.

 

 

 

Pagina Principal Phpmyadmin

Pagina Principal Phpmyadmin

 

 

 

Con esto finalizamos el tutorial, ya tenemos un servidor web LAMP totalmente funcional y ya pueden empezar a colocar sus páginas y desarrollar sus proyectos, pronto publicaremos más tutoriales de configuración y seguridad de servidores web así que estén pendientes.

Cualquier duda o sugerencia por favor dejen sus comentarios

Autor: Olivers De Abreu es el director y fundador de Vensign

Pueden seguirnos a través de nuestro Feed RSS o a través de Twitter @odeabreu

76 comentarios

    1. Hola Antonio, LAMP simplemente sirve como servidor que entrega las páginas Web que creas, realmente no sirve para hacer páginas web. Debes utilizar HTML, PHP o el lenguaje de tu preferencia y luego colocarlo dentro de tu servidor LAMP para que pueda ser accedido por ti y por otros.

  1. Hola nextroom gracias por tu comentario.

    No entiendo mucho tu duda, dices que cuando pegas la carpetas con nautilus y luego hablas de una consulta en PHP.

    Y despues dices que muestra pero no actualiza la base de datos…

    Explicanos mejor exactamente que es lo que quieres hacer y cual es el problema.

    Si es que tienes unas páginas hechas en php y cuando ejecutas lo que sea que está en ellas no actualiza la base de datos debes revisar la conexión hacia MySQL y los query dentro de tu página php.

    Si nos das más información te podremos ayudar mejor

    Saludos
    Olivers

  2. Olivers, es muy bueno tu tutorial, mi problema es que al pegar con nautilus las carpetas en sus respectivos lugares de una pagina ( de consulta en php ) no actualiza los datos, es como si puede mostrar pero no cambiar nada en la base de datos. seguro es un tema de permisos , pero siendo nuevo , no se nada…agradeceria tu ayuda, muchas gracias y saludos

  3. Muy buen manual Olivers, y además estás al pendiente de los comentarios,que responsable eres. Te comento que recién instalé Ubuntu 9.10 y he seguido éste tutorial para instalar el LAMP y me funcionó a la primera.
    Muchas Gracias, muy buen material y muy buen “soporte”, por decirlo de alguna forma, ja ja ja.

  4. Gracias de nuevo. Pero otra pregunta, es posible dejar el lamp de forma que uno pueda copiar y pegar archivos y este los reconozca, es decir, que no halla necesidad de abrirlos y grabarlos de nuevo , por ejemplo como funciona el windows.

  5. que tal amigos, una pregunta trate de hacer la solucion que posteo manuel, con respecto al error

    * Restarting web server apache2 Syntax error on line 236 of /etc/apache2/apache2.conf:
    Invalid command ‘xe2x80x9cInclude’, perhaps misspelled or defined by a module not included in the server configuration
    [fail]

    pero no me deja modificar la linea 236 para quitarle las comillas.

    Gracias por su ayuda!!!!

  6. A mi me pasaba lo mismo que a iXMB. El problema se resuelve yendo al archivo /etc/apache2/apache2.conf y quitandole las comillas a la linea 236:

    “Include /etc/phpmyadmin/apache.conf”

    la cual debe de quedar asi:

    Include /etc/phpmyadmin/apache.conf

    luego reinicias apache

    sudo /etc/init.d/apache2 restart

    Asi lo arreglé yo.

  7. Muchas gracias por el tutorial, me parecio sorprendente. Apesar de que soy nuevo con linux antes ya habia trabajado con el Wampserver de windows pero aqui puedes obtener mayor seguridad creando permisos a la carpeta /var para que nadien entre en tus documentos, experiencia mala que me dejo windows.

    Creí que no funcionarìa en debian squeeze, pero al parecer ubuntu trabaja sobre debian y decidi probar. Todo marcha a la perfeccion un saludo a todos.

  8. @Olivers Muchas gracias por responder, mira ya abri el archivo hosts para agregarle esa linea, pero ya la tenia, hasta arriba, incluso era la primera linea.
    y en el archivo apache2.conf me aparece esto

    <img src="http://img81.imageshack.us/img81/7214/apache2.th.png&quot;

    Tengo que borrar la ruta que aparece delante de "include"? o esta normal asi como lo tengo?

    Jeje disculpa por tantas molestias 🙂

    P.S. En caso de que la imagen no salga, sorry jeje, apenas ando aprendiendome los codigos y todo eso :$

  9. Hola IXMB, gracias por tu comentario. Ahora para resolver tus problemas:

    Para resolver el tema de localhost debes modificar el archivo /etc/hosts para esto ejecutas:

    sudo gedit /etc/hosts

    Y agregas la siguiente línea:

    127.0.0.1 localhost

    Ya con eso se debería solucionar ese problema, si no te funciona de inmediato prueba salir de la sesion o reiniciar.

    Con respecto al error debes ir al archivo que te indica /etc/apache2/apache2.conf y ver cual es el include que tienes en la línea 236. Al parecer tiene unos caracteres adelante de la palabra Include no debería tener nada y si es un comentario se coloca # adelante.

    Luego que hagas el cambio reinicia el servidor Apache y ve si no te da más errores.

    Cualquier cosa vuelve a escribir

    Saludos
    Olivers

  10. Hola, en primera muchas gracias por el tutorial, si me funciono, pero no se que le movi que ahora cuando intento abrir en el browser “localhost” me marca error, ya intente reinstalando todo por si eso lo componia, peor no…

    en la consola, al intentar reiniciar apache siempre me ha aparecido esto:

    * Restarting web server apache2 Syntax error on line 236 of /etc/apache2/apache2.conf:
    Invalid command 'xe2x80x9cInclude', perhaps misspelled or defined by a module not included in the server configuration
    [fail]

    Y la verdad, esto lo hago por mera curiosidad, para aprender e ir experimentando en todo esto, espero puedan ayudarme, un saludo.

  11. Mis respetos al autor y a los que han comentado , estoy a punto de crear mi server LAMP , y aunq ya tengo mi server ubuntu con squid,iptables y demas cositas me preparo para instalar el LAMP y aqui creo q esta todo lo q necesito cualquier cosa les pedire ayuda gracias de antemano

  12. hola solo quiero dejar una ayuda para los que no les funcione el phpmyadmin
    solo agregen en una consola como root

    echo “Include /etc/phpmyadmin/apache.conf” | sudo tee -a /etc/apache2/apache2.conf

    y luego reinicien apache

    sudo /etc/init.d/apache2 restart

    exelente tutorial