Comments

March 25, 2025

Cómo agregar espacio de intercambio en Ubuntu 22.04

Introducción

Una forma de evitar errores de memoria insuficiente en las aplicaciones es añadir espacio de intercambio al servidor. En esta guía, explicaremos cómo añadir un archivo de intercambio a un servidor Ubuntu 22.04.

¿Qué es Swap?

El espacio de intercambio (swap) es una porción del almacenamiento del disco duro que el sistema operativo reserva para almacenar temporalmente los datos que ya no puede almacenar en la RAM. Esto permite aumentar la cantidad de información que el servidor puede almacenar en su memoria de trabajo, con algunas salvedades. El espacio de intercambio del disco duro se utiliza principalmente cuando ya no hay suficiente espacio en la RAM para almacenar los datos de las aplicaciones en uso.

La información escrita en el disco será significativamente más lenta que la almacenada en la RAM, pero el sistema operativo preferirá mantener los datos de las aplicaciones en ejecución en memoria y usar la memoria de intercambio (swap) para los datos más antiguos. En general, tener espacio de intercambio como respaldo cuando la RAM del sistema se agote puede ser una buena protección contra excepciones de falta de memoria en sistemas con almacenamiento no SSD disponible.

Paso 1: Verificación del sistema para obtener información de intercambio

Antes de comenzar, podemos comprobar si el sistema ya tiene espacio de intercambio disponible. Es posible tener varios archivos o particiones de intercambio, pero generalmente uno debería ser suficiente.

Podemos ver si el sistema tiene algún swap configurado escribiendo:

sudo swapon --show

Si no obtiene ningún resultado, significa que su sistema no tiene espacio de intercambio disponible actualmente.

Puedes verificar que no haya ningún intercambio activo usando la freeutilidad:

free -h

Output              total        used        free      shared  buff/cache   available
Mem:          981Mi       122Mi       647Mi       0.0Ki       211Mi       714Mi
Swap:            0B          0B          0B

Como puede ver en la fila Swap de la salida, no hay ningún swap activo en el sistema.

Paso 2: Verificar el espacio disponible en la partición del disco duro

Antes de crear nuestro archivo de intercambio, comprobaremos el uso actual del disco para asegurarnos de que tengamos suficiente espacio. Para ello, introduzca:

df -h

OutputFilesystem      Size  Used Avail Use% Mounted on
udev            474M     0  474M   0% /dev
tmpfs            99M  932K   98M   1% /run
/dev/vda1        25G  1.4G   23G   7% /
tmpfs           491M     0  491M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           491M     0  491M   0% /sys/fs/cgroup
/dev/vda15      105M  3.9M  101M   4% /boot/efi
/dev/loop0       55M   55M     0 100% /snap/core18/1705
/dev/loop1       69M   69M     0 100% /snap/lxd/14804
/dev/loop2       28M   28M     0 100% /snap/snapd/7264
tmpfs            99M     0   99M   0% /run/user/1000

En este caso, el dispositivo /en la Mounted oncolumna es nuestro disco. Tenemos mucho espacio disponible (solo se utilizan 1,4 GB). Tu uso probablemente será diferente.

Aunque existen diversas opiniones sobre el tamaño adecuado del espacio de intercambio, en realidad depende de tus preferencias personales y de los requisitos de tu aplicación. Generalmente, un buen punto de partida es una cantidad igual o el doble de la RAM de tu sistema. Otra regla general es que cualquier cantidad superior a 4 GB de espacio de intercambio probablemente sea innecesaria si solo la usas como RAM de reserva.

Paso 3: Creación de un archivo de intercambio

Ahora que conocemos el espacio disponible en el disco duro, podemos crear un archivo de intercambio en nuestro sistema de archivos. Asignaremos un archivo del tamaño que queramos llamar en nuestro directorio swapfileraíz ( )./

La mejor manera de crear un archivo de intercambio es con el fallocateprograma. Este comando crea instantáneamente un archivo del tamaño especificado.

Dado que el servidor de nuestro ejemplo tiene 1 GB de RAM, crearemos un archivo de 1 GB en esta guía. Ajústelo según las necesidades de su servidor:

sudo fallocate -l 1G /swapfile

Podemos verificar que se reservó la cantidad correcta de espacio escribiendo:

ls -lh /swapfile

-rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile

Nuestro archivo ha sido creado con la cantidad correcta de espacio reservado.

Paso 4 – Habilitación del archivo de intercambio

Ahora que tenemos disponible un archivo del tamaño correcto, necesitamos convertirlo en espacio de intercambio.

Primero, necesitamos restringir los permisos del archivo para que solo los usuarios con privilegios de root puedan leer su contenido. Esto impide que los usuarios normales accedan al archivo, lo que tendría importantes consecuencias para la seguridad.

Haga que el archivo sólo sea accesible para root escribiendo:

sudo chmod 600 /swapfile

Verifique el cambio de permisos escribiendo:

ls -lh /swapfile

Output-rw------- 1 root root 1.0G Apr 25 11:14 /swapfile

Como puede ver, solo el usuario root tiene habilitadas las funciones de lectura y escritura.

Ahora podemos marcar el archivo como espacio de intercambio escribiendo:

sudo mkswap /swapfile

OutputSetting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf

Luego de marcar el archivo, podemos habilitar el archivo de intercambio, permitiendo que nuestro sistema comience a usarlo:

sudo swapon /swapfile

Verifique que el intercambio esté disponible escribiendo:

sudo swapon --show

OutputNAME      TYPE  SIZE USED PRIO
/swapfile file 1024M   0B   -2

Podemos verificar freenuevamente la salida de la utilidad para corroborar nuestros hallazgos:

free -h

Output              total        used        free      shared  buff/cache   available
Mem:          981Mi       123Mi       644Mi       0.0Ki       213Mi       714Mi
Swap:         1.0Gi          0B       1.0Gi

Nuestro intercambio se ha configurado correctamente y nuestro sistema operativo comenzará a usarlo según sea necesario.

Paso 5 – Hacer que el archivo de intercambio sea permanente

Nuestros cambios recientes han habilitado el archivo de intercambio para la sesión actual. Sin embargo, si reiniciamos, el servidor no conservará la configuración de intercambio automáticamente. Podemos cambiar esto añadiendo el archivo de intercambio a nuestro /etc/fstabarchivo.

Haga una copia de seguridad del /etc/fstabarchivo en caso de que algo salga mal:

sudo cp /etc/fstab /etc/fstab.bak

Agregue la información del archivo de intercambio al final de su /etc/fstabarchivo escribiendo:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

A continuación revisaremos algunas configuraciones que podemos actualizar para ajustar nuestro espacio de intercambio.

Paso 6 – Ajuste de la configuración de intercambio

Hay algunas opciones que puedes configurar y que tendrán un impacto en el rendimiento de tu sistema al trabajar con intercambio.

Ajuste de la propiedad de swappiness

Este swappinessparámetro configura la frecuencia con la que el sistema intercambia datos de la RAM al espacio de intercambio. Este valor, entre 0 y 100, representa un porcentaje.

Con valores cercanos a cero, el kernel no intercambiará datos con el disco a menos que sea absolutamente necesario. Recuerde que las interacciones con el archivo de intercambio son costosas, ya que tardan mucho más que las interacciones con la RAM y pueden causar una reducción significativa del rendimiento. Indicarle al sistema que no dependa demasiado del archivo de intercambio generalmente lo hará más rápido.

Los valores cercanos a 100 intentarán almacenar más datos en la memoria de intercambio para liberar más espacio de RAM. Dependiendo del perfil de memoria de sus aplicaciones o del uso que le dé al servidor, esto podría ser mejor en algunos casos.

Podemos ver el valor de swappiness actual escribiendo:

