Introducción
De forma predeterminada, Apache archiva sus archivos en el directorio / var / www / html en sistemas Ubuntu. Este directorio normalmente existe en un sistema de archivos raíz. Una ubicación que también aloja otros archivos del sistema operativo. En algunos casos, puede resultar útil trasladar las raíces del documento a una ubicación diferente.
Esta guía le mostrará cómo mover el directorio raíz web de Apache ( / var / www / html) a otro en su sistema Ubuntu 18.04.
¿Listo? ¡Vamos a empezar!
Empieza aqui
Para completar con éxito esta tarea, necesitará lo siguiente:
- Un certificado SSL para su propio dominio. Esta guía se utiliza midominio.com como nuestro nombre de dominio. Recuerde reemplazar este valor con su nombre de dominio único.
- Una ubicación única para el directorio raíz del documento. Esta guía se utiliza / mnt / volume-ha1 como una ubicación única para el directorio raíz del documento.
Si todo está bien, comencemos.
Paso 1: transfiera el archivo a una nueva ubicación
Como se mencionó anteriormente, Apache usa Web Server / var / www / html como la ubicación de almacenamiento para el directorio raíz del documento. Al implementar las instrucciones necesarias, también ha creado una raíz de documento llamada /var/www/mydomain.com/html. Esta debería ser la raíz del documento principal, pero puede tener otras raíces del documento en el documento correspondiente. Apache VirtualHost Pautas.
Nuestro objetivo es determinar la ubicación exacta de almacenamiento de los datos maestros del documento y transferir los archivos correspondientes al nuevo directorio. Como queremos limitar nuestra búsqueda solo a los sitios web activos, busquemos las ubicaciones en el directorio. / etc / apache2 / sites-enabled Con grep. Primero, ejecute el siguiente comando para explorar las ubicaciones:
$ grep -R "DocumentRoot"/etc/apache2/sites-enabled
La -R permite que grep muestre el nombre de archivo completo y la raíz del documento en la salida, como se muestra a continuación:
/etc/apache2/sites-enabled/mydomain.com-le-ssl.conf: DocumentRoot /var/www/mydomain.com/html /etc/apache2/sites-enabled/mydomain.com.conf: DocumentRoot /var/www/mydomain.com/html
La salida anterior puede diferir según las configuraciones subyacentes. Independientemente de los resultados, debería ser fácil determinar que está moviendo los archivos correctos y actualizando los archivos de configuración que desea.
Una vez que haya confirmado la ubicación exacta de la raíz del documento, use rsync para copiar los archivos existentes en la nueva ubicación. Ejecute el siguiente comando:
$ sudo rsync -av /var/www/mydomain.com/html /mnt/volume-ha1
El comando tiene un -a Indicador que garantiza que las propiedades y los permisos del directorio se conserven durante la transferencia de archivos. El comando también tiene un -v Indicador que proporciona la salida detallada que puede utilizar para supervisar el progreso de la sincronización. Esto le dará un resultado similar al siguiente:
sending incremental filelist html/ html/index.html sent 318 bytes received 39 bytes 714.00 bytes/sec total size is 176 speedup is 0.49
Ahora los archivos están en su nueva ubicación y es hora de cambiar la configuración del servidor web Apache para que rime con los cambios anteriores.
Paso 2: modificar los archivos de configuración de Apache
El servidor web Apache está diseñado para utilizar archivos de configuración globales y específicos de la ubicación. Como resultado, nuestra configuración solo puede reflejar los cambios realizados cuando hacemos los cambios /etc/apache2/sites-enabled/mydomain.com.confEste es el archivo de configuración de VirtualHost para nuestro dominio (midominio.com).
Deberíamos cambiar también /etc/apache2/sites-enabled/mydomain.com-le-ssl.conf;; Un archivo de configuración que se creó cuando se configuraron los certificados SSL para nuestro dominio.
Nota: Los archivos que queremos cambiar son los archivos de configuración que aparecen en Paso uno después de ejecutar el grep Mando.
Primero, ejecute el siguiente comando para abrir el primer archivo de configuración:
$ sudo nano /etc/apache2/sites-enabled/mydomain.com.conf
Esto le dará una salida con el contenido del archivo. Encuentra una línea que comience con Raiz del documento. Actualice el valor de esta línea con / mnt / volume-ha1 / html;; Esta es nuestra nueva ubicación para el directorio raíz de documentos. Una vez que haya actualizado esa línea, debería tener:
<VirtualHost *:80> ServerAdmin hostadvice@mydomain.comn ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /mnt/volume-ha1/html ErrorLog${APACHE_LOG_DIR}/error.log CustomLog${APACHE_LOG_DIR}/access.log combined RewriteEngineon RewriteCond%{SERVER_NAME} =www.mydomain.com [OR] RewriteCond%{SERVER_NAME} =mydomain.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>
A continuación, agregue la siguiente directiva a este archivo de configuración para que el servidor pueda seguir los enlaces simbólicos en el nuevo directorio.
. . . <Directory /mnt/volume-nyc3-01/html> Options FollowSymLinks AllowOverride None Require all granted </Directory>
Preste atención a lo siguiente: Debe monitorear DocumentRoot como se muestra en el Paso 1 después de ejecutar el comando grep. Además, asegúrese de que DocumentRoot se actualice en paráfrasis o alias para reflejar los cambios en la nueva ubicación de la raíz del documento.
Luego ejecute el siguiente comando para abrir su archivo de configuración SSL:
$ sudo nano /etc/apache2/sites-enabled/mydomain.com-le-ssl.conf
Actualice DocumentRoot con / mnt / volume-ha1 / html; La nueva ubicación del directorio raíz del documento. Asegúrese de tener lo siguiente después de la actualización:
<IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin hostadvice@mydomain.com ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /mnt/volume-ha1/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined . . . </VirtualHost> </IfModule>
¡Eso es! Cambió ambos archivos de configuración y ahora reflejan la nueva ubicación del documento.
Paso 3: implementar los cambios
Después de realizar todos los cambios, es fácil reiniciar su servicio Apache y confirmar los resultados. Sin embargo, primero ejecute el siguiente comando para confirmar la sintaxis:
$ sudo apachectl configtest
Esto le dará un resultado similar al siguiente:
AH00558: 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
Para deshabilitar esta línea superior, especifique una directiva ServerName única (su dirección IP o dominio del servidor) /etc/apache2/apache2.conf.
Ahora ejecute el siguiente comando para reiniciar su servicio Apache:
$ sudo systemctl reload apache2
Después de reiniciar el servicio, visite sus sitios web y verifique que todo funcione como se esperaba. Si todo está bien, ejecute el siguiente comando para eliminar los archivos nativos de datos del sitio.
$ sudo rm -Rf /var/www/mydomain.com/html
Conclusión
Ha movido correctamente el directorio raíz de documentos de su servidor web Apache a otra ubicación.