🐋
Apuntes Sistemas
  • ⚓Presentación
  • 📊Sistemas y Servidores
    • Personalizar el prompt de Windows
    • Utilidad de manejo de apps para Windows
    • PRACTICA: Arranque dual Windows y Ubuntu
    • 🚧SysLinuxOS: el SO para ASIX
    • Comandos Linux
      • PRACTICA - Ejercicio de práctica comandos
      • 🚧Instalación de paquetes
      • Apuntes Linux: blue/red team
      • Ejemplos de bash
      • Listado de comandos de Linux
    • Comandos Windows
      • 🚧Apuntes Powershell
      • Bucles FOR con batch
      • Scripts de práctica de Windows
    • Prácticas con Windows 10
    • Configuración de netplan
    • Terminal shell
      • SSH
      • 🚧Ghostty
      • 🚧Warp: la terminal inteligente
      • tmux: paneles de terminal
      • Tabby: Mejorar terminal
      • Conexión SSH en red NAT con VirtualBox
      • TheFuck!: Corrección de comandos
      • Wave: Mejorar terminal Linux
      • 🚧Registros de sesiones
    • Instalación manual de Wordpress en CDMON
    • 🏗️Proxmox
    • 🚧TrueNAS
    • Docker
      • Instalación de Docker
      • Dockerfiles
      • Volúmenes de docker
      • Deployment web con Docker con ejemplos
        • 🚧PRACTICA: Node.js con docker
      • Docker Compose
        • Ejemplo 1: Implantación de Wordpress
        • Ejemplo 2: Implementación de servidor con Nginx, Flask y mySQL
        • Ejemplo 3: Implantación de onlyoffice
        • 🚧Ejemplo 4: Passbolt
        • 🚧PRACTICA: Creando una web de emulación de juegos con docker-compose
      • Monitorización con Grafana en Docker
      • Pi-hole con docker
      • Actividad clase: Deployment app
      • Proyectos self-hosted de docker
    • 🚧Ansible
      • Configuración de laboratorio de ansible
    • 🚧Monitorización de servicios y redes
      • Servicios y cronjobs
      • 1Panel
      • 🚧WatchYourLAN
      • 🚧Uptime-kuma
      • 🚧Netdata
      • 🚧Prometheus + Grafana + Loki
    • LDAP
      • 🚧Gestión gráfica de LDAP
      • Carpetas compartidas NFS
      • PRACTICA: Infraestructura LDAP
  • 🗃️Servicios
    • 🚧Servidor hosting público
    • DHCP
      • DHCP con Ubuntu
      • 🦖DHCP & DNS script
      • DHCP con Alpine
        • Alpine - configuración de red
    • DNS
      • 😡Comprobación DNS
      • Script para enumeración DNS
      • DNS con ubuntu server
      • 🏗️DNSmasq
      • 🚧Securizar servidor DNS
    • Web
      • IIS con Windows server
      • Apache
        • Instalación de LAMP en Ubuntu
          • Prueba de servidor LAMP
          • 🚧Configuración de seguridad de Ubuntu
          • Creación de un VirtualHost en LAMP
          • Creación de varios VirtualHosts en LAMP
          • 🚧Instalación por script de LAMP
        • Aplicaciones con LAMP
          • Instalación de WP en entorno LAMP
          • 🚧Instalación de MantisBT en LAMP
            • 👷Guía de MantisBT
          • 🚧Instalación de QDPM con LAMP
      • Nginx
        • Virtualhosts
        • Instalando Wordpress en nginx
      • 👷MEAN stack
      • 👷‍♂️Caddy
      • 🚧Plesk
      • 🚧Ajenti -Web interface
    • 🏗️Proxy
      • Nginx como proxy inverso y balanceador
      • 🚧Zoraxy
    • Mailing
      • 🚧Servidor Mail con cloudfare
      • 🚧Reenvío de correos de root
      • 🚧Roundcube como MUA
      • Comprobación ESMTP
      • 🚧Seguridad en mailing
      • 🚧Mailhog
    • 🏗️File transfer
      • 🚧FTP
      • Git
    • Sistemas de comunicación instantánea
      • Comunicación mediante CLI
      • Ejabberd - XMPP
        • 🚧Ejabberd con docker
      • 🚧Openfire - XMPP
      • 🚧Comunicaciones servidor-móvil
    • 🏗️Multimedia services
      • Stremio
      • Ver anime por CLI
      • Jellyfin
      • 🚧HLS sobre Apache
      • 🚧Servicio autohospedado de videoconferencia
      • 🚧Morphos: Conversor docs
      • 🚧Reproductores de música en CLI
      • 🚧Icecast - música en streaming
      • 🚧RTMP-HLS server
      • 🚧Guacamole
  • 🖱️Hardware
    • 🚧Identificando conectores
    • Curso de electrónica analógica
    • Alcanzar los 3200MHz con la RAM
    • Calculadora de cuellos de botella
    • 🚧PXE: Bootear sistemas en red
    • 🚧PRÁCTICA - Clonación de disco con Clonezilla
    • Logitech iFixit
  • 🕸️Redes
    • Apuntes IPv4 Alina
    • ¿Cómo diferenciar tantos elementos de red?
    • 🚧IPv6
    • PRÁCTICA - Subneteo con IPcalc en Linux
    • PRÁCTICA - Comandos de red en Windows
    • 🚧PRÁCTICA - Comandos de red en Linux
    • Herramientas de red
      • 🚧TCPDump: analizado de paquetes en red
      • PRÁCTICA - Netsh
      • 🚧PRÁCTICA - mtr.ping.pe
      • 🚧Netcat
    • Wireshark
    • VPN y escritorio remoto
      • Comunicación punto a punto con ngrok
      • 🚧VPN
    • Escaneo de red
      • PRÁCTICA - Mapeado de red con Draw.io
      • 🚧PRÁCTICA - Nmap/Zenmap
    • Redes inalámbricas
      • Wi-fi
        • 🚧PRÁCTICA - Configuración de router
        • 🚧PRÁCTICA - Como hacer un Wifi Heatmap
        • 🚧Seguridad de redes inalámbricas
        • PRÁCTICA - Crackear la contraseña del Wifi con WPA/WPA2
    • PRÁCTICA - Usar SSH en Cisco packet tracer
  • 🛑Ciberseguridad
    • 🚧Securizando un servidor Linux
      • Protégete de ataques de fuerza bruta con Fail2ban
      • Firewall
        • UFW (uncomplicated firewall)
          • GUFW - Interfaz gráfica de ufw
        • 🚧IPTables
        • 🚧PFsense
          • 🚧DMZ con PFsense
      • 🚧Passbolt: gestor de contraseñas autohospedado
      • 🚧Hashes y encriptación
      • 🚧Certificados SSL/TLS
      • Copias de seguridad
    • 🚧Alerta de escaneo de puertos
    • 🚧Google dorks
    • 🚧Enumeración DNS
    • Comandos destructivos de linux
    • Webs enseñanza cyber
    • Wireless Pentesting CheatSheet Github
    • The password game!
    • Personal Security Checklist
  • 🔌Arduino
    • Termómetro e higrómetros digitales y online con Arduino
    • Construyendo un coche multipropósito
      • Multi
      • Montaje del auto
    • Arduino con Sigfox para IoT
    • 10 proyectos de Arduino
  • 📚Recursos y libros
    • Media library: libros varios
    • Herramientas básicas de sysadmin
  • 🌍Sostenibilidad y digitalización
    • Portfolio curso digitalización MOOC
    • 🚧Explotación de recursos por IA
    • 🚧Nuevas tecnologias y comunicaciones
    • 🚧Enlaces sobre Inteligencia artificial
