Instalar un Servidor LAMP en Ubuntu/Debian

Un servidor LAMP se refiere a la mezcla de Linux+Apache+Mysql+PHP en este caso les voy a mostrar como configurar un servidor con los siguientes componentes:

  • Apache 2 – Servidor Web de Linux
  • MySQL 5 – Servidor de base de datos MySQL
  • PHP4/5 – Lenguaje interpretado PHP
  • phpMyAdmin – Software de administración de base de datos via web

Nota: esta instalación sirve tanto para Ubuntu como para Debian, los usuarios de Debian deberan identificarse como root y no utilizar el sudo en los comandos

y el sistema debe contar con al menos 256MB de RAM, menos que esto nos podría traer problemas en el rendimiento de nuestro servidor.

Lo primero que debemos hacer es actualizar los paquetes necesarios en debian/ubuntu con el siguiente comando:

sudo apt-get update

Este comando actualiza todos los paquetes que tenemos en nuestra lista de repositorios ubicada normalmente en /etc/apt/source.list

1. Instalando Apache y PHP

Apache es el servidor web más utilizado en el mundo. Puede correr en varias plataformas tales como Unix, Linux, Microsoft Windows, Novell, etc. Es open source, estable, modular y muy configurable.

Para instalarlo utilizamos el siguiente comando:

sudo apt-get install apache2 apache2.2-common apache2-utils ssl-cert

Una de las diferencias entre Apache 2 y Apache 1.3 es que Apache 2 soporta procesos multi-hilos es decir que puede ejecutar varias operaciones simultaneamente, esto puede llegar a ser muy beneficioso en cuando a velocidad y eficiencia, sin embargo actualmente la mayoria de los programas web no utilizan esta funcionalidad y algunos de ellos pueden tener problemas con el Apache 2 en este caso podemos instalar lo siguiente para tener mayor estabilidad:

sudo apt-get install apache2-mpm-prefork

La otra decisión que tenemos que tomar es si vamos a utilizar php4 o php5, la principal diferencia entre estos dos es que php5 es orientado a objetos y php4 no, casí todas las aplicaciones web soportan php5, aunque hay algunas que todavía no, si estas desarrollando nuevas aplicaciones te recomiendo que de una vez pases a php5 y aprendas a programar orientado a objetos, pero a la final eso es a gusto de cada quien.

Para instalar PHP 4 ejecutamos:

sudo apt-get install php4 libapache2-mod-php4 php4-common

Para instalar PHP 5 ejecutamos:

sudo apt-get install php5 libapache2-mod-php5 php5-common

Los archivos de configuración de apache están ubicados en: /etc/apache2/apache2.conf y la carpeta web por defecto esta en /var/www

Para que PHP tome efecto debemos reiniciar el servidor Apache con:

sudo /etc/init.d/apache2 restart

Para comprobar que el servidor web esta funcionando podemos irnos a nuestro navegador web y escribimos http://localhost/ y aparecerá una pagína de bienvenida de Apache.
Si quieres ver si PHP se instaló correctamente hay un comando de php que te dá toda la información necesaria para esto tenemos que crear un archivo:

sudo nano /var/www/test.php

En Ubuntu también puedes crear el archivo con

sudo gedit /var/www/test.php

Dentro del archivo escribe <?php phpinfo(); ?> y guardalo

Luego abre tu navegador web y escribe la dirección http://localhost/test.php debería aparecer una pantalla con toda la configuración de PHP.

2. Instalando el Servidor de MySQL

Instalar un servidor de base de datos MYSQL es siempre necesario si estas corriendo casi cualquier sitio interectivo con PHP o algún otro lenguaje como JSP. Recuerda que para correr este tipo de servidores es necesario que al menos tengas 256MB de RAM. Los siguientes comandos instalarán el servidor y el cliente de msyql5 que es la última versión al momento de escribir este tutorial.

apt-get install mysql-server mysql-client php5-mysql

Nota: Si instalaste el php4, entonces utiliza el siguiente comando:

apt-get install mysql-server mysql-client php4-mysql

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

Creando usuarios para utilizar MySQL y cambiar el password de Root

Por defecto mysql crea un usuario como root sin ningún password, por lo que es bueno crear un password para este usuario:

Para hacer esto coloca los siguientes comandos:

mysql -u root
 mysql> USE mysql;
 mysql> UPDATE user SET Password=PASSWORD('nuevo-password') WHERE user='root';
 mysql> FLUSH PRIVILEGES;

