Iniciar sesión
Iniciar sesión

Cómo instalar y configurar SSH en Ubuntu 22.04

Cómo instalar y configurar SSH en Ubuntu 22.04
Hostman Team
Redactor técnico
Sistema Ubuntu Protocolo SSH seguro
26.06.2025
Reading time: 8 min

SSH es un protocolo de red que proporciona una conexión segura entre un cliente y un servidor. Toda la comunicación está cifrada, lo que evita el robo de datos transmitidos por la red y otros ataques remotos.

Supongamos que has contratado un servidor en la nube con Hostman. Para conectarte y administrarlo, necesitarás tener SSH instalado y configurado.

La guía a continuación describe cómo instalar y configurar SSH en Ubuntu 22.04.

Requisitos previos

Antes de continuar con la instalación y configuración del servicio Secure Shell, asegúrate de cumplir con los siguientes requisitos:

  • Conocimientos de línea de comandos en Linux

Es esencial dominar comandos básicos como sudo, apt, nano y systemctl al configurar el servicio. Estos comandos se usarán con frecuencia durante el proceso de instalación y configuración. Es fundamental sentirse cómodo trabajando en la línea de comandos para administrar el servicio eficazmente.

  • Acceso root o sudo para la configuración

Para instalar y configurar el servidor se requieren privilegios administrativos (root). Los usuarios deben tener acceso a sudo o haber iniciado sesión como root. Sin estos privilegios, no se puede continuar con la configuración.

  • Conexión a internet para descargar paquetes

Es necesaria una conexión estable para instalar el servidor OpenSSH y cualquier otro paquete relacionado. Sin una conexión funcional, el sistema no podrá obtener los componentes de software necesarios.

  • Configurar el firewall para permitir el acceso

Si hay un firewall como ufw habilitado en el sistema, puede bloquear el acceso remoto por defecto. Es fundamental configurar el firewall para permitir conexiones entrantes. Usa ufw u otra herramienta para asegurarte de que el puerto 22 esté abierto y accesible.

  • Acceso al sistema (local o remoto)

Necesitas acceso físico a tu máquina para configurarla localmente, o debe ser accesible remotamente mediante su dirección IP. Asegúrate de que el sistema esté conectado correctamente a la red para establecer una conexión.

No olvides que puedes desplegar tu servidor en la nube de forma rápida y económica con nuestro servicio de VPS Server Hosting.

Paso 1: preparar Ubuntu

Lo primero que debes hacer antes de instalar SSH en Ubuntu es actualizar todos los paquetes apt a sus últimas versiones. Para ello, ejecuta el siguiente comando:

sudo apt update && sudo apt upgrade

Paso 2: instalar SSH en Ubuntu

OpenSSH no viene preinstalado en el sistema, así que instalémoslo manualmente. Para hacerlo, escribe en la terminal:

sudo apt install openssh-server

Comenzará la instalación de todos los componentes necesarios. Responde "Yes" a todos los mensajes del sistema.

Una vez completada la instalación, pasa al siguiente paso para iniciar el servicio.

Paso 3: iniciar SSH

Ahora debes habilitar el servicio que acabas de instalar usando el siguiente comando:

sudo systemctl enable --now ssh

Si el inicio es exitoso, verás un mensaje del sistema confirmándolo.

La opción --now permite iniciar el servicio y configurarlo para que se inicie automáticamente al arrancar el sistema.

Para verificar que el servicio esté habilitado y en ejecución, escribe:

sudo systemctl status ssh

La salida debe contener la línea Active: active (running), lo que indica que el servicio está funcionando correctamente.

Si deseas deshabilitar el servicio, ejecuta: 

sudo systemctl disable ssh

Esto desactiva el servicio y evita que se inicie al arrancar el sistema.

Paso 4: configurar el Firewall

Antes de conectarte al servidor mediante SSH, revisa el firewall para asegurarte de que esté correctamente configurado.

En nuestro caso, tenemos instalado UFW, así que usaremos el siguiente comando:

sudo ufw status

En la salida, deberías ver que el tráfico SSH está permitido. Si no aparece en la lista, necesitas permitir las conexiones SSH entrantes. Este comando lo hará:

sudo ufw allow ssh

Paso 5: conectar al servidor

Una vez que completes todos los pasos anteriores, podrás iniciar sesión en el servidor usando el protocolo SSH.