Con tecnología de GitBook
En esta página
  • 1. Apache
  • 2. MySQL
  • 3. SSH
  • 4. PHP
  • 5. Instalar PHPmyadmin
  • 6. Prueba de servicios
  1. Servicios
  2. Web
  3. Apache

Instalación de LAMP en Ubuntu

AnteriorApacheSiguientePrueba de servidor LAMP

Última actualización hace 1 mes

La máquina Linux con el LAMP se puede descargar directamente de o, si no, puede seguir la guía de preparación del entorno LAMP en Linux. Una vez creada e instalada la máquina virtual de Ubuntu, podemos proceder abriendo el terminal:

Antes de empezar a instalar, procederemos a actualizar paquetes y repositorios:

sudo apt update
sudo apt upgrade

1. Apache

Instalamos Apache y sus utilidades:

sudo apt install apache2 apache2-utils

Puedes probar a instalar apache con el parámetro -y que le dirá que sí a todo:

sudo apt install -y apache2 apache2-utils

Para comprobar si la instalación ha funcionado correctamente, debes:

  • Usar el comando systemctl para comprobar el estado: sudo systemctl status apache2

  • Comprobar la versión de apache con: apache2 -v

  • Probar accediendo a "http://localhost" desde el navegador

2. MySQL

Instalamos el servidor y cliente de MySQL:

sudo apt install mysql-server mysql-client

Para acceder a MySQL escribe:

sudo mysql

Una vez realizado debería aparecer algo así, con el prompt de mysql:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.31-0ubuntu5.22.04.1 (Ubuntu)