Nunca se debe usar el usuario de root para accesar a la base de datos ya que tiene todos los privilegios sobre todas las bases de datos y por lo tanto es muy inseguro. Por esto es aconsejable crear un usuario para cada base de datos que crees, es un poco dificil crear usuarios desde la consola por lo que es más rapido y más intuitivo crealo desde un panel de control como webmin o phpMyAdmin los cuales instalaremos a continuación.

3. Instalando PhpMyAdmin

PhpMyAdmin es un software de administración basado en web que es fácil de configurar y además gratis. Es muy facil de utilizar y además permite realizar casi todas las tareas necesarias sobre las bases de datos de mysql.

Para instalarlo se ejecuta en la consola:

apt-get install phpmyadmin

El archivo de configuración de phpmyadmin se encuentra en: /etc/phpmyadmin folder.

Para que funcione bajo Apache todo lo que necesitas hacer es incluir la siguiente línea en el archivo /etc/apache2/apache2.conf (lo cual lo puedes modificar en Ubuntu con sudo gedit /etc/apache2/apache2.conf) :

Include /etc/phpmyadmin/apache.conf

Y reiniciamos Apache:

/etc/init.d/apache2 restart

Ahora coloca en tu navegador: http://localhost/phpmyadmin

Eso es todo, phpMyAdmin y MySQL ya están instalados. Para ingresar en phpMyAdmin coloca como login root con el password que deifinimos anteriormente. Para crear nuevos usuarios puedes hacerlo desde el link que dice Privileges.Espero que les haya servido de algo este tutorial, ahora ya tienes un servidor LAMP completo y puedes empezar a hacer tus propios sitios web. Espero sus comentarios.