cat /proc/sys/vm/swappiness

Output60

Para una computadora de escritorio, un valor de swappiness de 60 no es un mal valor. Para un servidor, conviene acercarlo a 0.

Podemos establecer el swappiness a un valor diferente usando el sysctlcomando.

Por ejemplo, para establecer el swappiness a 10, podríamos escribir:

sudo sysctl vm.swappiness=10

Outputvm.swappiness = 10

Esta configuración se mantendrá hasta el próximo reinicio. Podemos configurar este valor automáticamente al reiniciar añadiendo la siguiente línea a nuestro /etc/sysctl.confarchivo:

sudo nano /etc/sysctl.conf

En la parte inferior puedes agregar: /etc/sysctl.conf

vm.swappiness=10

Guarde y cierre el archivo cuando haya terminado.

Ajuste de la configuración de presión de caché

Otro valor relacionado que podrías querer modificar es el vfs_cache_pressure. Esta configuración configura con qué frecuencia el sistema almacenará en caché la información de inodos y entradas de entrada sobre otros datos.

Básicamente, se trata de datos de acceso al sistema de archivos. Su consulta suele ser muy costosa y se solicita con mucha frecuencia, por lo que es excelente almacenarlos en caché. Puede ver el valor actual consultando procde nuevo el sistema de archivos:

cat /proc/sys/vm/vfs_cache_pressure

Output100

Con la configuración actual, nuestro sistema elimina la información de inodos de la caché demasiado rápido. Podemos configurarlo con un valor más conservador, como 50, escribiendo:

sudo sysctl vm.vfs_cache_pressure=50

Outputvm.vfs_cache_pressure = 50

Nuevamente, esto solo es válido para nuestra sesión actual. Podemos cambiarlo añadiéndolo a nuestro archivo de configuración, como hicimos con la configuración de intercambio:

sudo nano /etc/sysctl.conf

En la parte inferior, agregue la línea que especifica su nuevo valor: /etc/sysctl.conf

vm.vfs_cache_pressure=50

Guarde y cierre el archivo cuando haya terminado.

Conclusión

Seguir los pasos de esta guía le dará un respiro en casos que, de otro modo, provocarían excepciones de memoria insuficiente. El espacio de intercambio puede ser increíblemente útil para evitar algunos de estos problemas comunes.

Si se encuentra con errores OOM (sin memoria) o descubre que su sistema no puede utilizar las aplicaciones que necesita, la mejor solución es optimizar las configuraciones de sus aplicaciones o actualizar su servidor.

Stephen Dove
Comments

March 22, 2025

Cómo instalar una interfaz gráfica de usuario en un servidor Ubuntu: guía paso a paso

Introduccion

Ubuntu Server está diseñado principalmente para funcionar sin interfaz gráfica, lo que lo hace ligero y optimizado para su uso en servidores. Sin embargo, en ciertas situaciones, una GUI puede simplificar la administración del sistema, especialmente para usuarios que no están familiarizados con la línea de comandos. En este tutorial, te guiaré en el proceso de instalación de una GUI en Ubuntu Server .

Prerrequisitos

Antes de continuar con la instalación, asegúrese de tener lo siguiente:

  1. El último servidor Ubuntu instalado .
  2. Una cuenta de usuario con sudo privilegios .
  3. Una conexión a Internet activa.

Instalación de una interfaz gráfica de usuario (GUI) en el servidor Ubuntu

Paso 1: Actualice su sistema

Antes de instalar cualquier software, es fundamental asegurarse de que su sistema esté actualizado. Ejecute los siguientes comandos para actualizar las listas de paquetes y actualizar los paquetes obsoletos:

sudo apt update
sudo apt upgrade -y

Esto garantiza que tenga instalados los últimos parches de seguridad y actualizaciones del sistema.

Paso 2: Elige un entorno de escritorio

Ubuntu ofrece diversos entornos de escritorio que se adaptan a diferentes necesidades y preferencias de rendimiento. Estos son algunos de los más populares:

  • GNOME: el entorno de escritorio predeterminado para Ubuntu Desktop.
  • Xfce (Xubuntu): ligero y eficiente en el uso de recursos.
  • LXDE (Lubuntu): Extremadamente liviano, ideal para hardware de bajas especificaciones.
  • KDE (Kubuntu): un entorno rico en características que podría utilizar más recursos.

En este tutorial, nos centraremos en la instalación de GNOME y Xfce, pero puedes elegir cualquiera de los otros reemplazando el nombre del paquete en los siguientes pasos.

Paso 3: Instalar el entorno de escritorio

Instalación de GNOME

Si prefiere la experiencia completa del escritorio Ubuntu, puede instalar el entorno de escritorio GNOME. Ejecute el siguiente comando:

sudo apt install ubuntu-desktop -y

Esto instalará el escritorio GNOME completo, junto con todas sus aplicaciones asociadas, que pueden consumir muchos recursos.

Instalación de Xfce

Si necesitas una opción más ligera, Xfce es una excelente opción. Para instalarlo, ejecuta:

sudo apt install xubuntu-core -y

Esto instala el entorno de escritorio Xfce sin aplicaciones innecesarias, lo que lo convierte en una opción más minimalista y eficiente para los servidores.

Instalación de otros escritorios

Puede instalar otros entornos de escritorio como LXDE o KDE ejecutando:

# For LXDE
sudo apt install lubuntu-core -y


# For KDE Plasma
sudo apt install kubuntu-desktop -y

Paso 4: Instalar un administrador de pantalla

Un administrador de pantalla se encarga de iniciar el entorno de escritorio. Ubuntu usa GDM (Administrador de Pantalla de GNOME) por defecto, pero puedes instalar otros como LightDM para una opción más ligera, especialmente si usas Xfce o LXDE.

Para instalar LightDM, ejecute:

sudo apt install lightdm -y

Durante la instalación, se le pedirá que seleccione un administrador de pantalla predeterminado. Si no está seguro, LightDM es una buena opción, especialmente para entornos ligeros como Xfce.

Paso 5: Habilite la GUI para que se inicie automáticamente

Una vez completada la instalación, deberá configurar su sistema para que inicie la GUI automáticamente.

Primero, verifique el objetivo predeterminado del sistema, que determina qué servicios se inician cuando se inicia el sistema:

systemctl get-default

Por defecto, debería devolver multi-user.target, que corresponde al modo no gráfico. Para cambiar al modo gráfico, ejecute:

sudo systemctl set-default graphical.target

Ahora, su servidor se iniciará en la interfaz gráfica automáticamente en el próximo inicio.

Paso 6: Reiniciar el sistema

Una vez que haya instalado el entorno de escritorio y lo haya configurado para que se inicie automáticamente, reinicie su sistema para aplicar los cambios:

sudo reboot

Después de reiniciar, debería aparecer la pantalla de inicio de sesión del entorno de escritorio que instaló (GNOME, Xfce, etc.).

Paso 7: Conectarse a la GUI (opcional)

Si administra su servidor de forma remota, puede usar una conexión de escritorio remoto para acceder a la interfaz gráfica de usuario. Estas son algunas opciones populares:

Consola en la nube : Tu proveedor de nube probablemente ya cuente con una función de consola que te permite conectarte a tu servidor. Si usas servidores Cherry , selecciona tu máquina virtual en el portal del cliente y haz clic en Consolepara acceder a la consola de tu servidor.

Luego puede iniciar sesión a través de la GUI y acceder a su escritorio:

VNC : Una opción popular para conexiones de escritorio remoto. Para instalar un servidor VNC, ejecute:

sudo apt install tightvncserver -y

RDP (Protocolo de Escritorio Remoto) : RDP es un protocolo de Microsoft para conexiones remotas, compatible con Ubuntu. Para instalar un servidor RDP, ejecute:

