Saltar al contenido

Cómo mover un directorio raíz Web Apache a un nuevo lugar en Ubuntu 18.04

marzo 4, 2020

 

Introducción

En Ubuntu, el servidor web Apache almacena sus documentos en / var / www / html, que normalmente se encuentra en el sistema de ficheros raíz con resto del sistema operativo. A veces, sin embargo, es útil para mover la raíz del documento a otra ubicación, como por ejemplo un sistema de ficheros montado por separado. Por ejemplo, si sirven a múltiples sitios web desde la misma instancia de Apache, poniendo raíz de documentos de cada sitio en su propio volumen le permite escalar en respuesta a las necesidades de un sitio o un cliente específico.

En esta guía, se moverá una raíz de documentos de Apache a una nueva ubicación.

Requisitos previos

Para completar esta guía, necesitará:

  • Una Ubuntu 18.04 servidor y un usuario no root con privilegios sudo. Se puede obtener más información sobre cómo configurar un usuario con privilegios de estos en nuestra configuración inicial del servidor con Ubuntu 18.04 guía.
  • Apache instalado, después de cómo instalar el servidor Web Apache en Ubuntu 18.04.
  • SSL configurado para su dominio siguiendo la forma de asegurar Apache con Cifrar Vamos en Ubuntu 18.04. Vamos a utilizar el nombre de dominio example.com en este tutorial, pero se debe sustituir esto con su propio nombre de dominio.
  • una nueva ubicación para la raíz del documento. En este tutorial, vamos a utilizar el directorio / mnt / volumen nyc3-01 para nuestra nueva ubicación. Si está utilizando el bloque de almacenamiento digitalocean, esta guía le mostrará cómo crear y adjuntar su volumen. Su nueva ubicación raíz del documento se puede configurar en función de sus necesidades, sin embargo. Si va a mover la raíz del documento a un dispositivo de almacenamiento diferente, tendrá que seleccionar una ubicación bajo el dispositivo de punto de montaje.

Paso 1 – Copia de archivos en la nueva ubicación

En una instalación nueva de Apache, la raíz del documento se encuentra en / var / www / html. Siguiendo las guías de requisitos previos, sin embargo, que ha creado una nueva raíz del documento, /var/www/example.com/html. Usted también puede tener raíces adicionales de documentos de directivas VirtualHost correspondiente. En este paso, vamos a establecer la ubicación de nuestras raíces de documentos y copiar los archivos correspondientes a su nueva ubicación.

Puede buscar la ubicación de sus raíces de documentos utilizando grep. Búsqueda Vamos en el directorio / etc / apache2 / sites-enabled para limitar nuestra atención a los sitios activos. Las asegura que grep -R bandera imprimirá tanto el DocumentRoot y el nombre completo de su producción:

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

  • grep -R “DocumentRoot” / etc / apache2 / sites-enabled

Si ha seguido los tutoriales de requisitos previos en un fresco servidor, el resultado se verá así:

Output/etc/apache2/sites-enabled/example.com-le-ssl.conf: DocumentRoot /var/www/example.com/html
/etc/apache2/sites-enabled/example.com.conf: DocumentRoot /var/www/example.com/html

Si tiene configuraciones pre-existentes, sus resultados pueden diferir de lo que se muestra aquí. En cualquiera de los casos, se puede utilizar la retroalimentación de grep para asegurarse de que está moviendo los archivos deseados y la actualización de los archivos de configuración apropiados.

Ahora que ha confirmado la ubicación de la raíz del documento, se pueden copiar los archivos a su nueva ubicación con rsync. Utilizando el indicador -a conserva los permisos y otras propiedades del directorio, mientras que -v proporciona verbosa de salida para que pueda seguir el progreso de la sincronización:

Nota: Asegúrese de que no hay una barra diagonal en el directorio, que se puede añadir si se utiliza la implementación del tabulador. Cuando hay una barra final, rsync volcar el contenido del directorio en el punto de montaje en lugar de transferirla a un directorio que contiene HTML.

sudo rsync -av /var/www/example.com/html /mnt/volume-nyc3-01

  • sudo rsync -av /var/www/example.com/html / mnt / volumen nyc3-01

verá una salida como la siguiente:

Outputsending incremental file list
html/
html/index.html

sent 318 bytes received 39 bytes 714.00 bytes/sec
total size is 176 speedup is 0.49