Respuesta de los Usuarios ( 133 )

  1. drago702@hotmail.com dijo:

    Hola olivers sabes un detalle que tuve a la hora comprobar que el servidor web este funcionando en este paso:

    gedit /var/www/test.php Dentro del archivo escribe y guardalo

    Luego abre tu navegador web y escribe la dirección http://localhost/test.php debería aparecer una pantalla con toda la configuración de PHP.

    No funciono como debia hasta que reiniciar el servidor y cambiar los permisos del archivo test.php lo siguiente que hice fue esto

    sudo /etc/init.d/apache2 restart

    y funciono perfectamente saludos y muchas gracias por aportar ayuda..

  2. Olivers dijo:

    Hola drago ya corregí lo que me dices en el tutorial muchas gracias por tu aporte

    Saludos
    Olivers

  3. karelito dijo:

    gracias por el tuto me ha servido de muxisimo al principio tube problemas al instalar el phpmyadmin pero fue mi culpa…la version actual de descarga de phpmyadmin pedia una contrasena que al princprio no sabia cual era…al final me di cuenta que era la del usuario root de mysql
    sigue escribiendo tutos son de muxa ayuda, sobre todo este para mi es uno de los mejores
    xao y muxas gracias

  4. Ramón dijo:

    Muy buena esa explicacion con la instalacion de linux y sus acsesorios yo soy nuevo en esto y he aprendido bastante con esto muchas gracias y si es posible explicar algunas otras cosas como instalar un chat jabber y como configurar un proxy inverso sin mas saludos….

  5. ubuntugirl dijo:

    Hola, al llegar a la instalacion de phpmyadmin obtengo el siguiente error: ERROR 1045 (28000): Access denied for user ‘root’@'localhost’

    Agradezco su ayuda

  6. Olivers dijo:

    Hola ubuntugirl, ahora cuando instalas el phpmyadmin hay una pregunta donde te pide el nombre de usuario y password con que accesará a la base de datos ahí tienes que colocar el nombre root y el password de root que le diste al momento de instalar MySQL.

    Si esa clave no corresponde al que colocaste cuando instalaste MySQL te da ese error.

    Espero que te sirva, cualquier cosa vuelve a escribir

    Saludos
    Olivers

  7. dektrop dijo:

    oye ronon4, tuve el mismo error que tu al instalar mysql en ubuntu:

    Se encontraron errores al procesar:
    /var/cache/apt/archives/mysql-server-5.0_5.1.30really5.0.75-0ubuntu10.2_i386.deb
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    Me podrias decir como modificaste los repositorios??

    O alguien mas me podria ayudar??

    Gracias

  8. Esfinge dijo:

    Hola! Pues he instalado todo antes de ver este tutorial y pues en ningun caso hice algo parecido, no conozco mucho de esto pues apenas estoy aprendiendo a usar linux como tal y me da un monton de errores, por lo que quisiera reiniciar todo, para hacerlo como en el tutorial, pero como puedo hacer esto? espero tu respuesta.

  9. Olivers dijo:

    Hola Esfinge, dependiendo como lo instalaste si fue con apt-get puedes simplemente ejecutar:

    sudo aptitude remove nombre-paquete

    Cambiando nombre-paquete por el paquete que quieras desinstalar.

    Igual puedes colocar aqui los errores que tienes para ver si te podemos ayudar.

    Saludos
    Olivers

  10. Pingback: Como instalar un Servidor LAMP en Ubuntu Paso a Paso | Vensign

  11. Alberto dijo:

    Hola la verdad yo instale el lamp pero como soy nuevo en linux tuve unos bachecitos que ya eh estado resolviendo leyendo en foros como este, por cierto muy bueno me ayudo a resolver un problemilla con el phpmyadmin, ahora el detalle es el siguiente cuando instalas un servicio como el lamp (localhost) . que por lo regular es para pruebas antes de subir al directorio original… se crea una carpeta llamada “www” la cual esta ubicada en la direccion siguiente /var/www/ en la cual se albergan los archivos ya sean html o php o bien asp todo lenguaje de programacion web entonces mi problema es el siguiente…cuando yo quiero modificar el archivo que viene por defaul inidex.html y le doy guardar me dice que no tengo permiso para modificar.. y me fijo bien y miro que el archivo arriba tiene un candadito buscando en otro foro que porcierto tambien muy bueno…

    explica que se le tienen que dar permisos a la carpeta de la siguiente manera…

    cd /var luego ejecuta ls y se miran los directorios entre ellos la carpeta www luego se ejecuta el siguiente comando sudo chmod 777 www y pues la verdad no pasa nada si alguien aqui me pudiera a ayudar se lo agradeceria infinitamente

    esa es mi duda…

  12. Olivers dijo:

    Hola Alberto, gracias por tu comentario.

    En cuanto tu problema, es que los permisos de la carpeta por defecto sólo te permite escribir si eres administrador (root) por lo que si quieres modificar algún archivo dentro de esa carpeta colocas sudo adelante del comando con que vayas a modificar. Por ejemplo:

    sudo gedit nombre-archivo

    o

    sudo vim nombre-archivo

    En cuando a darle permisos a la carpeta no es aconsejable utilizar 777 ya que estas dando permisos de escritura y ejecución a todo el mundo, lo cual no es aconsejable por razones de seguridad.

    Lo mejor es darle permisos a los archivos de lectura y escritura:

    sudo chmod 664 archivo te permite lectura y escritura al propietario y al grupo

    Lo más aconsejable es que crees una carpeta dentro de /var/www con:

    sudo mkdir /var/www/prueba

    Luego cambies el propietario de la carpeta:

    sudo chown nombre-usuario /var/www/prueba

    Y dentro de esa carpeta crees tus archivos

    Para accesar desde el navegador http://127.0.0.1/prueba/nombre-archivo.html

    Espero que te sirva cualquier duda vuelve a escribir

    Saludos
    Olivers

  13. joliendre dijo:

    Hola a todos…
    De donde me bajo el LAMP…?

  14. Olivers dijo:

    Hola joliendre, si lees el tutorial podrás ver como se hace.

    Saludos
    Olivers

  15. Miguel dijo:

    Excelente tuto.!…gracias.

  16. Caguarve dijo:

    Muy buen tutorial, excelente aporte. Soy nuevo en el mundo del linux…muchas gracias!!!

  17. Olivers dijo:

    Caguarve muchas gracias por el comentario no te olvides de subscribirte a nuestro boletín de noticias para recibir nuestros artículos.

    El cuadro amarillo a la derecha ;)

    Saludos
    Olivers

  18. Raúl dijo:

    Excelente tutorial, tengo poco en Ubuntu y me ha servido de mucho. Muchas gracias.

  19. omar dijo:

    excelente hermano de verdad que me ayudo mucho esto.
    Todavía tengo que instalar los demás servicios o_O’..jeje
    gracias de nuevo..

    no tendrás algún tutorial por ahí para instalar el servidor completo ?

    Saludos

  20. w3asel dijo:

    Muy bueno, estoy comenzando con LAMP y de verdad esta muy bueno este tutorial, os felicito te habeis currado bastante

  21. Jjedi dijo:

    tengo tiempo instalando lamp
    para la universidad, dar clases o trabajo
    en un principio siempre busque sitio para recomendar
    a algunos en la web como instalarlo ya en una plataforma UNIX
    y de verdad este articulo es el que explica facil y de forma muy directa
    como tener lamp con php en este caso!!
    sobre todo la parte de cambiar la clave de root que trae por defecto MySQL
    muy buen articulo.

    • Olivers dijo:

      Muchas gracias por tu comentario Jjedi, siempre es bueno saber que es útil para otros lo que escribo

      Saludos
      Olivers

  22. John Jairo dijo:

    Excelente información, funcionó a la primera

    • Olivers dijo:

      Muchas gracias por tu comentario John.

  23. Pingback: Servidor FTP con proftp en Ubuntu / Debian

  24. Pingback: Links a tutoriales importantes | Roberto Cárdenas

  25. Padme dijo:

    Muchísimas gracias, fue muy útil para mi, me funciono a la primera, ningún error :)

  26. hitokirilv4 dijo:

    hola instale el apahe siguiendo otro tutorial y el funciona…. el detalle paso al querer instalar phpmyadmin me decia que creara una carpeta en var/www y alli extrallera el archivo que baje de la pagina de phpmyadmin … la cosa es que no puedo modificar la carpeta active el usuario root por la consola cuando voy a la carpeta no me deja hacer nada, trate de borrarla e intentar de otra forma y por los permisos no lo puedo hacer (pense que el usuario que registre al instalar kubumtu seria el administrador del sistema), entonces quiero desintalar todo lo que ya llevo hecho ( no se como hacerlo)y hacerlo como dice este tutorial y de paso tengo la duda si cada ves que relice algun archivo en php, html, etc no voy a poder salvarlo en la carpeta porque no la puedo modificar porque mi usuario no es root, como notaran soy novato en linux y con win nunca tube ese problema (claro siempre usaba un usuario admin) ayuda tengo que hacer algo especial para instalarlo ?

  27. Pingback: Instalar LAMP en Ubuntu | An HP based in Linux and a Linux based in HP

  28. offman dijo:

    hola… tengo un problema! hice todos los pasos pero a la hora de modificar el registro para agregar la linea Include /etc/phpmyadmin/apache.conf me da este error

    (gedit:12349): Gtk-WARNING **: Attempting to store changes into `/root/.local/share/recently-used.xbel’, but failed: Falló al crear el archivo «/root/.local/share/recently-used.xbel.AWEF9V»: No existe el archivo o el directorio

    (gedit:12349): Gtk-WARNING **: Attempting to set the permissions of `/root/.local/share/recently-used.xbel’, but failed: No existe el archivo o el directorio

    (gedit:12349): Gtk-WARNING **: Attempting to store changes into `/root/.local/share/recently-used.xbel’, but failed: Falló al crear el archivo «/root/.local/share/recently-used.xbel.7E3H9V»: No existe el archivo o el directorio

    (gedit:12349): Gtk-WARNING **: Attempting to set the permissions of `/root/.local/share/recently-used.xbel’, but failed: No existe el archivo o el directorio

    (gedit:12349): Gtk-WARNING **: Attempting to store changes into `/root/.local/share/recently-used.xbel’, but failed: Falló al crear el archivo «/root/.local/share/recently-used.xbel.HJGM9V»: No existe el archivo o el directorio

    (gedit:12349): Gtk-WARNING **: Attempting to set the permissions of `/root/.local/share/recently-used.xbel’, but failed: No existe el archivo o el directorio
    offman@offman-HP-Compaq-dx2400-Microtower:~$ /etc/init.d/apache2 restart * Restarting web server apache2 ulimit: 88: error setting limit (Operation not permitted)
    apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
    ulimit: 88: error setting limit (Operation not permitted)
    apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
    (13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    Unable to open logs
    Action ‘start’ failed.
    The Apache error log may have more information.
    [fail]

    y al tratar de entrar al localhost desde el navegador me dice

    404 Not Found

    The requested URL /phpmyadmin was not found on this server.

    • Pedro dijo:

      as probado a ejecutar sudo /etc/init.d/apache2 restart

  29. Carlos dijo:

    Estimado amigo, su tutorial esta excelente y con un nivel andragógico y pedagogico de buena altura, pero pensando en lo educativo sugiero cambiar la palabra “accesar” por “acceder”, debido a que “accesar” no existe en el idioma español.

    Saludos

  30. Flaco muy buen tuto, muchas gracias por el aporte me va de 10 puntos, ya instalé mi servidor y lo tengo a full. Un abrazo desde Colombia




Algún comentario?