sudo apt install xrdp -y

Después de instalar su servidor de escritorio remoto preferido, configúrelo según sus necesidades y conéctese usando su máquina local.

Es posible que necesite configurar su firewall para permitir el acceso a su servidor VNC o RDP.

Paso 8: Administrar la GUI

Si alguna vez desea volver a un entorno no gráfico, puede cambiar el objetivo predeterminado a multi-user.target:

sudo systemctl set-default multi-user.target

Esto garantizará que su servidor arranque en la interfaz

de línea de comandos (CLI) de manera predeterminada.

#Conclusión

En este tutorial, explicamos cómo instalar una interfaz gráfica de usuario (GUI) en Ubuntu Server. Esto simplifica las tareas para quienes prefieren una interfaz gráfica. Ya sea que elija GNOME, con sus numerosas funciones, o Xfce, un sistema ligero, ahora sabe cómo instalar, configurar y administrar una GUI en su servidor. Tenga en cuenta que usar una GUI consume más recursos del sistema y puede afectar el rendimiento, especialmente en servidores de producción.

Stephen Dove
Comments

March 21, 2025

Cómo instalar Drupal en un servidor Ubuntu 14.04 con Apache

Introducción

Drupal es un popular sistema de gestión de contenido (CMS) utilizado para gestionar algunos de los blogs y sitios web más grandes de internet. Gracias a la estabilidad de su base, la adaptabilidad de la plataforma y su activa comunidad, Drupal sigue siendo una opción popular tras más de una década en el mercado.

En esta guía, explicaremos cómo instalar Drupal en un servidor Ubuntu 14.04. Usaremos Apache para nuestro sitio, ya que es la configuración recomendada por el equipo de Drupal.

Prerrequisitos

Antes de comenzar con esta guía, necesitará un servidor Ubuntu 14.04 con una configuración básica completa. Siga nuestra guía de configuración inicial del servidor Ubuntu 14.04 para configurar un usuario no root con privilegios de sudo.

También necesitará tener Apache, PHP y MySQL configurados en su servidor. Puede aprender a configurarlos siguiendo nuestra guía sobre cómo instalar LAMP en Ubuntu 14.04 .

Una vez que haya cumplido con los requisitos anteriores, continúe con esta guía.

Antes de obtener los archivos de Drupal e instalarlos en nuestro directorio web, debemos preparar nuestro sistema. Si bien Apache, PHP y MySQL ya están instalados, necesitamos realizar algunos cambios adicionales y ajustes en cada uno para nuestra instalación.

Configurar un usuario y una base de datos MySQL para Drupal

Lo primero que haremos es configurar un usuario y una base de datos MySQL para nuestra instalación de Drupal. Es importante configurar un usuario y una base de datos dedicados por razones de seguridad.

Para comenzar, inicie sesión en MySQL:

mysql -u root -p

Se le solicitará la contraseña del usuario root de MySQL que configuró durante la instalación de ese software.

Una vez autenticado, accederá a un mensaje de MySQL. Primero, cree una base de datos para su instalación de Drupal. drupalPara simplificar, la llamaremos:

CREATE DATABASE drupal;

A continuación, debe crear un usuario que Drupal pueda usar para conectarse a la base de datos. En esta guía, lo llamaremos usuario drupaluser. Seleccione una contraseña segura para reemplazar la del bloque a continuación:

CREATE USER drupaluser@localhost IDENTIFIED BY 'password';

Ahora tenemos una base de datos y un usuario, pero este aún no tiene permiso para realizar ninguna acción en la base de datos. Podemos solucionarlo otorgándole permisos. Drupal necesita diversos permisos para funcionar correctamente. A continuación, se muestra una buena selección que permitirá que el software funcione sin exponer nuestra base de datos innecesariamente:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost;

Su usuario ya tiene permiso para administrar la base de datos que creamos. Para implementar estos cambios ahora mismo, necesitamos vaciar la información de privilegios al disco:

FLUSH PRIVILEGES;

Ahora, podemos salir de nuestra sesión interactiva MySQL:

exit

Serás redirigido nuevamente a tu bashsesión.

Instalar módulos PHP y ajustar la configuración

A continuación, instalaremos algunos módulos PHP necesarios para la aplicación Drupal. Por suerte, se encuentran en los repositorios predeterminados de Ubuntu.

Actualice su caché de paquetes local e instálelos escribiendo:

sudo apt-get update
sudo apt-get install php5-gd php5-curl libssh2-php

También realizaremos algunos pequeños ajustes en nuestro archivo de configuración de PHP. Estos son recomendados por los desarrolladores de Drupal. Abra el archivo de configuración de Apache PHP con privilegios de sudo en su editor de texto:

sudo nano /etc/php5/apache2/php.ini

Busque la expose_phpdirectiva y la allow_url_fopendirectiva y configúrelas ambas en “Desactivado”:

. . .
expose_php = Off
. . .
allow_url_fopen = Off
. . .

Guarde y cierre el archivo cuando haya terminado.

Habilitar la funcionalidad de reescritura y archivos .htaccess en Apache

A continuación, debemos analizar Apache. Primero, queremos habilitar la función de reescritura. Esto permitirá que nuestro sitio Drupal modifique las URL a cadenas de texto legibles.

Los mod_rewritemódulos de Apache ya están instalados por defecto. Sin embargo, no están habilitados. Podemos activarlos escribiendo:

sudo a2enmod rewrite

Esto habilitará el módulo la próxima vez que se reinicie Apache. Antes de reiniciar Apache, debemos ajustar la configuración de nuestro host virtual para permitir el uso de un .htaccessarchivo. Este archivo contendrá las reglas de reescritura y se incluye por defecto en la instalación de Drupal.

Abra ahora el archivo virtualhost predeterminado:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Dentro del bloque “VirtualHost”, agregue un bloque de directorio que apunte a la raíz de nuestra web. Dentro de este bloque, establezca la AllowOverridedirectiva en “All”. También puede agregar una ServerNamedirectiva que apunte a su nombre de dominio y modificarla ServerAdminpara que refleje una dirección de correo electrónico válida:

<VirtualHost *:80>
    . . .
    ServerName  example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        AllowOverride All
    </Directory>
    . . .
</VirtualHost>

Guarde y cierre el archivo cuando haya terminado.

Ahora solo necesitamos reiniciar el servidor web para implementar nuestros cambios en Apache y PHP:

sudo service apache2 restart

Instalar los archivos de Drupal

Ahora que nuestro sistema está listo, podemos instalar Drupal en nuestra raíz web.

De hecho, primero descomprimiremos los archivos en nuestro directorio personal y luego los copiaremos a la ubicación correspondiente. Esto nos dará acceso inmediato a los archivos originales en caso de que algo salga mal o se eliminen accidentalmente posteriormente.

Vaya a la página de descarga de Drupal y consulte la última versión en la sección “Versiones recomendadas”. Haga clic derecho en el tar.gzenlace de la versión que le interese y seleccione “Copiar dirección del enlace” o cualquier opción similar que ofrezca su navegador.

De vuelta en su servidor, cambie a su directorio de inicio y use wgetel enlace que copió para descargar el archivo del proyecto:

cd ~
wget http://ftp.drupal.org/files/projects/drupal-7.32.tar.gz

Es probable que el enlace tenga un número de versión diferente al final. Una vez descargado el archivo, extraiga el directorio de la aplicación escribiendo:

tar xzvf drupal*

Ahora, acceda a la estructura de directorios recién extraída y use la rsyncutilidad para copiar de forma segura todos los archivos al directorio raíz web de su servidor. En este comando, usamos el punto para especificar el directorio actual. Esto es necesario para copiar algunos archivos ocultos que necesitamos:

cd drupal*
sudo rsync -avz . /var/www/html

