Tú decides qué servicios podemos activar para análisis, personalización y contenido externo.
Utilizamos cookies y tecnologías similares en nuestro sitio web para personalizar el contenido, integrar medios externos y comprender mejor el uso de determinadas secciones.
Cookies necesarias
Estas entradas garantizan funciones básicas como la seguridad, la estabilidad y el procesamiento de formularios.
Tus datos pueden tratarse con tu consentimiento o sobre la base de intereses legítimos. En la configuración de cookies puedes rechazar cada categoría opcional o autorizarla expresamente.
Algunos servicios procesan datos personales en terceros países. Al dar tu consentimiento, también aceptas esta transferencia. Encontrarás más información en nuestra política de privacidad.
Puedes volver a abrir y modificar tu selección en cualquier momento. · 1.0.2
Configurar una pila LAMP en un Servidor VPS Linux: alojar aplicaciones PHP clásicas
Descubre cómo configurar de forma eficiente una pila LAMP para alojar sitios web PHP dinámicos en Linux → Más información
10 de noviembre de 20267 min de lectura0 Visitas0 útil
Introducción
La pila LAMP es una combinación popular de software de código abierto que se instala conjuntamente para alojar fácilmente sitios web dinámicos, especialmente sitios y aplicaciones PHP. El acrónimo corresponde a: Linux como sistema operativo, Apache como servidor web, MySQL como base de datos y, por último, PHP para el procesamiento. En esta guía te mostraremos cómo configurar una pila LAMP en un Servidor VPS Linux, con una explicación detallada paso a paso y un ejemplo de un sitio web de lista de tareas.
FAQ
Preguntas frecuentes
Linux como sistema operativo, Apache como servidor web, MySQL como base de datos y PHP para el procesamiento: una combinación popular para alojar sitios web PHP dinámicos.
LAMP usa Apache como servidor web, mientras que LEMP usa Nginx (Engine x). El resto de la combinación (Linux, MySQL y PHP) es idéntico.
Ejecuta sudo apt install apache2. Después, asegúrate de que el puerto 80 (HTTP) esté abierto en el firewall.
Ubuntu. Los comandos son idénticos en Debian y similares en otras distribuciones, aunque la sintaxis puede variar ligeramente.
Comentarios
¿Te resultó útil este artículo?
Tus comentarios nos ayudan a priorizar y mejorar los contenidos.
0 de 0 Las valoraciones consideraron útil este artículo.
Ayuda personalizada
¿No te basta con la guía?
Nuestro equipo de soporte de ZAP conoce tu producto. Describe brevemente tu consulta y te ayudaremos personalmente.
Navegación
VPS
Preparación
Primero, conéctate a tu servidor mediante SSH. Si no sabes cómo hacerlo, consulta nuestra guía de Primer acceso (SSH).
En esta guía usamos Ubuntu como distribución de Linux. Los comandos son idénticos en Debian y similares en otras distribuciones, aunque la sintaxis puede variar ligeramente. Asegúrate de tener un sistema operativo instalado y de estar conectado mediante SSH.
Como siempre, antes de instalar nada, debes actualizar todos los paquetes con el siguiente comando:
La instalación se puede dividir fácilmente en los componentes principales de la pila LAMP: primero el servidor web Apache, después la base de datos MySQL y, por último, PHP. Durante la instalación configuraremos un sitio web de prueba escrito en PHP que accede a la base de datos MySQL. A continuación, Apache procesará y servirá cada solicitud web.
Configurar Apache
Apache es el servidor web que procesa las solicitudes web entrantes y envía las respuestas. Instálalo con el siguiente comando:
Code
sudo apt install apache2
Después de la instalación, asegúrate de que las reglas del firewall adecuadas estén configuradas para que se pueda acceder al servidor web desde Internet. En este ejemplo usamos UFW Firewall, ya que Apache dispone de una aplicación registrada para ello.
Si usas otro firewall, asegúrate de que el puerto 80 (HTTP) esté abierto. Encontrarás más información sobre los firewalls en Linux en nuestra guía Administrar el firewall.
Activa UFW Firewall y crea una regla para SSH:
Code
# Regel für SSH erstellen
sudo ufw allow OpenSSH
# UFW Firewall aktivieren
sudo ufw enable
Atención
Asegúrate de tener una regla de SSH en UFW Firewall. Sin ella, si pierdes la sesión actual, no podrás volver a conectarte mediante SSH después de activar el firewall.
Ahora crea la regla para Apache y comprueba las reglas:
Code
# Regel für Apache erstellen
sudo ufw allow in "Apache Full"
# UFW Firewall Status prüfen
sudo ufw status
Consejo
Usa ufw app list para ver los perfiles disponibles. Apache Full significa que están abiertos tanto HTTP (puerto 80) como HTTPS (puerto 443).
Deberías ver Apache y Apache (v6) con el estado ALLOW, lo que confirma que el firewall está configurado correctamente. También deberían aparecer otras reglas, como la de SSH.
Con el firewall abierto para Apache, ya puedes comprobar si funciona. Abre en el navegador la dirección IP de tu servidor: http://[deine_ip_adresse]
Si todo funciona, deberías ver una página de bienvenida predeterminada. Si no es así, comprueba el estado con: systemctl status apache2
Configurar MySQL
Ahora instalarás MySQL, que sirve como base de datos para almacenar datos de forma relacional. Instálalo con:
Code
sudo apt install mysql-server
Después de la instalación, recomendamos ejecutar el script de seguridad para proteger tu servidor MySQL. Es opcional, pero muy recomendable. Inícialo con:
Code
sudo mysql_secure_installation
El script te guiará de forma interactiva por la configuración. Primero, te preguntará sobre la validación de contraseñas. Recomendamos elegir Y para permitir solo contraseñas seguras y, a continuación, seleccionar MEDIUM (1) o STRONG (2).
Después, te preguntará si quieres eliminar el usuario anónimo y desactivar el inicio de sesión de root desde el exterior. Recomendamos confirmar ambas opciones con Y para aumentar la seguridad.
Por último, te preguntará si quieres eliminar la base de datos de prueba y volver a cargar las tablas de permisos. También recomendamos elegir Y en este caso.
Comprueba que MySQL esté en funcionamiento iniciando sesión:
Code
sudo mysql -u root
Si ves un mensaje de bienvenida, todo ha funcionado correctamente. Escribe quit para salir de la consola de MySQL.
Configurar PHP
El último componente de LAMP es PHP. La instalación es sencilla:
Code
sudo apt install php libapache2-mod-php php-mysql
Comprueba la instalación con:
Code
php -v
Si aparece un número de versión, PHP funciona correctamente.
Consejo
Extensiones de PHP
Es posible que necesites extensiones de PHP adicionales para casos de uso específicos. Puedes consultar una lista con:
Code
apt search php- | less
Usa las teclas de flecha para desplazarte y Q para salir. Para instalar una extensión:
Code
sudo apt install [php_extension] [...]
Puedes instalar varias extensiones a la vez, separadas por espacios.
Recomendamos cambiar el orden del índice de directorios para que index.php se cargue antes que .html. Abre el archivo:
Guarda con CTRL + X, confirma con Y y pulsa ENTER. Reinicia Apache:
Code
sudo systemctl restart apache2
Crear un sitio web de prueba
Después de instalar todos los componentes de LAMP, crearemos un sitio web de prueba para mostrar cómo funcionan en conjunto. Es opcional, pero resulta útil para entender cómo puedes crear tus propios sitios web.
Crearemos una pequeña lista de tareas en PHP que recupera y muestra entradas de una base de datos MySQL. Usaremos zapdocs.example.com como dominio de ejemplo. Debes crear un registro DNS A para el dominio que apunte a la dirección IP de tu servidor. Encontrarás ayuda en nuestra guía de Registros de dominio.
Información
También puedes trabajar sin un dominio y sustituir [your_domain] por cualquier nombre. En ese caso, accederás al sitio mediante la dirección IP. Sin embargo, debes eliminar la línea ServerName del archivo del host virtual.
Configurar Apache
Los sitios web suelen estar en el directorio /var/www. De forma predeterminada, allí hay un directorio html con una página predeterminada. Si tienes varios sitios web, recomendamos crear un directorio independiente para cada dominio.
Crea un directorio para tu dominio:
Code
sudo mkdir /var/www/[your_domain]
Crea un nuevo archivo de configuración de host virtual:
Guarda y sal con CTRL + X, Y y ENTER. Comprueba la sintaxis:
Code
sudo apache2ctl configtest
Activa el nuevo host virtual:
Code
sudo a2ensite [your_domain]
Información
Sin dominio
Si no usas un dominio, elimina o comenta la línea ServerName (con #) y desactiva el host predeterminado:
Code
sudo a2dissite 000-default
Reinicia Apache:
Code
sudo systemctl restart apache2
Crear el sitio web
El directorio está vacío, así que ahora crearemos el sitio web de lista de tareas.
Preparar la base de datos
Inicia sesión en MySQL:
Code
sudo mysql -u root
Crea una nueva base de datos y una tabla:
Code
# Datenbank erstellen
CREATE DATABASE todowebsite;
# Datenbank auswählen
USE todowebsite;
# Tabelle erstellen
CREATE TABLE todoitems (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
is_completed BOOLEAN DEFAULT FALSE,
creation_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Añade algunas entradas de ejemplo:
Code
INSERT INTO todoitems (name, is_completed) VALUES ('Create ZAP-Docs Guide', 0);
INSERT INTO todoitems (name, is_completed) VALUES ('Buy a ZAP-Hosting Server', 1);
INSERT INTO todoitems (name, is_completed) VALUES ('Join ZAP-Hosting Discord', 0);
INSERT INTO todoitems (name, is_completed) VALUES ('Have a great day!', 0);
Crea un usuario específico para el sitio web:
Code
# Benutzer erstellen
# Ersetze [your_password] durch dein Passwort
CREATE USER todo@localhost IDENTIFIED BY '[your_password]';
# Rechte vergeben (als ein Befehl kopieren)
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON todowebsite.*
TO todo@localhost;
# Rechte neu laden
FLUSH PRIVILEGES;
Sal de la consola de MySQL con quit.
Archivos PHP del sitio web
Crea el archivo PHP para la página de la lista de tareas:
Code
sudo nano /var/www/[your_domain]/index.php
Añade el siguiente código. Se conecta a la base de datos y muestra las entradas de la lista de tareas.
Importante
Sustituye [your_password] por la contraseña que asignaste al usuario todo.
Code
<?php
// MySQL-Verbindung vorbereiten
$servername = "localhost";
$username = "todo";
$password = "[your_password]";
$dbname = "todowebsite";
// Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Verbindung prüfen, bei Fehler abbrechen
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// SQL-Abfrage, um Einträge abzurufen
$sql = "SELECT id, name, is_completed, creation_date FROM todoitems ORDER BY creation_date DESC";
$result = $conn->query($sql);
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>To-Do Liste</title>
</head>
<body>
<h1>Coole To-Do Liste :D</h1>
<p>Für unseren coolen ZAP-Hosting Guide: <a href="https://zap-hosting.com/guides/docs/vserver-linux-lamp-stack">https://zap-hosting.com/guides/docs/vserver-linux-lamp-stack</a></p>
<ul>
<?php
// Prüfen, ob Ergebnisse vorhanden sind
if ($result->num_rows > 0) {
// Durch alle Einträge iterieren
foreach ($result as $entry) {
echo "<li>";
// Name anzeigen, htmlspecialchars schützt vor XSS
echo htmlspecialchars($entry["name"]);
// Status anzeigen
if ($entry["is_completed"]) {
echo " <strong>(Erledigt)</strong>";
} else {
echo " <strong>(Offen)</strong>";
}
// Erstellungsdatum anzeigen
echo " - Erstellungsdatum: " . htmlspecialchars($entry['creation_date']);
echo "</li>";
}
} else {
// Falls keine Einträge vorhanden sind
echo "<li>Keine To-Do-Einträge gefunden.</li>";
}
?>
</ul>
</body>
</html>
<?php
// Verbindung schließen
$conn->close();
?>
Guarda y sal con CTRL + X, Y y ENTER.
Probar el sitio web
¡Has configurado correctamente un sitio web de prueba de lista de tareas que utiliza todos los componentes de LAMP!
Ahora accede al sitio mediante el dominio (HTTP/puerto 80) que definiste en el host virtual, por ejemplo, zapdocs.example.com. El resultado debería tener este aspecto:
Conclusión
¡Enhorabuena! Has instalado y configurado correctamente la pila LAMP. Como siguiente paso, te recomendamos encarecidamente configurar un dominio y un certificado SSL para que se pueda acceder a tu sitio web de forma segura. Para ello, consulta nuestra guía de Certbot, centrada en el complemento de Apache, y sigue la configuración interactiva para obtener rápidamente un certificado para tu dominio.
¡Nuestro equipo de soporte está a tu disposición todos los días si tienes preguntas o problemas! 🙂
Alojamiento de servidores desde 2,49 € / mes, disponible al instante, con protección DDoS incluida.