Para hacerlo, necesitas la dirección IP o el nombre de dominio del servidor, y el nombre de un usuario creado en él.

En la línea de la terminal, introduce el siguiente comando:

ssh usuario@IP_del_servidor

O: 

ssh usuario@dominio

Importante: para conectarse correctamente a un servidor remoto, SSH debe estar instalado y configurado tanto en el servidor remoto como en el equipo desde el cual realizas la conexión.

Paso 6 (opcional): crear un par de claves para autenticación segura

Para mayor seguridad, considera configurar un par de claves en lugar de depender de la autenticación por contraseña. Para generarlo, usa el siguiente comando:

ssh-keygen

Paso 7: configurar SSH

Después de completar los cinco pasos anteriores, ya puedes conectarte remotamente al servidor. Sin embargo, puedes aumentar aún más la seguridad de la conexión cambiando el puerto por defecto o sustituyendo la autenticación por contraseña por autenticación mediante claves. Estos y otros cambios requieren editar el archivo de configuración de SSH.

Las principales configuraciones del servidor OpenSSH se almacenan en el archivo principal sshd_config (ubicación: /etc/ssh). Antes de editar, deberías crear una copia de seguridad del archivo:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.initial

Si después de editar el archivo encuentras errores, puedes restaurar sin problemas el archivo original.

Después de crear la copia de seguridad, puedes proceder a editar el archivo de configuración. Para ello, ábrelo con el editor nano:

sudo nano /etc/ssh/sshd_config

En el archivo, cambia el puerto a uno más seguro. Lo mejor es elegir un valor del rango dinámico de puertos (49152 - 65535) y usar números diferentes por seguridad adicional. Por ejemplo, cambia el valor a 49532. Para hacerlo, descomenta la línea correspondiente en el archivo y cambia el puerto como se muestra en la imagen.

4fd580df 7710 49f3 Ba88 5f79663f289e

Además de esta configuración, se recomienda cambiar el modo de autenticación por contraseña a autenticación por clave. Para hacerlo, descomenta la línea correspondiente y asegúrate de que el valor sea "Yes", como se muestra en la imagen.

B78f6db1 010f 48a7 A5ff Ce4e6f665691

Ahora, desactiva el inicio de sesión como superusuario cambiando la línea correspondiente como se indica.

B06df4a0 5d22 4c7a Ba90 47fabd8d0bf5

Otras configuraciones que puedes aplicar para mejorar la seguridad del servidor:

  • UseDNS yes: verifica si el hostname coincide con la dirección IP.

  • PermitEmptyPasswords no: prohíbe el uso de contraseñas vacías.

  • MaxAuthTries: limita los intentos fallidos de conexión en una misma sesión.

  • AllowUsers y AllowGroups: especifican los usuarios y grupos autorizados:

# AllowUsers Usuario1 Usuario2 Usuario3
# AllowGroups Grupo1 Grupo2 Grupo3
  • LoginGraceTime: define el tiempo máximo para autenticación. Se recomienda reducir este valor a una cuarta parte.

  • ClientAliveInterval: define el tiempo de inactividad permitido antes de desconectar al usuario.

Después de realizar todos los cambios en el archivo de configuración, guárdalo y cierra el editor.

Reinicia el servicio para aplicar los cambios:

sudo systemctl restart ssh

Si cambiaste el puerto, deberás conectarte usando el nuevo puerto:

ssh -p numero_de_puerto usuario@IP_del_servidor

O:

ssh -p numero_de_puerto usuario@dominio

Solución de problemas de conexión

  • Asegúrate de que el servicio esté activo con:
sudo systemctl status ssh
  • Reinícialo si es necesario:
sudo systemctl restart ssh
  • Verifica los ajustes del firewall para permitir tráfico en el puerto 22:
sudo ufw allow 22
  • Confirma que el sistema sea accesible ejecutando:
ping <IP_del_servidor>

Deshabilitar el servicio

Si necesitas deshabilitar el acceso remoto por cualquier motivo, sigue estos pasos:

  1. Detener el servicio

Para dejar de aceptar conexiones temporalmente:

sudo systemctl stop ssh
  1. Evitar inicio automático

Para impedir que se inicie al arrancar:

sudo systemctl disable ssh
  1. Confirmar estado inactivo