Ahora tienes la versión original de los archivos en un directorio dentro de tu carpeta de inicio por si necesitas consultarlos. Nos trasladaremos al directorio raíz web para personalizar nuestra instalación:

cd /var/www/html

Ajuste de los archivos de Drupal para mayor seguridad y facilidad de instalación

El script de instalación web requiere que realicemos algunos cambios en nuestro directorio de Drupal para completar el proceso correctamente. Debemos solucionar esto con antelación para no tener que alternar entre el navegador web y la línea de comandos.

Primero, necesitamos crear un nuevo directorio bajo el subárbol sites/defaultllamado files:

mkdir /var/www/html/sites/default/files

A continuación, debemos copiar el archivo de configuración predeterminada al nombre de archivo que Drupal utiliza para la configuración activa:

cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php

Este archivo de configuración activo requiere temporalmente permisos adicionales durante la instalación. Necesitamos otorgar permisos de escritura al propietario del grupo por el momento (próximamente asignaremos el propietario del grupo al usuario web). Lo eliminaremos una vez que la instalación se complete correctamente:

chmod 664 /var/www/html/sites/default/settings.php

A continuación, necesitamos asignar la propiedad de grupo de nuestros archivos al usuario web, que en Ubuntu es www-data. Queremos otorgarle a toda la instalación de Drupal estas propiedades de propiedad:

