Saltar al contenido principal

Ejemplo 03

Instalación del Stack LAMP (Linux, Apache, MySQL, PHP)

Un stack LAMP es una combinación de software de código abierto que proporciona una plataforma robusta para alojar sitios web dinámicos y aplicaciones web escritas en PHP. LAMP es un acrónimo que representa:

  • Linux: El sistema operativo.
  • Apache: El servidor web.
  • MySQL: El sistema de gestión de bases de datos.
  • PHP: El lenguaje de scripting para procesar contenido dinámico.

En este tutorial, te guiaré a través de los pasos necesarios para configurar un stack LAMP en Ubuntu, aunque estos pasos pueden aplicarse con ligeras variaciones en otras distribuciones de Linux.

Paso 1: Instalación de Apache

Apache es uno de los servidores web más populares y confiables. Comienza actualizando la caché del gestor de paquetes:

sudo apt update

Luego, instala Apache:

sudo apt install apache2 -y

Nota: Asegúrate de habilitar e iniciar el servicio Apache:

sudo systemctl enable apache2
sudo systemctl start apache2

Para verificar que Apache esté funcionando correctamente, abre un navegador y accede a la dirección IP pública de tu servidor:

http://your_server_ip

Deberías ver la página predeterminada de Apache, que indica que el servidor está funcionando correctamente.

Cómo Encontrar la Dirección IP Pública de tu Servidor

Puedes obtener tu dirección IP pública utilizando la utilidad curl:

curl http://icanhazip.com

Escribe esta dirección IP en tu navegador web para confirmar que tu servidor está accesible.

Paso 2: Instalación de MySQL

MySQL es el sistema de gestión de bases de datos utilizado para almacenar y gestionar datos. Instala MySQL con el siguiente comando:

sudo apt install -y mysql-server

Nota: Habilita e inicia el servicio MySQL:

sudo systemctl enable mysql
sudo systemctl start mysql

Accede al prompt de MySQL:

sudo mysql

Cambia el método de autenticación del usuario root para usar una contraseña:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Sal del prompt de MySQL:

exit

Ejecuta el script de seguridad de MySQL:

sudo mysql_secure_installation

Sigue las indicaciones para configurar la validación de contraseñas. Se recomienda el nivel MEDIUM para asegurar contraseñas robustas.

Paso 3: Instalación de PHP

PHP es el lenguaje de scripting que interactúa con MySQL y genera contenido dinámico. Instala PHP junto con los módulos necesarios:

sudo apt install -y php libapache2-mod-php php-mysql

Reinicia Apache para cargar el módulo PHP:

sudo systemctl restart apache2

Paso 4: Verificar la Instalación

Crea un archivo de prueba para verificar la configuración de PHP. Abre un nuevo archivo en el directorio web predeterminado:

sudo nano /var/www/html/info.php

Agrega el siguiente contenido al archivo:

<?php
phpinfo();
?>

Guarda y cierra el archivo. Accede a este archivo desde tu navegador:

http://your_server_ip/info.php || http://localhost/info.php

Deberías ver una página con la configuración de PHP, confirmando que PHP está funcionando correctamente.

Probar la Conexión a la Base de Datos desde PHP

Para verificar la conexión a la base de datos desde PHP, crea una base de datos y un usuario de prueba en MySQL:

sudo mysql

Crea una base de datos y un usuario:

CREATE DATABASE example_database;
CREATE USER 'example_user'@'%' IDENTIFIED BY 'password';
GRANT ALL ON example_database.* TO 'example_user'@'%';

Sal de la consola de MySQL:

exit

Crea un archivo PHP para conectar con MySQL y consultar datos. Abre un nuevo archivo:

sudo nano /var/www/html/todo_list.php

Agrega el siguiente contenido al archivo, reemplazando example_user y password con los valores que has configurado:

<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";

try {
$db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
echo "<h2>TODO</h2><ol>";
foreach($db->query("SELECT content FROM $table") as $row) {
echo "<li>" . $row['content'] . "</li>";
}
echo "</ol>";
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>

Guarda y cierra el archivo. Accede a esta página en tu navegador:

http://your_server_ip/todo_list.php || http://localhost/todo_list.php