Verifica que el servicio ya no esté en ejecución:

sudo systemctl status ssh
  1. Desinstalar el servidor

Si ya no necesitas el servicio, elimina el servidor SSH y sus archivos asociados:

sudo apt remove openssh-server

Conclusión

Este artículo presenta una guía paso a paso sobre cómo instalar y configurar SSH en Ubuntu 22.04, y describe cómo editar el archivo de configuración principal para mejorar la seguridad. Esperamos que esta guía te ayude a establecer una conexión remota segura con tu servidor Ubuntu.

Para saber más sobre claves SSH, haz clic aquí.

Sistema Ubuntu Protocolo SSH seguro
26.06.2025
Reading time: 8 min

Similares

Sistema Ubuntu

Configuración de un servidor DNS BIND

El DNS (Domain Name System) es un sistema en el que todos los nombres de dominio de los servidores están organizados en una jerarquía específica. ¿Por qué lo necesitamos? Imagina que necesitas conectarte a un dispositivo con la dirección IP 91.206.179.207. Podrías introducir esta dirección en la línea de comandos para obtener la información necesaria, pero recordar muchas combinaciones numéricas de este tipo es muy difícil. Por ello, se crearon servidores especiales para convertir los nombres de dominio en direcciones IP. Así, cuando introduces hostman.com en la barra de búsqueda del navegador, los datos de la solicitud se envían a un servidor DNS, que busca coincidencias en su base de datos. El servidor DNS devuelve la dirección IP necesaria a tu dispositivo y solo entonces el navegador accede directamente al recurso. Configurar tu propio DNS permite una configuración del sistema más flexible y precisa, y evita la dependencia de terceros. En este artículo veremos cómo configurar DNS utilizando el servidor de nombres BIND en Ubuntu. Términos Zona: Parte de la jerarquía DNS alojada en un servidor DNS. Define los límites dentro de los cuales un servidor o grupo de servidores es responsable. Servidores raíz: Servidores DNS que contienen información sobre los dominios de nivel superior (.ru, .com, etc.). Dominio: Parte con nombre de la jerarquía DNS, un nodo específico que puede incluir otros nodos. Las direcciones DNS se leen de derecha a izquierda y comienzan con un punto, con los dominios separados también por puntos. Por ejemplo, el dominio poddomen.domen.ru debe leerse como .ru.domen.poddomen. Normalmente, el nombre de dominio refleja la estructura de la jerarquía DNS, pero el punto final se omite. FQDN (Fully Qualified Domain Name): Nombre de dominio completo que incluye todos los dominios superiores. Registro de recursos (Resource Record): Unidad de almacenamiento de información, básicamente un registro que vincula un nombre con información de servicio. Consta de: Nombre (NAME): El nombre o la dirección IP propietaria de la zona Time to Live (TTL): Tiempo durante el cual un registro se almacena en la caché DNS antes de eliminarse Clase (CLASS): Tipo de red, normalmente IN (Internet) Tipo (TYPE): Finalidad del registro Datos (DATA): Información adicional Registros de recursos comunes Registro A: Asocia un nombre de host con una dirección IPv4. Cada interfaz de red solo puede tener un registro A. website.com.              520    IN     A      91.206.179.207 Registro AAAA: Igual que el registro A, pero para IPv6. CNAME: Registro de nombre canónico, un alias de un nombre real para redirección. MX: Especifica los servidores de correo del dominio. El campo NAME contiene el dominio de destino y el campo DATA contiene la prioridad y el host que recibe el correo. website.com.             17790   IN      MX      10 mx.website.com. website.com.             17790   IN      MX      20 mx2.website.com. NS: Apunta al servidor DNS que atiende el dominio. PTR: Mapea direcciones IP a nombres de dominio (resolución inversa). SOA: Describe la configuración principal de la zona. SRV: Contiene direcciones de servidores que proporcionan servicios internos del dominio, como Jabber. Requisitos Para seguir las instrucciones de este artículo, necesitas al menos dos servidores Ubuntu en el mismo centro de datos. Puedes solicitar cualquiera de estos servidores en Hostman. Necesitaremos dos servidores Ubuntu 20.04, que actuarán como servidores DNS primario y secundario, ns1 y ns2 respectivamente. Además, habrá servidores adicionales que utilizarán los servidores DNS configurados. Debes tener privilegios de superusuario en cada servidor. Instalación de BIND en los servidores DNS Utilizaremos bind9 como servidor DNS. Instala el paquete bind9 desde el repositorio de Linux: sudo apt update && sudo apt upgrade -y sudo apt install bind9 También se recomienda instalar herramientas de monitorización de red: sudo apt install dnsutils Después de la instalación, inicia el servicio bind9: sudo service bind9 start El archivo principal de configuración del servidor es /etc/bind/named.conf. Describe la configuración general y normalmente se divide en varios archivos para mayor comodidad. named.conf.options Este archivo contiene los parámetros generales del servidor: options {         dnssec-validation auto;         auth-nxdomain no;         directory "/var/cache/bind";         recursion no; # deshabilita consultas recursivas al servidor         listen-on {                      172.16.0.0/16;                       127.0.0.0/8;             };         forwarders {              172.16.0.1;             8.8.8.8;           }; }; Para comprobar que todo está correcto, utiliza named-checkconf: sudo named-checkconf Si no hay errores, el servidor BIND comenzará a funcionar. Servidor DNS primario El servidor DNS primario almacena la copia principal del archivo de zona. Todas las zonas se guardarán en el directorio /etc/bind/master-zones. Crea el directorio: sudo mkdir /etc/bind/master-zones Crea un archivo para describir la zona: sudo touch /etc/bind/master-zones/test.example.com.local.zone Y añade los registros SOA, NS y A: $ttl 3600  $ORIGIN test.example.com.  test.example.com.               IN              SOA  (       ns.test.example.com.     abuse.test.example.com.                                   2022041201                                  10800                                  1200                                  604800                                  3600   )  @                               IN              NS              ns.test.example.com.  @                               IN              NS              ns2.test.example.com. @                               IN              A                172.16.101.3  ns                              IN               A                172.16.0.5  ns2                            IN              A                172.16.0.6 Comprueba la zona con named-checkzone: sudo named-checkzone test.example.com. /etc/bind/master-zones/test.example.com.local.zone named.conf.local Este archivo también se incluye en la configuración principal. Aquí definimos las zonas locales: zone "test.example.com." {                 type master;                 file "/etc/bind/master-zones/test.example.com.local.zone"; }; Comprueba la configuración y reinicia bind9 (la opción -z verifica los archivos de zona): sudo named-checkconf sudo named-checkconf -z sudo service bind9 restart sudo service bind9 status Configuración de Views Las views permiten gestionar de forma flexible la resolución de nombres desde diferentes subredes. Añade lo siguiente en /etc/bind/named.conf: include "/etc/bind/named.conf.options"; acl "local" { 172.16.0.0/16; }; view "local" {                 include "/etc/bind/named.conf.local";                 match-clients { local; }; }; Reinicia bind9: sudo service bind9 restart Tras reiniciar el servidor, puedes solicitar el registro SOA del servidor 172.16.0.5 desde otro equipo de la red local: dig @172.16.0.5 -t SOA test.example.com En este punto, la configuración del servidor DNS primario está completa. Conclusión En esta guía hemos configurado DNS en un servidor con Ubuntu utilizando el paquete bind9. Tras seguir todos los pasos, los dos servidores DNS configurados pueden utilizarse para la resolución de nombres dentro de la red. Para usar estos servidores DNS personalizados, configura tus otros servidores para que utilicen 172.16.0.5 y 172.16.0.6 como servidores DNS. Esta configuración puede servir como base para futuras mejoras, como la configuración de un servidor de correo.
19 February 2026 · 9 min to read
Entorno Docker

Instalar y usar Docker Compose en Ubuntu: guía completa

Docker Compose ha cambiado de forma fundamental la manera en que los desarrolladores trabajan con aplicaciones contenerizadas, especialmente al coordinar servicios que dependen entre sí. Esta herramienta reemplaza la gestión manual de contenedores por un flujo de trabajo estructurado basado en YAML, lo que permite a los equipos definir arquitecturas completas de aplicaciones en un único archivo de configuración. En entornos Ubuntu, esto se traduce en despliegues reproducibles, escalado simplificado y una reducción del esfuerzo operativo. Esta guía ofrece una perspectiva actualizada sobre la instalación y el uso de Docker Compose, proporcionando una visión más profunda de su implementación práctica. Requisitos previos Antes de comenzar este tutorial, asegúrate de contar con lo siguiente: Implementar una instancia de servidor cloud con Ubuntu en Hostman. Disponer de una cuenta de usuario con privilegios sudo o acceso root para instalar paquetes y administrar Docker. Tener Docker instalado y en ejecución en el servidor, ya que Docker Compose funciona sobre Docker Engine. Por qué Docker Compose es importante Las aplicaciones modernas suelen estar compuestas por múltiples componentes interconectados, como APIs, bases de datos y capas de caché. Gestionar estos elementos individualmente mediante comandos de Docker se vuelve complicado a medida que aumenta la complejidad. Docker Compose soluciona esto permitiendo declarar todos los servicios, redes y requisitos de almacenamiento en un archivo docker-compose.yml. Este enfoque garantiza la consistencia entre entornos, ya sea en una máquina Ubuntu local o en un servidor en la nube. Por ejemplo, una aplicación web compuesta por un backend en Node.js, una base de datos PostgreSQL y una caché Redis. Sin Docker Compose, cada componente requiere un comando docker run independiente con configuraciones de red precisas. Con Compose, estas relaciones se definen una sola vez, permitiendo iniciar y detener toda la aplicación con un solo comando. Instalación de Docker Compose Sigue estos pasos para instalar Docker Compose en tu sistema Ubuntu. Paso 1: Verificar que Docker esté instalado y en ejecución Docker Compose funciona como una extensión de Docker, por lo que primero debes comprobar su estado: sudo systemctl status docker Si el servicio no está activo, inícialo con: sudo systemctl start docker Paso 2: Actualizar los paquetes del sistema Actualiza las listas de paquetes para asegurarte de tener acceso a las versiones más recientes del software: sudo apt-get update Paso 3: Instalar utilidades básicas Para una comunicación segura con los repositorios de Docker, se requieren los siguientes paquetes: sudo apt-get install ca-certificates curl Paso 4: Configurar la clave GPG de Docker Autentica los paquetes de Docker añadiendo su clave criptográfica: sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc Este paso garantiza que los paquetes no hayan sido modificados durante la descarga. Paso 5: Añadir el repositorio de Docker Agrega el repositorio correspondiente a tu versión de Ubuntu: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null El comando detecta automáticamente la versión del sistema operativo mediante VERSION_CODENAME. Paso 6: Instalar el plugin de Docker Compose Actualiza los repositorios e instala la extensión Compose: sudo apt update sudo apt-get install docker-compose-plugin Paso 7: Validar la instalación Confirma que la instalación se haya realizado correctamente: docker compose version Salida de ejemplo: Docker Compose version v2.33.0 Crear un proyecto práctico con Docker Compose Para demostrar las capacidades de Docker Compose, vamos a desplegar un servidor web utilizando Nginx. 1. Inicializar el directorio del proyecto Crea un espacio de trabajo dedicado: mkdir ~/compose-demo && cd ~/compose-demo 2. Definir los servicios en docker-compose.yml Crea el archivo de configuración: nano docker-compose.yml Inserta el siguiente contenido: services:   web:     image: nginx:alpine     ports:       - "8080:80"     volumes:       - ./app:/usr/share/nginx/html Explicación: services: Elemento raíz que define los contenedores web: Nombre personalizado del servicio image: Imagen de Nginx basada en Alpine con menor consumo de recursos ports: Mapea el puerto 8080 del host al puerto 80 del contenedor volumes: Sincroniza el directorio local app con la raíz web del contenedor 3. Crear el contenido web Construye la estructura HTML: mkdir app nano app/index.html Añade el siguiente contenido: <!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8">   <title>Docker Compose Test</title> </head> <body>   <h1>Hello from Docker Compose!</h1> </body> </html> Orquestación de contenedores: del inicio al apagado 1. Iniciar los servicios en segundo plano docker compose up -d Docker Compose descargará automáticamente la imagen de Nginx si no está disponible y configurará la red. 2. Verificar el estado de los contenedores docker compose ps -a 3. Acceder a la aplicación web Abre http://localhost:8080 localmente o http://<SERVER_IP>:8080 en servidores remotos. La página de prueba debería mostrarse correctamente. 4. Diagnosticar problemas mediante logs Si la página no carga o surgen errores, revisa los logs del contenedor: docker compose logs web 5. Apagado y limpieza ordenados Detener los contenedores temporalmente: docker compose stop Eliminar todos los recursos del proyecto: docker compose down Referencia de comandos: más allá de lo básico Estos comandos amplían la gestión de contenedores: docker compose up --build – Reconstruir las imágenes antes de iniciar los contenedores docker compose pause – Pausar contenedores sin finalizarlos docker compose top – Mostrar los procesos en ejecución dentro de los contenedores docker compose config – Validar y mostrar la configuración final docker compose exec – Ejecutar comandos dentro de contenedores activos(por ejemplo, docker compose exec web nginx -t para probar la configuración de Nginx) Conclusión Docker Compose transforma la orquestación de múltiples contenedores de una tarea manual y compleja en un proceso estructurado, repetible y eficiente. Siguiendo los pasos descritos—instalando Docker Compose, definiendo servicios en YAML y utilizando los comandos esenciales—podrás gestionar aplicaciones complejas con confianza.
14 January 2026 · 6 min to read
Sistema Ubuntu

Cómo instalar PHP y PHP-FPM en Ubuntu 24.04

En esta guía te explicamos cómo instalar PHP y PHP-FPM en Ubuntu 24.04. PHP (acrónimo de Hypertext Preprocessor) es un lenguaje ampliamente utilizado y de código abierto, principalmente en el desarrollo web. PHP-FPM es la implementación FastCGI recomendada para PHP, especialmente útil para sitios web con mucho tráfico. Al final de esta guía, tendrás PHP funcionando en tu servidor. Si aún no has creado un servidor, consulta primero nuestra guía para instalar Ubuntu en uno. Requisitos previos Antes de empezar, asegúrate de contar con lo siguiente: Ubuntu 24.04 LTS instalado en el servidor Una cuenta de usuario con acceso sudo Conocimientos básicos de la línea de comandos Conexión a Internet estable para descargar los paquetes necesarios Actualiza tu sistema ejecutando: sudo apt updatesudo apt upgrade Instalar Apache Instala el servidor web Apache con el siguiente comando: sudo apt install apache2 Instalar PHP Comencemos instalando el paquete de PHP en Ubuntu 24.04: sudo apt install php Este comando instalará el paquete principal de PHP, la interfaz de línea de comandos y bibliotecas comunes.Verifica que PHP se haya instalado correctamente: php -v Instalar extensiones de PHP Las extensiones permiten ampliar las funcionalidades de PHP. Para instalar algunas comunes, ejecuta: sudo apt install php-curl php-mbstring php-xml Descripción breve de cada una: php-mysql: Permite la conexión a bases de datos MySQL php-gd: Permite manipular imágenes php-curl: Permite comunicarse con servidores externos php-mbstring: Soporte para cadenas multibyte php-xml: Soporte para procesamiento XML php-zip: Soporte para archivos ZIP Puedes buscar e instalar otras extensiones que necesites con: apt-cache search php- Instalar y configurar PHP-FPM PHP-FPM es esencial para sitios web con alto tráfico. Para instalarlo y configurarlo: Instala el paquete: sudo apt install php-fpm Inicia el servicio PHP-FPM (la versión puede variar según la instalación): sudo systemctl start php8.3-fpm Activa el inicio automático con el sistema: sudo systemctl enable php8.3-fpm Verifica que esté activo: systemctl status php8.3-fpm Si todo está correcto, verás un mensaje que indica que el servicio está "Active (running)", lo que confirma que PHP-FPM está funcionando como se espera. Probar PHP y PHP-FPM Para confirmar que PHP y PHP-FPM funcionan correctamente, crea un archivo de prueba y accede a él desde el navegador web. Supongamos que usas Apache en este ejemplo: Generar archivo de información PHP. Usa la función phpinfo() para mostrar la configuración activa de PHP: mkdir -p /var/www/htmlecho "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php Configurar Apache para PHP-FPM. Asegúrate de que Apache sea compatible con PHP-FPM. Edita el archivo de configuración de Apache (normalmente en /etc/apache2/sites-available/000-default.conf) e inserta lo siguiente: <FilesMatch \.php$>   SetHandler "proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost/"</FilesMatch> Recuerda ajustar la versión de PHP y la ruta del socket según la configuración de tu servidor. Activar PHP y PHP-FPM. Habilita los módulos necesarios de Apache: sudo apt install libapache2-mod-phpsudo a2enmod proxy_fcgi setenvif Reiniciar Apache. Aplica los cambios reiniciando Apache: sudo systemctl restart apache2 Acceder a la página de información de PHP. Abre tu navegador y accede a: http://tu_direccion_ip/info.php Sustituye tu_direccion_ip por la dirección IP real o el dominio del servidor. Deberías ver los detalles de la instalación de PHP si todo Si todo está correctamente configurado, verás los detalles de la instalación de PHP en la página que se abre. Instalar múltiples versiones de PHP Para ciertos proyectos puede ser necesario ejecutar diferentes aplicaciones que requieran versiones específicas de PHP. Así puedes gestionar varias versiones de PHP en Ubuntu 24.04: Primero, añade el repositorio de PHP: sudo apt install software-properties-commonsudo add-apt-repository ppa:ondrej/php && sudo apt update Instala las versiones que necesites: sudo apt install php8.1 php8.1-fpm Para seleccionar la versión que deseas usar por defecto: sudo update-alternatives --set php /usr/bin/php8.1 Si usas varias versiones de PHP, asegúrate de que el servidor web apunte al socket adecuado de PHP-FPM para cada versión. Buenas prácticas de seguridad para PHP y PHP-FPM Como desarrollador web, sabes lo importante que es incorporar tanto PHP como PHP-FPM en aplicaciones web seguras y robustas. En esta sección, te presentamos varias prácticas recomendadas de seguridad que deberías aplicar al usar PHP y PHP-FPM. 1. Mantén PHP y PHP-FPM actualizados Realiza actualizaciones periódicas para eliminar vulnerabilidades conocidas y mejorar la seguridad general. Comprueba regularmente si hay nuevas versiones disponibles y actualiza tu sistema tan pronto como sea posible. 2. Configura PHP de forma segura Desactiva funciones innecesarias o peligrosas como exec, shell_exec y eval en el archivo php.ini. Usa la directiva open_basedir para limitar el acceso de PHP a directorios específicos. Establece display_errors = Off en producción para no mostrar errores a los usuarios. Limita el tamaño máximo de subida de archivos y el tiempo de ejecución de scripts. Asegúrate de que PHP se ejecute bajo una cuenta de usuario restringida y dedicada con los mínimos permisos necesarios. Mantén siempre PHP actualizado a su versión estable más reciente para corregir vulnerabilidades. 3. Usa un sistema seguro de manejo de errores Durante el desarrollo, puedes mostrar errores para depurar. Pero en producción, desactiva display_errors y habilita log_errors = On para que los errores se registren en un archivo sin mostrarse al usuario final. 4. Implementa validación de entradas Valida todas las entradas del usuario y evita ejecutar datos sin validar. Utiliza sentencias preparadas para protegerte contra inyecciones SQL. 5. Asegura la configuración de PHP-FPM PHP-FPM debe ejecutarse con un usuario que no sea el predeterminado y que tenga privilegios mínimos. También debes limitar el acceso al socket o puerto de PHP-FPM únicamente a la aplicación web que lo necesite. 6. Activa la directiva open_basedir Esta directiva restringe el acceso de PHP solo a los directorios especificados. Si se intenta acceder a un directorio fuera de los permitidos, PHP bloqueará automáticamente la acción. 7. Usa HTTPS Protege todas las conexiones web asegurándote de que tus aplicaciones solo funcionen sobre HTTPS. Esta es la forma más eficaz de prevenir ataques de interceptación y otros métodos comunes de hackeo. Conclusión Con esta guía, has instalado y configurado correctamente PHP y PHP-FPM en Ubuntu 24.04. Tu servidor ahora está listo para ejecutar aplicaciones web dinámicas. No olvides mantener el sistema actualizado para garantizar la seguridad y el rendimiento. ¿Te fue útil esta guía? Descubre nuestros servidores en la nube y lleva tu infraestructura al siguiente nivel.
10 July 2025 · 6 min to read

¿Necesita ayuda para
elegir un producto?

Nuestros expertos están disponibles para ayudarle a encontrar la solución cloud
adecuada para su empresa, incluso si no sabe por dónde empezar.
Hostman's Support