sudo chown -R :www-data /var/www/html/*

Su servidor ahora está configurado adecuadamente para ejecutar el script de instalación basado en web.

Complete el procedimiento de instalación basado en la web

El resto de la instalación se realizará en su navegador web. Abra el navegador y navegue hasta el nombre de dominio o la dirección IP de su servidor:

http://server_domain_or_IP

Verá la página inicial del procedimiento de instalación de Drupal:

Drupal elige perfil

A menos que tenga alguna razón para no hacerlo, seleccione la instalación “Estándar” y haga clic en “Guardar y continuar”. Haga clic en los siguientes botones de continuar hasta llegar a la página de configuración de la base de datos. Complete los datos que utilizó al configurar la base de datos y el usuario.

Para esta guía, utilizamos una base de datos llamada drupal, un usuario de base de datos llamado drupalusery una contraseña de password. Debería haber seleccionado una contraseña diferente durante la creación del usuario. Haga clic en “Guardar y continuar” de nuevo cuando haya completado los datos de su base de datos:

Configuración de la base de datos de Drupal

Nota : Al hacer clic en “Guardar y continuar”, es posible que se le redirija a la misma página de configuración de la base de datos. Si esto ocurre, simplemente actualice la página. La base de datos se configurará y el perfil se instalará.

Verá un cuadro de información en la parte superior de la página que le indica que ahora puede cambiar los permisos del archivo de configuración. Lo haremos en breve. Por ahora, necesita configurar información básica sobre su sitio. Complete los campos con los valores adecuados para su sitio:

Sitio de configuración de Drupal

Haga clic en el botón “Guardar y continuar” por última vez para completar la instalación. Ahora puede visitar su sitio web accediendo a su nombre de dominio:

Instalación completa de Drupal

Ha completado exitosamente la instalación de Drupal.

Sin embargo, aún necesitamos revertir los permisos de nuestro archivo de configuración para que usuarios no autorizados no puedan realizar cambios. En su servidor, restrinja el acceso de escritura al archivo escribiendo:

chmod 644 /var/www/html/sites/default/settings.php

Esto debería bloquear futuros cambios en el archivo de configuración.

Solución de problemas

Si la etapa final de la instalación de Drupal no se completa, revise sus registros de errores:

sudo tail /var/log/apache2/error.log

Si ves un error como este:

[Wed Nov 12 13:40:10.566144 2014] [:error] [pid 7178] [client 108.29.37.206:55238] PHP Fatal error:  Call to undefined function field_attach_load() in /var/www/html/includes/entity.inc on line 316, referer: http://12.34.56.78/install.php?profile=standard&locale=en
sh: 1: /usr/sbin/sendmail: not found

Esto indica que la instalación no se completó correctamente. Existen varias causas y soluciones para este error, documentadas por Drupal:

https://www.drupal.org/node/481758

Algunas de las soluciones más probables incluyen editar el /etc/php5/apache2/php.iniarchivo para generar el max_execution_time:

sudo nano /etc/php5/apache2/php.ini

Archivo:

max_execution_time = 300

También puedes probar la instalación en un navegador distinto a Chrome, como Safari. La configuración de cookies del navegador puede interferir con la instalación.

De todas formas, una vez que implementes la solución, tendrás que eliminar la base de datos y /var/www/html/sites/default/settings.phpel archivo de Drupal existentes, reemplazarlos con copias predeterminadas y reiniciar la instalación. Si tienes datos o configuraciones que deban conservarse, haz copias de seguridad.

Para hacer esto, puede iniciar sesión en MySQL y DROP DATABASE drupal;luego seguir nuevamente la sección de base de datos anterior para crear la base de datos y otorgarle los privilegios.

También puedes ejecutarlo cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.phpde nuevo para reemplazar el archivo de configuración. Asegúrate de ejecutar el chmod 664 /var/www/html/sites/default/settings.phpcomando para restablecer los permisos correctos.

Luego visite su dirección IP nuevamente, posiblemente en un navegador diferente, e intente la instalación final nuevamente.

Conclusión

Ahora tienes una base sólida para crear tu sitio Drupal. Drupal es increíblemente flexible, lo que te permite personalizar la apariencia y la funcionalidad del sitio según tus necesidades y las de tus usuarios.

Para obtener ideas sobre cómo seguir, visita nuestra página de etiquetas de Drupal , donde encontrarás tutoriales que te ayudarán en tu proceso. También encontrarás una sección de preguntas y respuestas para obtener ayuda o contribuir a la comunidad.

Stephen Dove
Comments

March 21, 2025

Cómo instalar WordPress en Ubuntu

Cómo instalar WordPress en Ubuntu

En este artículo, nos centraremos en cómo instalar WordPress en Ubuntu 18.04. WordPress es una plataforma de gestión de contenido gratuita y de código abierto basada en PHP y MySQL. Es el sistema de gestión de blogs y contenido líder a nivel mundial, con una cuota de mercado superior al 60%, eclipsando a competidores como Joomla y Drupal. WordPress se lanzó por primera vez el 27 de mayo de 2003 y, hasta la fecha, ¡funciona con más de 60 millones de sitios web! Su potencia y popularidad han alcanzado tal nivel que algunas grandes marcas y empresas han alojado sus sitios en la plataforma. Entre ellas se encuentran Sony Music, Katy Perry, New York Post y TED.

¿Por qué es tan popular WordPress? Analicemos brevemente algunos de los factores que han contribuido al enorme éxito de la plataforma.

Facilidad de uso

WordPress incluye un panel de control sencillo, intuitivo y fácil de usar. No requiere conocimientos de lenguajes de programación web como PHP, HTML5 y CSS3, y puedes crear un sitio web con solo unos clics. Además, la plataforma incluye plantillas, widgets y plugins gratuitos para ayudarte a empezar con tu blog o sitio web.

Rentabilidad

WordPress te ahorra muchísimo dinero a los desarrolladores para desarrollar tu sitio web. Solo tienes que obtener un tema gratuito de WordPress o comprar uno e instalarlo. Una vez instalado, tienes la libertad de implementar las funciones que prefieras y personalizar una gran variedad sin necesidad de programar mucho. Además, diseñar tu sitio web lleva mucho menos tiempo que programar desde cero.

Los sitios de WordPress son responsivos

La plataforma WordPress es intrínsecamente responsiva, por lo que no tendrás que preocuparte por si tus sitios se adaptan a múltiples dispositivos. ¡Esta ventaja también contribuye a que tu sitio tenga un mejor posicionamiento SEO en Google!

WordPress está preparado para SEO

WordPress está desarrollado con un código bien estructurado, limpio y consistente. Esto facilita la indexación de tu blog o sitio web por parte de Google y otros motores de búsqueda, lo que mejora tu posicionamiento. Además, puedes decidir qué páginas tienen mejor posicionamiento o usar plugins de SEO como el popular plugin de Yoast, que mejora el posicionamiento de tu sitio web en Google.

Fácil de instalar y actualizar.

Instalar WordPress en Ubuntu o cualquier otro sistema operativo es muy fácil. Existen numerosos scripts de código abierto que incluso automatizan este proceso. Muchas empresas de hosting ofrecen una función de instalación de WordPress con un solo clic para que puedas empezar a usarlo enseguida.

Instalar WordPress en Ubuntu

Antes de comenzar, actualicemos el sistema. Inicie sesión como usuario root y actualice el sistema para actualizar los repositorios.

apt update && apt upgrade

Salida Actualizar y mejorar el sistema Ubuntu

A continuación, instalaremos la pila LAMP para que WordPress funcione. LAMP es la abreviatura de Linux, Apache, MySQL y PHP.

Paso 1: Instalar Apache

Comencemos por instalar Apache. Para ello, ejecute el siguiente comando.

apt install apache2

Salida Instalar Apache2

Para confirmar que Apache está instalado en su sistema, ejecute el siguiente comando.

systemctl status apache2

Salida Cómo comprobar el estado de Apache2

Para verificar más, abra su navegador y vaya a la dirección IP de su servidor.

https://ip-address

Producción Página predeterminada del servidor web Apache

Paso 2: Instalar MySQL

A continuación, instalaremos el motor de base de datos MariaDB para alojar nuestros archivos de WordPress. MariaDB es una bifurcación de código abierto de MySQL y la mayoría de las empresas de hosting lo utilizan en lugar de MySQL.

apt install mariadb-server mariadb-client

Salida Instalar MySQL Mariadb Server Mariadb Client Ahora aseguremos nuestro motor de base de datos MariaDB y prohibamos el inicio de sesión root remoto.

$ mysql_secure_installation

El primer paso le pedirá que cambie la contraseña de root para iniciar sesión en la base de datos. Puede cambiarla u omitirla si está seguro de que su contraseña es segura. Para omitir el cambio, escriba n. Cambiar la contraseña rootPor seguridad, se le pedirá que elimine los usuarios anónimos. Escriba Y. Eliminar usuarios anónimosA continuación, desactive el inicio de sesión remoto de root para evitar que los hackers accedan a su base de datos. Sin embargo, para realizar pruebas, puede permitir el inicio de sesión remoto si está configurando un servidor virtual. Prohibir el inicio de sesión root de forma remota

A continuación, elimine la base de datos de prueba. Eliminar la base de datos de pruebaFinalmente, vuelva a cargar la base de datos para que los cambios surtan efecto.Recargar tabla de privilegios

Paso 3: Instalar PHP

Por último, instalaremos PHP como el último componente de la pila LAMP.

apt install php php-mysql

Salida Instalar PHP Para confirmar que PHP está instalado, se creó un info.phparchivo en /var/www/html/la ruta

vim /var/www/html/info.php

Añade las siguientes líneas:

<?php
phpinfo();
?>

Guardar y salir. Abra su navegador y añada /info.phpla URL del servidor.

https://ip-address/info.php

Producción Página web de información de PHP

Paso 4: Crear una base de datos de WordPress

Ahora es el momento de iniciar sesión en nuestra base de datos MariaDB como root y crear una base de datos para alojar nuestros datos de WordPress.

$ mysql -u root -p

Salida Inicio de sesión raíz de MySQL

Cree una base de datos para nuestra instalación de WordPress.

CREATE DATABASE wordpress_db;

Salida Crear una base de datos de WordPress

A continuación, crea un usuario de base de datos para nuestra configuración de WordPress.

CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'password';

Salida Crear un usuario para la base de datos de WordPress

Otorgar privilegios al usuario A continuación, otorgue al usuario permisos para acceder a la base de datos

GRANT ALL ON wordpress_db.* TO 'wp_user'@'localhost' IDENTIFIED BY 'password';

Salida Otorgar privilegios a usuarios de WordPress en bases de datos de WordPress Genial, ahora puedes salir de la base de datos.

FLUSH PRIVILEGES;

Exit;

Paso 5: Instalar WordPress CMS

Vaya a su directorio temporal y descargue el último archivo de WordPress

cd /tmp && wget https://wordpress.org/latest.tar.gz

Salida Descargar WordPress A continuación, descomprima el archivo tar, lo que generará una carpeta llamada “wordpress”.

tar -xvf latest.tar.gz

Salida Descomprimir el archivo tar de WordPress Copiar la carpeta de wordpress a /var/www/html/la ruta.

cp -R wordpress /var/www/html/

Ejecute el siguiente comando para cambiar la propiedad del directorio ‘wordpress’.

chown -R www-data:www-data /var/www/html/wordpress/

Cambiar los permisos de archivo de la carpeta de WordPress.

chmod -R 755 /var/www/html/wordpress/

Crear directorio ‘cargas’.

$ mkdir /var/www/html/wordpress/wp-content/uploads

Por último, cambie los permisos del directorio ‘uploads’.

chown -R www-data:www-data /var/www/html/wordpress/wp-content/uploads/

Abre tu navegador y ve a la URL del servidor. En mi caso es…

https://server-ip/wordpress

Se le presentará un asistente de WordPress y una lista de credenciales necesarias para configurarlo correctamente. instalar wordpress en ubuntuComplete el formulario como se muestra con las credenciales especificadas al crear la base de datos de WordPress en MariaDB. Omita el host de la base de datos y el prefijo de la tabla y haga clic en el botón “Enviar”. instalar wordpress en ubuntuSi todos los datos son correctos, podrá continuar. Ejecute la instalación. Muy bien Sparky, ejecuta la instalaciónComplete los datos adicionales necesarios, como el título del sitio, el nombre de usuario y la contraseña, y guárdelos en un lugar seguro para que no los olvide. Asegúrese de usar una contraseña segura. Bienvenidos Se necesita más informaciónDesplácese hacia abajo y haga clic en “Instalar WordPress”. Si todo ha ido bien, recibirá una notificación de “Instalación correcta”, como se muestra.

Instalación exitosa de WordPress
Éxito

Haz clic en el botón “Iniciar sesión” para acceder a la página de inicio de sesión de tu nueva instalación de WordPress. Iniciar sesión en WordPressIntroduce tus credenciales de inicio de sesión y pulsa “Iniciar sesión”. panel de control de WordPress¡Listo! Ya está el panel de control de WordPress, donde puedes crear tu primer blog o sitio web. ¡Enhorabuena por haber llegado hasta aquí! Ahora puedes descubrir las distintas funciones, plugins y temas, y empezar a configurar tu primer blog o sitio web.

Stephen Dove
Comments

March 20, 2025

Cómo instalar Nginx en Ubuntu 22.04

Introducción

Nginx es uno de los servidores web más populares del mundo y aloja algunos de los sitios web más grandes y con mayor tráfico de internet. Es una opción ligera que puede usarse como servidor web o como proxy inverso.

En esta guía, analizaremos cómo instalar Nginx en su servidor Ubuntu 22.04, ajustar el firewall, administrar el proceso Nginx y configurar bloques de servidor para alojar más de un dominio desde un solo servidor.

Prerrequisitos

Antes de comenzar esta guía, debe tener configurado en su servidor un usuario normal (no root) con privilegios de sudo. Puede aprender a configurar una cuenta de usuario normal siguiendo nuestra Guía de configuración inicial del servidor para Ubuntu 22.04 .

Cuando tenga una cuenta disponible, inicie sesión como usuario no root para comenzar.

Paso 1: Instalación de Nginx

Como Nginx está disponible en los repositorios predeterminados de Ubuntu, es posible instalarlo desde estos repositorios utilizando el aptsistema de empaquetado.

Dado que esta es nuestra primera interacción con el aptsistema de empaquetado en esta sesión, actualizaremos nuestro índice de paquetes local para tener acceso a los listados de paquetes más recientes. Después, podremos instalar nginx:

sudo apt update
sudo apt install nginx

Pulse  Y cuando se le solicite para confirmar la instalación. Si se le solicita reiniciar algún servicio, pulse  ENTER para aceptar los valores predeterminados y continuar. aptSe instalará Nginx y las dependencias necesarias en su servidor.

Paso 2 – Ajuste del firewall

Antes de probar Nginx, es necesario configurar el firewall para permitir el acceso al servicio. Nginx se registra como servicio al ufwinstalarse, lo que facilita su acceso.

Enumere las configuraciones de la aplicación ufwcon la que sabe trabajar escribiendo:

sudo ufw app list

Debería obtener una lista de los perfiles de la aplicación:

OutputAvailable applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Como lo demuestra el resultado, hay tres perfiles disponibles para Nginx:

  • Nginx Full : este perfil abre tanto el puerto 80 (tráfico web normal, sin cifrar) como el puerto 443 (tráfico cifrado TLS/SSL)
  • Nginx HTTP : este perfil solo abre el puerto 80 (tráfico web normal, sin cifrar)
  • Nginx HTTPS : este perfil solo abre el puerto 443 (tráfico cifrado TLS/SSL)

Se recomienda habilitar el perfil más restrictivo que permita el tráfico configurado. Por ahora, solo necesitamos permitir el tráfico en el puerto 80.

Puedes habilitar esto escribiendo:

sudo ufw allow 'Nginx HTTP'

Puedes verificar el cambio escribiendo:

sudo ufw status

La salida indicará qué tráfico HTTP está permitido:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Paso 3 – Comprobación de su servidor web

Al finalizar la instalación, Ubuntu 22.04 inicia Nginx. El servidor web ya debería estar en funcionamiento.

Podemos verificar con el systemdsistema de inicio para asegurarnos de que el servicio se esté ejecutando escribiendo:

systemctl status nginx

Output● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2022-03-01 16:08:19 UTC; 3 days ago
     Docs: man:nginx(8)
 Main PID: 2369 (nginx)
    Tasks: 2 (limit: 1153)
   Memory: 3.5M
   CGroup: /system.slice/nginx.service
           ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─2380 nginx: worker process

Como se confirma en este punto, el servicio se ha iniciado correctamente. Sin embargo, la mejor manera de comprobarlo es solicitar una página a Nginx.

Puede acceder a la página de inicio predeterminada de Nginx para confirmar que el software funciona correctamente navegando a la dirección IP de su servidor. Si desconoce la dirección IP de su servidor, puede encontrarla con la herramienta icanhazip.com , que le proporcionará su dirección IP pública, tal como la recibió de otra ubicación en internet:

curl -4 icanhazip.com

Cuando tenga la dirección IP de su servidor, ingrésela en la barra de direcciones de su navegador:

http://your_server_ip

Debería recibir la página de destino predeterminada de Nginx:

Página predeterminada de Nginx

Si está en esta página, su servidor está funcionando correctamente y está listo para ser administrado.

Paso 4: Gestión del proceso Nginx

Ahora que tiene su servidor web en funcionamiento, repasemos algunos comandos de administración básicos.

Para detener su servidor web, escriba:

sudo systemctl stop nginx

Para iniciar el servidor web cuando esté detenido, escriba:

sudo systemctl start nginx

Para detener y luego iniciar nuevamente el servicio, escriba:

sudo systemctl restart nginx

Si solo realiza cambios de configuración, Nginx suele poder recargarse sin perder conexiones. Para ello, escriba:

sudo systemctl reload nginx

De forma predeterminada, Nginx está configurado para iniciarse automáticamente al arrancar el servidor. Si no desea que esto sea así, puede desactivar este comportamiento escribiendo:

sudo systemctl disable nginx

Para volver a habilitar el servicio para que se inicie durante el arranque, puede escribir:

sudo systemctl enable nginx

Ahora ha aprendido los comandos de administración básicos y debería estar listo para configurar el sitio para alojar más de un dominio.

Al usar el servidor web Nginx, se pueden usar bloques de servidor (similares a los hosts virtuales de Apache) para encapsular los detalles de configuración y alojar más de un dominio desde un solo servidor. Configuraremos un dominio llamado “your_domain” , pero deberá reemplazarlo por su propio nombre de dominio .

Nginx en Ubuntu 22.04 tiene un bloque de servidor habilitado por defecto, configurado para servir documentos desde un directorio en /var/www/html. Si bien esto funciona bien para un solo sitio, puede resultar complicado si se alojan varios. En lugar de modificar /var/www/html, crearemos una estructura de directorios dentro /var/wwwde nuestro sitio your_domain/var/www/html , dejando este como directorio predeterminado para servir si una solicitud de cliente no coincide con ningún otro sitio.

Cree el directorio para su_dominio de la siguiente manera, utilizando la -pbandera para crear cualquier directorio padre necesario:

sudo mkdir -p /var/www/your_domain/html

A continuación, asigne la propiedad del directorio con la $USERvariable de entorno:

sudo chown -R $USER:$USER /var/www/your_domain/html

Los permisos de sus raíces web deberían ser correctos si no ha modificado el umaskvalor que establece los permisos de archivo predeterminados. Para garantizar que sus permisos sean correctos y permitir al propietario leer, escribir y ejecutar los archivos, mientras que solo otorga permisos de lectura y ejecución a grupos y otros, puede introducir el siguiente comando:

sudo chmod -R 755 /var/www/your_domain

A continuación, crea una index.htmlpágina de muestra utilizando nanotu editor favorito:

nano /var/www/your_domain/html/index.html

Dentro, agregue el siguiente HTML de muestra: /var/www/tu_dominio/html/index.html

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain server block is working!</h1>
    </body>
</html>

Guarde y cierre el archivo presionando Ctrl+Xpara salir, luego cuando se le solicite guardar Yy luego Enter.

Para que Nginx muestre este contenido, es necesario crear un bloque de servidor con las directivas correctas. En lugar de modificar directamente el archivo de configuración predeterminado, crearemos uno nuevo en :/etc/nginx/sites-available/your_domain

sudo nano /etc/nginx/sites-available/your_domain

Pegue el siguiente bloque de configuración, que es similar al predeterminado, pero actualizado para nuestro nuevo directorio y nombre de dominio: /etc/nginx/sites-available/su_dominio

server {
        listen 80;
        listen [::]:80;

        root /var/www/your_domain/html;
        index index.html index.htm index.nginx-debian.html;

        server_name your_domain www.your_domain;

        location / {
                try_files $uri $uri/ =404;
        }
}

Tenga en cuenta que hemos actualizado la rootconfiguración de nuestro nuevo directorio y server_namede nuestro nombre de dominio.

A continuación, habilitemos el archivo creando un enlace desde él al sites-enableddirectorio que Nginx lee durante el inicio:

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Nota: Nginx utiliza una práctica común llamada enlaces simbólicos (symlinks) para rastrear cuáles de tus bloques de servidor están habilitados. Crear un enlace simbólico es como crear un acceso directo en el disco, de modo que puedas eliminarlo posteriormente del sites-enableddirectorio, conservando el bloque de servidor sites-availablesi deseas habilitarlo.

Ahora hay dos bloques de servidor habilitados y configurados para responder a solicitudes según sus directivas listeny server_name(puede leer más sobre cómo Nginx procesa estas directivas aquí ):

  • your_domain:Responderá a las solicitudes de your_domainy www.your_domain.
  • default:Responderá a cualquier solicitud en el puerto 80 que no coincida con los otros dos bloques.

Para evitar un posible problema de memoria en el contenedor hash que puede surgir al añadir nombres de servidor adicionales, es necesario ajustar un único valor en el /etc/nginx/nginx.confarchivo. Abra el archivo:

sudo nano /etc/nginx/nginx.conf

Busca la server_names_hash_bucket_sizedirectiva y elimina el #símbolo para descomentar la línea. Si usas nano, puedes buscar rápidamente palabras en el archivo presionando CTRLy w.

Nota: Comentar líneas de código, generalmente colocándolas #al principio, es otra forma de deshabilitarlas sin necesidad de eliminarlas. Muchos archivos de configuración incluyen varias opciones comentadas para que puedan habilitarse o deshabilitarse alternando entre el código activo y la documentación. /etc/nginx/nginx.conf

...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Guarde y cierre el archivo cuando haya terminado.

A continuación, realice una prueba para asegurarse de que no haya errores de sintaxis en ninguno de sus archivos Nginx:

sudo nginx -t

Si no hay ningún problema, reinicie Nginx para habilitar los cambios:

sudo systemctl restart nginx

Nginx ya debería servir tu nombre de dominio. Puedes comprobarlo navegando a [nombre del dominio] , donde deberías ver algo como esto:http://your_domain

Primer bloque de servidor de Nginx

Paso 6: Familiarizarse con los archivos y directorios importantes de Nginx

Ahora que sabe cómo administrar el servicio Nginx, debería tomarse unos minutos para familiarizarse con algunos directorios y archivos importantes.

Contenido

  • /var/www/htmlEl contenido web, que por defecto solo consiste en la página predeterminada de Nginx que vio anteriormente, se sirve desde el /var/www/htmldirectorio. Esto se puede cambiar modificando los archivos de configuración de Nginx.

Configuración del servidor

  • /etc/nginxEl directorio de configuración de Nginx. Todos los archivos de configuración de Nginx se encuentran aquí.
  • /etc/nginx/nginx.confEl archivo de configuración principal de Nginx. Se puede modificar para realizar cambios en la configuración global de Nginx.
  • /etc/nginx/sites-available/El directorio donde se almacenan los bloques de servidor por sitio. Nginx no usará los archivos de configuración que se encuentran en este directorio a menos que estén vinculados a él sites-enabled. Normalmente, toda la configuración de los bloques de servidor se realiza en este directorio y luego se habilita mediante la vinculación al otro directorio.
  • /etc/nginx/sites-enabled/El directorio donde se almacenan los bloques de servidor habilitados por sitio. Normalmente, se crean mediante enlaces a los archivos de configuración que se encuentran en el sites-availabledirectorio.
  • /etc/nginx/snippetsEste directorio contiene fragmentos de configuración que pueden incluirse en otras partes de la configuración de Nginx. Los segmentos de configuración potencialmente repetibles son ideales para refactorizarlos en fragmentos.

Registros del servidor

  • /var/log/nginx/access.log:Cada solicitud a su servidor web se registra en este archivo de registro a menos que Nginx esté configurado para hacer lo contrario.
  • /var/log/nginx/error.log:Cualquier error de Nginx se registrará en este registro.

Conclusión

Ahora que tiene su servidor web instalado, tiene muchas opciones para el tipo de contenido que desea servir y las tecnologías que desea utilizar para crear una experiencia más rica.

Si desea desarrollar una pila de aplicaciones más completa, consulte el artículo Cómo instalar Linux, Nginx, MySQL, PHP (pila LEMP) en Ubuntu 22.04 .

Para configurar HTTPS para su nombre de dominio con un certificado SSL gratuito usando Let’s Encrypt , debe continuar con Cómo proteger Nginx con Let’s Encrypt en Ubuntu 22.04 .

Stephen Dove
Comments

March 17, 2025

Cómo usar SSH para conectarse a un servidor remoto

Introducción

Una herramienta esencial que debe dominar un administrador de sistemas es SSH.

SSH, o Secure Shell , es un protocolo utilizado para acceder de forma segura a sistemas remotos. Es la forma más común de acceder a servidores Linux remotos.

En esta guía, analizaremos cómo usar SSH para conectarse a un sistema remoto.

Sintaxis básica

Para conectarnos a un sistema remoto usando SSH, usaremos el sshcomando.

Si usa Windows, necesitará instalar una versión de OpenSSH para poder acceder sshdesde una terminal. Si prefiere trabajar con PowerShell, puede consultar la documentación de Microsoft para añadir OpenSSH a PowerShell. Si prefiere disponer de un entorno Linux completo, puede configurar WSL (el Subsistema de Windows para Linux), que se incluirá sshpor defecto. Finalmente, como tercera opción ligera, puede instalar Git para Windows , que proporciona un entorno de terminal bash nativo de Windows que incluye el sshcomando. Todas estas opciones son compatibles, y la que elija dependerá de sus preferencias.

Si estás usando Mac o Linux, ya tendrás el sshcomando disponible en tu terminal.

La forma más directa del comando es:

ssh remote_host

En este ejemplo se utiliza la remote_hostdirección IP o el nombre de dominio al que intenta conectarse.

Este comando asume que su nombre de usuario en el sistema remoto es el mismo que su nombre de usuario en su sistema local.

Si su nombre de usuario es diferente en el sistema remoto, puede especificarlo utilizando esta sintaxis:

ssh remote_username@remote_host

Una vez conectado al servidor, es posible que se le solicite verificar su identidad mediante una contraseña. Más adelante, explicaremos cómo generar claves para usarlas en lugar de contraseñas.

Para salir de la sesión ssh y regresar a su sesión de shell local, escriba:

exit

¿Cómo funciona SSH?

SSH funciona conectando un programa cliente a un servidor ssh , llamado sshd.

En la sección anterior, sshse encontraba el programa cliente. El servidor SSH ya se estaba ejecutando en el remote_hostservidor que especificamos.

En casi todos los entornos Linux, el sshdservidor debería iniciarse automáticamente. Si no se ejecuta por algún motivo, es posible que necesite acceder temporalmente a su servidor mediante una consola web o una consola serie local.

El proceso necesario para iniciar un servidor ssh depende de la distribución de Linux que esté utilizando.

En Ubuntu, puedes iniciar el servidor ssh escribiendo:

sudo systemctl start ssh

Esto debería iniciar el servidor sshd y luego podrás iniciar sesión de forma remota.

Cómo configurar SSH

Cuando cambia la configuración de SSH, está cambiando la configuración del sshdservidor.

En Ubuntu, el sshdarchivo de configuración principal se encuentra en /etc/ssh/sshd_config.

Haga una copia de seguridad de la versión actual de este archivo antes de editarlo:

sudo cp /etc/ssh/sshd_config{,.bak}

Ábrelo usando nanotu editor de texto favorito:

sudo nano /etc/ssh/sshd_config

Le recomendamos no modificar la mayoría de las opciones de este archivo. Sin embargo, hay algunas que podría considerar: /etc/ssh/sshd_config

Port 22

La declaración del puerto especifica en qué puerto el sshdservidor escuchará las conexiones. Por defecto, es 22. Probablemente debería dejar esta configuración sin modificar a menos que tenga razones específicas para hacerlo. Si cambia de puerto, le mostraremos cómo conectarse al nuevo puerto más adelante. /etc/ssh/sshd_config

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

Las declaraciones de clave de host especifican dónde buscar las claves de host globales. Más adelante explicaremos qué es una clave de host. /etc/ssh/sshd_config

SyslogFacility AUTH
LogLevel INFO

Estos dos elementos indican el nivel de registro que debe realizarse.

Si tiene dificultades con SSH, aumentar la cantidad de registros puede ser una buena manera de descubrir cuál es el problema. /etc/ssh/sshd_config

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

Estos parámetros especifican parte de la información de inicio de sesión.

LoginGraceTimeEspecifica cuántos segundos se debe mantener activa la conexión sin iniciar sesión correctamente.

Puede ser una buena idea establecer este tiempo apenas un poco más alto que el tiempo que le toma iniciar sesión normalmente.

PermitRootLoginSelecciona si el usuario root puede iniciar sesión.

En la mayoría de los casos, esto se debe cambiar nocuando haya creado una cuenta de usuario que tenga acceso a privilegios elevados (a través de suo sudo) y pueda iniciar sesión a través de SSH para minimizar el riesgo de que alguien obtenga acceso root a su servidor.

strictModeses una protección de seguridad que rechazará un intento de inicio de sesión si los archivos de autenticación son legibles por todos.

Esto evita intentos de inicio de sesión cuando los archivos de configuración no son seguros. /etc/ssh/sshd_config

X11Forwarding yes
X11DisplayOffset 10

Estos parámetros configuran una función llamada Reenvío X11 . Esto permite ver la interfaz gráfica de usuario (GUI) de un sistema remoto en el sistema local.

Esta opción debe estar habilitada en el servidor y entregada al cliente SSH durante la conexión con la -Xopción.

Después de realizar los cambios, guarde y cierre el archivo. Si usa nano, presione Ctrl+X, luego, cuando se le solicite, Yy luego Enter.

Si cambió alguna configuración en /etc/ssh/sshd_config, asegúrese de volver a cargar su sshdservidor para implementar las modificaciones:

sudo systemctl reload ssh

Debes probar exhaustivamente tus cambios para asegurarte de que funcionen como esperas.

Sería buena idea tener abiertas varias sesiones de terminal mientras se realizan cambios. Esto le permitirá revertir la configuración si es necesario sin bloquearse.

Cómo iniciar sesión en SSH con claves

Si bien es útil poder iniciar sesión en un sistema remoto usando contraseñas, es más rápido y seguro configurar la autenticación basada en claves .

¿Cómo funciona la autenticación basada en clave?

La autenticación basada en clave funciona mediante la creación de un par de claves: una clave privada y una clave pública .

La clave privada se encuentra en la máquina del cliente y está protegida y se mantiene en secreto.

La clave pública se puede entregar a cualquier persona o colocar en cualquier servidor al que desee acceder.

Cuando intenta conectarse utilizando un par de claves, el servidor utilizará la clave pública para crear un mensaje para la computadora cliente que sólo se puede leer con la clave privada.

Luego, la computadora cliente envía la respuesta apropiada al servidor, que le indicará que el cliente es legítimo.

Este proceso se realiza automáticamente después de configurar sus claves.

Cómo crear claves SSH

Las claves SSH deben generarse en el ordenador desde el que desea iniciar sesión . Normalmente, este es su equipo local.

Introduzca lo siguiente en la línea de comando:

ssh-keygen -t rsa

Es posible que se le solicite que establezca una contraseña para los archivos de claves, pero esto es poco común, y debe presionar Enter durante las indicaciones para aceptar los valores predeterminados. Sus claves se crearán en ~/.ssh/id_rsa.pub y ~/.ssh/id_rsa .

Cambie al .sshdirectorio escribiendo:

cd ~/.ssh

Mira los permisos de los archivos:

ls -l
Output-rw-r--r-- 1 demo demo  807 Sep  9 22:15 authorized_keys
-rw------- 1 demo demo 1679 Sep  9 23:13 id_rsa
-rw-r--r-- 1 demo demo  396 Sep  9 23:13 id_rsa.pub

Como puede ver, el id_rsaarchivo solo es legible y escribible para el propietario. Esto ayuda a mantenerlo en secreto.

id_rsa.pubSin embargo, el archivo se puede compartir y tiene los permisos adecuados para esta actividad.

Cómo transferir su clave pública al servidor

Si actualmente tiene acceso a un servidor mediante contraseña, puede copiar su clave pública emitiendo este comando:

ssh-copy-id remote_host

Esto iniciará una sesión SSH. Tras introducir su contraseña, se copiará su clave pública al archivo de claves autorizadas del servidor, lo que le permitirá iniciar sesión sin contraseña la próxima vez.

Opciones del lado del cliente

Hay una serie de indicadores opcionales que puedes proporcionar al conectarte a través de SSH.

Algunos de estos pueden ser necesarios para que coincidan con la sshdconfiguración del host remoto.

Por ejemplo, si cambió el número de puerto en su sshdconfiguración, deberá hacer coincidir ese puerto en el lado del cliente escribiendo:

ssh -p port_number remote_host

Nota: Cambiar el puerto SSH es una forma razonable de proporcionar seguridad mediante la opacidad . Si permite conexiones SSH a una implementación de servidor ampliamente conocida en el puerto 22de forma normal y tiene habilitada la autenticación con contraseña, es probable que sufra numerosos intentos de inicio de sesión automatizados. Usar exclusivamente la autenticación basada en clave y ejecutar SSH en un puerto no estándar no es la solución de seguridad más compleja, pero debería minimizarlos.

Si solo desea ejecutar un único comando en un sistema remoto, puede especificarlo después del host de la siguiente manera:

ssh remote_host command_to_run

Se conectará a la máquina remota, se autenticará y se ejecutará el comando.

Como dijimos antes, si el reenvío X11 está habilitado en ambas computadoras, puedes acceder a esa funcionalidad escribiendo:

ssh -X remote_host

Si tiene las herramientas adecuadas en su computadora, los programas GUI que use en el sistema remoto ahora abrirán su ventana en su sistema local.

Deshabilitar la autenticación de contraseña

Si ha creado claves SSH, puede mejorar la seguridad de su servidor desactivando la autenticación solo con contraseña. Además de la consola, la única forma de iniciar sesión en su servidor será mediante la clave privada que coincide con la clave pública que haya instalado.

Advertencia: Antes de continuar con este paso, asegúrese de haber instalado una clave pública en su servidor. De lo contrario, se bloqueará su acceso.

Como root o usuario con privilegios sudo, abra el sshdarchivo de configuración:

sudo nano /etc/ssh/sshd_config

Localice la línea que dice Password Authenticationy descomentela eliminando el #. Luego puede cambiar su valor a no: /etc/ssh/sshd_config

PasswordAuthentication no

Dos configuraciones más que no deberían necesitar modificarse (siempre que no haya modificado este archivo previamente) son PubkeyAuthenticationy ChallengeResponseAuthentication. Están configuradas por defecto y deberían tener el siguiente formato: /etc/ssh/sshd_config

PubkeyAuthentication yes
ChallengeResponseAuthentication no

Después de realizar los cambios, guarde y cierre el archivo.

Ahora puedes recargar el demonio SSH:

sudo systemctl reload ssh

La autenticación de contraseña ahora debe estar deshabilitada y su servidor debe ser accesible solo a través de la autenticación de clave SSH.

Conclusión

Aprender a usar SSH te beneficiará enormemente en tus futuras iniciativas de computación en la nube. A medida que uses las distintas opciones, descubrirás funciones más avanzadas que te facilitarán la vida. SSH se ha mantenido popular gracias a su seguridad, ligereza y utilidad en diversas situaciones.

A continuación, es posible que desee obtener información sobre cómo trabajar con SFTP para realizar transferencias de archivos mediante la línea de comandos.

Stephen Dove