Con nuestros archivos en su lugar, vamos a pasar a modificar nuestra configuración de Apache para reflejar estos cambios.

Paso 2 – Actualización de los archivos de configuración de Apache

hace uso de dos archivos de configuración globales y específicas de sitio. Para el fondo de la jerarquía de archivos de configuración, echar un vistazo a cómo configurar el servidor Web Apache en un Ubuntu o Debian VPS. Vamos a modificar los archivos de la máquina virtual para nuestro proyecto example.com: /etc/apache2/sites-enabled/example.com.conf y /etc/apache2/sites-enabled/example.com-le-ssl.conf, que era creada cuando hemos configurado certificados SSL para example.com.

Nota: Recuerde que en su caso será example.com Your_Domain_Name, y que va a modificar los archivos de la máquina virtual que se emite cuando se ejecutó el comando grep en el paso 1.

Empiece por apertura / etc / apache2 /sites-enabled/example.com.conf:

sudo nano /etc/apache2/sites-enabled/example.com.conf

  • sudo nano /etc/apache2/sites-enabled/example.com.conf

busque la línea que comienza con DocumentRoot y actualizar con la nueva ubicación de la raíz. En nuestro caso, esto será / mnt / volumen nyc3-01 / html:


ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /mnt/volume-nyc3-01/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com [OR]
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Vamos a añadir también directivas para garantizar que el servidor seguirá los enlaces simbólicos en el directorio:

. . .

Options FollowSymLinks
AllowOverride None
Require all granted

Mantenga un ojo hacia fuera para el DocumentRoot que grep emitida en el Paso 1, incluso en alias o vuelve a escribir. También tendrá que actualizar estos para reflejar la nueva ubicación raíz del documento.

Después de guardar estos cambios, vamos a centrar nuestra atención en la configuración de SSL. /etc/apache2/sites-enabled/example.com-le-ssl.conf abierta:

sudo nano /etc/apache2/sites-enabled/example.com-le-ssl.conf

  • sudo nano /etc/apache2/sites-enabled/example.com-le-ssl.conf

Modificar el DocumentRoot para reflejar la nueva ubicación, / mnt / volumen nyc3-01 / html:



ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /mnt/volume-nyc3-01/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
. . .


Se han hecho ahora los cambios de configuración necesarios para reflejar la nueva ubicación de la raíz del documento.

Paso 3 – El reinicio de Apache

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

En primer lugar, asegúrese de que la sintaxis es correcta con configtest:

sudo apachectl configtest

  • sudo apachectl configtest

En una instalación nueva obtendrá retroalimentación que es similar al 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 message
Syntax OK

Si desea suprimir la línea superior, sólo tiene que añadir una directiva ServerName para su archivo principal (global) de Apache configuración en /etc/apache2/apache2.conf. El ServerName puede ser el dominio de su servidor o la dirección IP. Esto es sólo un mensaje, sin embargo, y no afecta a la funcionalidad de su sitio. Siempre y cuando la salida contiene Sintaxis OK, ya está listo para continuar.

Utilice el siguiente comando para reiniciar Apache:

sudo systemctl reload apache2

  • sudo systemctl recarga apache2

Cuando el servidor se haya reiniciado, visite sus sitios afectados y asegurarse de que están trabajando como se esperaba. Una vez que se sienta cómodo que todo está en orden, no olvide quitar las copias originales de los datos:

sudo rm -Rf /var/www/example.com/html

  • sudo rm -rf /var/www/example.com/html

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

Conclusión

En este tutorial, cubierto cómo cambiar la raíz de documentos de Apache a una nueva ubicación. Esto le puede ayudar con la administración básica del servidor web, como alojamiento de manera efectiva múltiples sitios en un único servidor. También le permite tomar ventaja de los dispositivos de almacenamiento alternativos tales como la red de almacenamiento de bloques, que pueden ser útiles en la ampliación de un sitio web como su cambio de necesidades.

Si va a administrar un sitio web ocupado o en crecimiento, que podría estar interesado en aprender cómo cargar prueba de su servidor web para identificar los cuellos de botella de rendimiento antes de que las encuentre en la producción. También puede aprender más acerca de la mejora de la experiencia de producción en esta comparación de cinco maneras de mejorar la configuración de su servidor de aplicaciones Web de producción.