Cómo mover una raíz web Apache a una nueva ubicación en Ubuntu 20.04

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Copiar archivos a la nueva ubicación
  • Paso 2: Actualización de los archivos de configuración
  • Paso 3: Reiniciar Apache
  • Conclusión
  • En Ubuntu, el servidor web Apache sirve los documentos almacenados en el var/www/htmldirectorio de forma predeterminada. Este directorio se denomina raíz de documentos . Cuando un administrador o un usuario realiza una solicitud al servidor, este responderá con los archivos correspondientes desde la raíz de documentos.

    Este directorio se encuentra normalmente en el sistema de archivos raíz junto con el resto del sistema operativo. Sin embargo, a veces resulta útil mover la raíz de documentos a otra ubicación, como un sistema de archivos montado por separado. Por ejemplo, si ofrece servicios a varios sitios web desde la misma instancia de Apache, colocar la raíz de documentos de cada sitio en su propio volumen le permite escalar en respuesta a las necesidades de un sitio o cliente específico.

    En esta guía, moverá una raíz de documento Apache desde su ubicación predeterminada var/www/htmla una nueva ubicación.

    Prerrequisitos

    Para completar esta guía, necesitarás:

    • Un servidor Ubuntu 20.04 y un usuario no root con privilegios sudo. Puede obtener más información sobre cómo configurar un usuario con estos privilegios en nuestra guía Configuración inicial del servidor con Ubuntu 20.04 .
    • Apache instalado en su servidor. Aprenda a configurarlo siguiendo nuestra guía Cómo instalar el servidor web Apache en Ubuntu 20.04 .
    • SSL configurado para su dominio. Configúrelo siguiendo nuestra guía Cómo proteger Apache con Let’s Encrypt en Ubuntu 20.04 .
    • Una nueva ubicación para la raíz de documentos. En este tutorial, /mnt/volume_nyc3_01se utiliza como directorio para esta nueva ubicación. Aunque las instrucciones de esta guía utilizan el ejemplo de un dispositivo de almacenamiento en bloque montado, puede utilizar cualquier ubicación de directorio de su sistema como nueva raíz de documentos para servir su contenido web.

    Si está utilizando un volumen de almacenamiento en bloque de DigitalOcean, esta guía le mostrará cómo crear y adjuntar su volumen. La nueva ubicación de la raíz de documentos se puede configurar según sus necesidades. Si está moviendo la raíz de documentos a un dispositivo de almacenamiento diferente, deberá seleccionar una ubicación debajo del punto de montaje del dispositivo.

    Paso 1: Copiar archivos a la nueva ubicación

    Si siguió los tutoriales de requisitos previos, habrá creado una nueva raíz de documento en . También puede tener raíces de documento adicionales en las directivas correspondientes. Es importante establecer la ubicación de la raíz de documento actual antes de copiar los archivos relevantes a su nueva ubicación./var/www/your_domainVirtualHost

    Busque la ubicación de las raíces de sus documentos utilizando el grepcomando para buscar en el /etc/apache2/sites-enableddirectorio. Esto limita el enfoque a los sitios activos. La -Rbandera asegura que grepse imprimirán tanto el DocumentRootnombre de archivo como el nombre de archivo completo en la salida:

    1. grep -R "DocumentRoot" /etc/apache2/sites-enabled

    La siguiente salida revela la ubicación de su actual DocumentRoot:

    Output/etc/apache2/sites-enabled/your_domain-le-ssl.conf:  DocumentRoot /var/www/your_domain/etc/apache2/sites-enabled/your_domain.conf:         DocumentRoot /var/www/your_domain

    Si ya tiene configuraciones existentes, los resultados pueden diferir de los que se muestran aquí. En cualquier caso, puede utilizar el resultado de greppara asegurarse de mover los archivos deseados y actualizar los archivos de configuración adecuados.

    Ahora que ha confirmado la ubicación de la raíz de su documento, copie los archivos a su nueva ubicación con rsync:

    Nota: Al utilizar el rsynccomando, tenga en cuenta dos cosas:

    • Tenga en cuenta que hay una barra diagonal al final de your_domain. Si no incluye la barra diagonal aquí, estará copiando este directorio a la nueva raíz de documentos como un subdirectorio. Por ejemplo, su nueva raíz de documentos tendrá esta estructura: /var/www/mnt/volume_nyc3_01/your_domain. Esto provocará un problema al intentar servir su index.htmlarchivo desde su nueva raíz de documentos.
    • En segundo lugar, no hay ninguna barra diagonal final en el nuevo directorio raíz del documento /mnt/volume_nyc3_01.
    1. sudo rsync -av /var/www/your_domain/ /mnt/volume_nyc3_01

    La -abandera conserva los permisos y otras propiedades del directorio, mientras que la -vbandera proporciona una salida detallada para que pueda seguir el progreso de la sincronización.

    Su salida debe incluir lo siguiente:

    Outputsending incremental file list./index.htmlsent 265 bytes  received 38 bytes  606.00 bytes/sectotal size is 134  speedup is 0.44

    Con los archivos en su lugar, puede continuar modificando su configuración de Apache para reflejar estos cambios.

    Paso 2: Actualización de los archivos de configuración

    Después de ubicar y copiar archivos a la nueva raíz del documento, puede configurar los archivos del host virtual para que apunten a esta nueva ubicación.

    Empiece por abrirlo con su editor preferido. En este ejemplo se utiliza :/etc/apache2/sites-enabled/your_domain.confnano

    1. sudo nano /etc/apache2/sites-enabled/your_domain.conf

    Busque la línea que comienza con DocumentRooty reemplácela con la nueva ubicación de la raíz. En este ejemplo, la nueva ubicación de la raíz es /mnt/volume_nyc3_01:

    /etc/apache2/sites-enabled/su_dominio.conf

    VirtualHost *:80    ServerAdmin sammy@your_domain    ServerName your_domain    ServerAlias www.your_domain    DocumentRoot /mnt/volume_nyc3_01    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combinedRewriteEngine onRewriteCond %{SERVER_NAME} =www.your_domain [OR]RewriteCond %{SERVER_NAME} =your_domainRewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]/VirtualHost

    Después de esta VirtualHostdirectiva, agregue estas líneas resaltadas para garantizar que el servidor seguirá los enlaces simbólicos en el directorio:

    /etc/apache2/sites-enabled/su_dominio.conf

    . . ./VirtualHostDirectory /mnt/volume_nyc3_01    Options FollowSymLinks    AllowOverride None    Require all granted/Directory

    En total, su archivo debe incluir todas las siguientes líneas específicas de su nueva ubicación:/etc/apache2/sites-enabled/your_domain.confDocumentRoot

    /etc/apache2/sites-enabled/su_dominio.conf

    VirtualHost *:80    ServerAdmin sammy@your_domain    ServerName your_domain    ServerAlias www.your_domain    DocumentRoot /mnt/volume_nyc3_01    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combinedRewriteEngine onRewriteCond %{SERVER_NAME} =www.your_domain [OR]RewriteCond %{SERVER_NAME} =your_domainRewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]/VirtualHostDirectory /mnt/volume_nyc3_01    Options FollowSymLinks    AllowOverride None    Require all granted/Directory

    Guarda y sal del editor. Puedes salir nanopresionando CTRL + X, luego Y, y luego ENTER.

    Después de realizar estos cambios, puede centrarse en la configuración de SSL. Abra el archivo:/etc/apache2/sites-enabled/your_domain-le-ssl.conf

    1. sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf

    Al igual que el archivo de configuración anterior, modifíquelo DocumentRootpara reflejar la nueva ubicación:

    /etc/apache2/sites-enabled/su_dominio-le-ssl.conf

    IfModule mod_ssl.cVirtualHost *:443    ServerAdmin sammy@your_domain    ServerName your_domain    ServerAlias www.your_domain    DocumentRoot /mnt/volume_nyc3_01    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined. . ./VirtualHost/IfModule

    Guarde y cierre este archivo.

    Ahora ha realizado los cambios de configuración necesarios para reflejar la nueva ubicación de la raíz de su documento.

    Paso 3: Reiniciar Apache

    Una vez que haya terminado de realizar los cambios, puede reiniciar Apache y probar los resultados.

    Primero, asegúrese de que la sintaxis de sus nuevas configuraciones sea correcta con configtest:

    1. sudo apachectl configtest

    Si su sintaxis es correcta, su salida debería revelar lo siguiente:

    OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this messageSyntax OK

    Nota: Si desea suprimir la línea superior en esta salida, agregue una ServerNamedirectiva a su archivo de configuración global de Apache en /etc/apache2/apache2.conf. ServerNamePuede ser el dominio o la dirección IP de su servidor.

    Abra el archivo con su editor:

    1. sudo nano /etc/apache2/apache2.conf

    Coloque la ServerNamedirectiva en la parte inferior del archivo de configuración con your_domainla dirección IP de su servidor:

    /etc/apache2/apache2.conf

    # This is the main Apache server configuration file.  It contains the# configuration directives that give the server its instructions.# See http://httpd.apache.org/docs/2.4/ for detailed information about# the directives and /usr/share/doc/apache2/README.Debian about Debian specific# hints....ServerName your_domain

    Guarde y salga de su editor.

    Sin embargo, esto es solo un mensaje y no afecta la funcionalidad de su sitio. Mientras el resultado contenga Syntax OK, estará listo para continuar.

    Utilice el siguiente comando para reiniciar Apache:

    1. sudo systemctl reload apache2

    Cuando el servidor se haya reiniciado, visita los sitios afectados para asegurarte de que funcionan como se espera. Una vez que estés seguro de que todo está en orden, no olvides eliminar las copias originales de los datos:

    1. sudo rm -Rf /var/www/your_domain

    Ahora ha movido con éxito la raíz del documento Apache a una nueva ubicación.

    Conclusión

    En este tutorial, aprendió a cambiar la raíz de documentos de Apache a una nueva ubicación. Esto puede ayudarlo con la administración básica del servidor web, como alojar de manera eficaz varios sitios en un solo servidor. También le permite aprovechar dispositivos de almacenamiento alternativos, como el almacenamiento en bloque de red, que puede ser útil para escalar un sitio web a medida que cambian sus necesidades.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion