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