El termino LAMP se refiere a un servidor basado en Linux capaz de alojar y ejecutar paginas web complejas basadas en PHP y con opción a base de datos, como por ejemplo WordPress, Joomla, Drumpal, Prestashop, todos estos requieren de un servidor LAMP.
LAMP es un acrónimo de Linux, Apache, MySQL y PHP.
En esta entrada voy a explicar como instalar un servidor LAMP en un Linux Debian 7.7 para empezar la instalación vamos a requerir de un Linux Debian 7.7 limpio y sin ningún paquete adicional instalado, para ello podemos seguir la guía del articulo donde explique como instalar Linux Debian netinst 7.x.
Una vez tenemos el sistema Debian netinst base vamos a instalar los siguientes servidores:
- Apache es uno de los servidores web mas usados en internet utilizado por mas del 70% de las paginas web. Apache es libre y de código abierto, esto lo hace muy versátil ya que se usa para cualquier tipo de proyecto, sea este grande o pequeño, además posee de extensiones para aumentar sus funcionalidades.
- PHP es un lenguaje para el desarrollo de contenidos complejos en formato web, permite crear scripts que cumplan funciones especificas desde capturar los datos de un formulario hasta crear un gestor de contenido como Joomla o WordPress y paginas web muy complejas. Para ejecutar PHP mediante Apache es necesario instalarlo.
- MySQL es el servidor para base de datos mas común en internet, se usa para almacenar los datos en tablas usados por los gestores de contenido programados en PHP aunque también sirve para cualquier otro propósito en el que sea necesario un servidor SQL, es libre y de código abierto.
Para realizar la instalación de estos servicios deberás acceder al servidor ya sea directamente por la terminal de comandos o mediante un cliente SSH como por ejemplo Putty.
¿Cómo instalar Apache en Debian?
Una vez dentro del terminal como usuario root vamos a ejecutar el siguiente comando:
apt-get install apache2
Nos va a pedir instalar una serie de paquetes adicionales para realizar la instalación, le vamos a indicar SI para continuar.
Una vez finalizado si todo ha ido bien se iniciara el servidor web apache y ya podemos acceder a la IP del servidor mediante el navegador web usando la ruta http://ip
Si todo ha ido bien nos mostrara este mensaje.
¿Cómo instalar PHP en Debian?
Para instalar PHP basta con ejecutar la siguiente instrucción:
apt-get install php5 php5-mysql php5-gd libapache2-mod-php5
Nos va a pedir instalar una serie de paquetes adicionales para realizar la instalación, le vamos a indicar SI para continuar.
Una vez finalizada la instalación vamos a reiniciar apache para que se apliquen los cambios, ejecutando el comando:
/etc/init.d/apache2 restart
Para comprobar si PHP funciona correctamente podemos crear el fichero test.php en el directorio /var/www/ directorio usado por Apache por defecto para publicar el contenido web.
Vamos a crear un fichero php:
vi /var/www/test.php
Y agregaremos las líneas siguientes:
<?php
phpinfo();
?>
Una vez agregadas las líneas presionamos la tecla «Escape» y salimos guardando los cambios escribiendo «:wq» y presionamos «Enter»
Ahora ya podemos acceder a la IP del servidor mediante el navegador web con la ruta siguiente: http://ip/test.php y nos aparecerá la siguiente información:
Si todo ha ido bien nos mostrara este mensaje.
¿Cómo instalar MySQL en Debian?
El ultimo paso para tener tu LAMP en funcionamiento es instalar la base de datos MySQL para ello ejecutamos el comando siguiente:
apt-get install mysql-server mysql-client
Nos va a pedir instalar una serie de paquetes adicionales para realizar la instalación, le vamos a indicar SI para continuar.
En el siguiente paso nos pide una contraseña para el usuario root en MySQL
Y nos volverá a pedir repetir la misma contraseña para verificar que la escribimos correctamente
Una vez instalado ya podemos acceder a MySQL ejecutando el comando:
mysql -u root -p
Vamos acceder con la contraseña root que nos pidió en la instalación
Para hacer mas seguro MySQL vamos a bloquear todas las conexione publicas de los usuarios locales, para ello una vez dentro de la consola de MySQL vamos a ejecutar:
DROP USER »@’localhost’;
DROP USER »@’localhost.localdomain’;
También podemos crear un usuario para que este tenga acceso a una base de datos tal y como se muestra en este ejemplo:
Creamos usuario joan con contraseña joanemarti:
CREATE USER ‘joan’@’localhost’ IDENTIFIED BY ‘joanemarti’;
Creamos una base de datos con el nombre joan-db:
CREATE DATABASE IF NOT EXISTS `joan-db`;
Le damos todos los privilegios de la base de datos joan-db al usuario joan:
GRANT ALL PRIVILEGES ON `joan-db`.* TO ‘joan’@’localhost’;
Una vez finalizados todos los cambios escribimos
quit;
Ahora ya tenemos un usuario joan con privilegios para gestionar la base de datos joan-db
¿Cómo publicamos nuestro poryecto web en nuestro servidor LAMP?
Para ello deberemos alojar todos los ficheros de la web (tanto en formato PHP como en formato HTML) en el directorio /var/www/
Si se requiere de un acceso MySQL es tan sencillo como crear el usuario y la base de datos con los privilegios tal y como se explica en la guía.
Ahora ya lo tienes todo preparado para publicar o desarrollar tu proyecto web en un entorno dedicado ya sea un blog, un foro, un sitio web, una intranet y todo lo que te puedas imaginar que pueda correr en un LAMP.
- Actualización 28/11/2014: He subido una maquina virtual en formato vmdk con toda la instalación de esta guía ya funcionando. Este vmdk se puede abrir con VirtualBOX (gratis) Quemu (para Linux y gratis), VMware Player (gratis), VMware ESXi y VMware Workstation (el que uso yo).
Se aconseja definir una maquina virtual con:
1 cpu de 2 cores
2GB de RAM
1 interface de red en bridget y disponer de un servidor DHCP
(el disco duro es de 20GB)
usuario: root
contraseña: joanemarti
Para averiguar la IP usar el comando: ifconfig
Enlace de descarga de LAMP.vmdk
Jorge Torres dice
Excelente Guía
Solo tengo una pregunta:
En el paso donde sale:
Para hacer mas seguro MySQL vamos a bloquear todas las conexione publicas de los usuarios locales, para ello una vez dentro de la consola de MySQL vamos a ejecutar
DROP USER ”@’localhost’;
DROP USER ”@’localhost.localdomain’;
Donde sale DROP USER – ¿Se deja igual?
Donde sale localhost – ¿Porque cosa se cambia? ¿El nombre de mi máquina Que es mi caso es server? ¿O va el nombre de algún Usuario de mi dominio?
Gracias de antemano
Me sirvió mucho el Paso a paso excelente página