Copyright (c) 2000, 2022, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Sal con >exit cuando quieras volver.

Por último, configuramos las directivas de seguridad de mysql con:

mysql_secure_installation

3. SSH

Esta parte es opcional en Ubuntu desktop aunque casi obligatoria en Ubuntu server

Instalamos nuestro servicio de SSH para poder trabajar más cómodamente con ficheros y librerías (Esto tiene más sentido si se está utilizando un SO por comandos como Debian o Ubuntu Server).

4. PHP

Con Apache instalado para servir el contenido y MySQL instalado para almacenar y administrar los datos, toca instalar PHP en su versión 8.1 que es el componente de nuestra configuración que procesará el código para mostrar contenido dinámico al usuario final.

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

Además del paquete php, necesitarás php-mysql que permita a PHP comunicarse con bases de datos basadas en MySQL. También deberá habilitar Apache para manejar archivos PHP con libapache2-mod-php. Habilitamos php en apache con el siguiente comando (apache2 enable module) y reiniciamos el servicio para aplicar cambios:

sudo a2enmo php8.1
sudo systemctl restart apache2

Por último, para comprobar la versión de php instalada, puedes ejecutar el siguiente comando:

php -v
PHP 8.1.2-1ubuntu2.9 (cli) (built: Oct  19 2022 14:28:09) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.9, Copyright (c), by Zend Technologies

Para comprobar que PHP funciona bien del todo:

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

Contenido del archivo:

<?php phpinfo(); ?>

Y accede desde el navegador a: http://IPSERVIDOR/info.php Que mostrará una página con la configuración de PHP cargada por Apache.

5. Instalar PHPmyadmin

Como siempre, utilizamos el siguiente comando para instalar phpMyAdmin:

sudo apt install phpmyadmin

Selecciona el servidor web: Durante la instalación, se te preguntará qué servidor web deseas configurar para phpMyAdmin.

  1. Selecciona "apache2" como servidor web por defecto y presiona Enter.

  2. Configura una base de datos para phpMyAdmin. Selecciona "Yes" y proporciona la contraseña de root de MySQL de antes.

  3. En versiones recientes, phpMyAdmin no se habilita automáticamente por lo que tendremos que habilitarlo manualmente:

    sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

Para terminar de controlar, reiniciamos el servidor web para que los cambios surtan efecto:

sudo service apache2 restart

Ahora toca probar de acceder a phpMyAdmin, para ello abre el navegador web y visita la dirección http://IP/phpmyadmin. Inicia sesión con el nombre de usuario "root" y la contraseña de root de MySQL que proporcionaste durante la instalación.

6. Prueba de servicios

Iniciar, detener y reiniciar/recargar son las tareas más comunes cuando se trabaja con un servidor web Apache. Los comandos para administrar el servicio Apache son diferentes entre las distribuciones de Linux:

La mayoría de las distribuciones recientes de Linux utilizan SystemD como administrador de sistemas y servicios de inicio predeterminado. Las distribuciones más antiguas se basan en SysVinit y utilizan scripts de inicio para administrar servicios. Otra diferencia es el nombre del servicio. En Ubuntu y Debian, el servicio Apache se llama apache2, mientras que en el sistema basado en Red Hat como CentOS, el nombre del servicio es httpd.

Tanto las unidades de servicio de SystemD como el script SysVinit toman los siguientes argumentos para administrar el servicio Apache:

$ sudo systemctl <parameter> <service>.service
  • start: inicia el servicio Apache.

  • stop: finaliza el servicio Apache.

  • restart: detiene e inicia el servicio Apache.

  • reload: reinicia correctamente el servicio Apache. Al volver a cargar, el proceso principal de Apache cierra los procesos secundarios, carga la nueva configuración e inicia nuevos procesos secundarios.

  • status: muestra el estado del servicio.

Por ejemplo, en Ubuntu, como ya hemos visto antes, podemos ejecutar el siguiente comando:

sudo systemctl status apache2.service

Este comando nos mostrará información sobre el estado de servicio de apache, si todo ha funcionado correctamente debería mostrarlo como activo.

Ahora sí, vamos a verificar todos los servicios:

# Apache
sudo systemctl status apache2

# MySQL
sudo systemctl status mysql

# Probar PHP
php -v

# Comprobar módulos cargados
php -m

Para configurarlo, revisa la sección concreta de que tengo en los apuntes.

Llegado a este punto, tu pila LAMP ya está preparada, ahora puedes configurar la seguridad de los servicios o bien seguir para almacenar el CMS y que te redirija.

Bitnami
SSH
creando un virtualhost
🗃️
Pantalla de phpmyadmin con las bases de datos a la izquierda
Page cover image