Cree hosts virtuales de Apache. Trabajar con hosts virtuales Crear un host virtual apache

Esta es una nota sobre la configuración de un servidor web en Windows, puede considerarse una continuación del artículo "". El material se encuentra en proceso de elaboración, pero dado que se recibió una pregunta, la cual contiene una respuesta, se decidió publicarlo de esta forma.

Conexión de servidores virtuales Apache en Windows

Los hosts virtuales se pueden vincular a un nombre de host (p. ej., study.loc), una IP (p. ej., 127.0.0.3) y un puerto (*:81). El segundo y tercer método son buenos porque no tenemos que lidiar con la resolución DNS de nuestro nombre de host virtual (esto generalmente se logra cambiando el archivo del sistema o usando un servidor DNS personal con los registros apropiados).

Veamos los tres métodos. Pero empecemos con un poco de preparación. Vamos a crear un directorio en el que colocaremos nuestros hosts virtuales. Por ejemplo, . Y en este directorio crearemos tres nuevas carpetas: host1, host2, host3. En cada uno de ellos, cree un archivo de índice ( índice.html) con cualquier contenido que le permita identificar que llegó al host correcto. Haré las siguientes entradas en los respectivos archivos de índice de host, para el primer host:

Ha llegado al host1.

Para el segundo:

Llegaste al host2.

Para el tercero:

Llegaste al host3.

Ahora comencemos a configurar hosts virtuales.

En archivo

Comente (o elimine) las líneas predeterminadas del archivo.

Hosts virtuales basados ​​en IP

Los hosts virtuales que están vinculados a IP requieren múltiples IP. Sin embargo, en su servidor local puede hacer este truco, porque en IPv4, 127.0.0.1 también refleja cualquier dirección entre 127.0.0.0 y 127.255.255.255.

Intente escribir 127.0.0.1 en su navegador y luego intente 127.0.0.2, 127.0.0.3, 127.0.0.4, 127.0.0.5, y así sucesivamente. Como puede ver, tenemos muchas direcciones IP y puede vincular hosts virtuales a cada una de ellas.

Agregar al archivo C:\Servidor\bin\Apache24\conf\extra\httpd-vhosts.conf las siguientes lineas:

Administrador del servidor [correo electrónico protegido] DocumentRoot "C:/Servidor/datos/htdocs/virthosts/host2/"

Reinicie el servidor web (haga un reinicio después de cada cambio en el archivo de configuración):

C:\Servidor\bin\Apache24\bin\httpd.exe -k reiniciar

Al mismo tiempo, nuestra configuración no afecta a otras IP 127.0.0.*, así como a localhost.

Hosts virtuales basados ​​en puertos (diferentes sitios en diferentes puertos)

Ahora agregue al archivo C:\Servidor\bin\Apache24\conf\extra\httpd-vhosts.conf líneas:

Escuchar 81 Administrador del servidor [correo electrónico protegido] DocumentRoot "C:/Servidor/datos/htdocs/virthosts/host3/"

Puede cambiar el puerto a cualquier otro que no se utilice en su sistema. También puede especificar una IP específica en lugar de un asterisco. Reinicie y abra http://localhost:81 en su navegador:

Hosts virtuales basados ​​en el nombre de host

El siguiente método requiere editar el archivo. C:\Windows\System32\drivers\etc\hosts(o haciendo un registro en su propio servidor DNS). Piense en cualquier nombre de host, preferiblemente uno que no coincida con el real. Ejemplos supersite, study.loc, video.ofme. voy a tomar como ejemplo estudio.loc. Abrir documento C:\Windows\System32\drivers\etc\hosts y agregar allí:

127.0.0.1 estudio.loc

y para archivar C:\Servidor\bin\Apache24\conf\extra\httpd-vhosts.conf añadir líneas:

ServerName localhost DocumentRoot "C:/Servidor/datos/htdocs/" ServerName study.loc DocumentRoot "C:/Server/data/htdocs/virthosts/host1/"

Reinicie el servidor y navegue en su navegador para:

Los subdominios se configuran de manera similar (dir1.study.loc, dir2.study.loc, dir3.localhost, etc.).

Creación automática de hosts/subdominios virtuales

En archivo C:\Servidor\bin\Apache24\conf\httpd.conf busque y elimine el comentario de la siguiente línea:

LoadModule vhost_alias_module módulos/mod_vhost_alias.so

Y también, si aún no lo ha hecho, la línea:

Incluir conf/extra/httpd-vhosts.conf

en directorio C:\Servidor\datos\htdocs\virthosts\ crear una carpeta servidor local(ahora su contenido se mostrará cuando escriba http://localhost en el navegador).

Archivar C:\Servidor\bin\Apache24\conf\extra\httpd-vhosts.conf agrega la siguiente línea

VirtualDocumentRoot "C:/Servidor/datos/htdocs/virthosts/%1/"

Reinicie el servidor.

Ahora cualquier carpeta creada en C:\Servidor\datos\htdocs\virthosts\ estará disponible en la dirección del formulario

http://nombrecarpeta.localhost

Configuración de SSL para Apache en Windows (migración de HTTP a HTTPS)

Si desea utilizar SSL en el servidor web Apache en Windows, necesita tres archivos: *.key, *.csr y *.crt. Si compró un certificado SSL válido para su sitio, estos archivos se le deben enviar después de la compra. Puede haber más de ellos, entre ellos puede haber certificados intermedios.

Si desea configurar SSL en un servidor web local, puede generar todos estos archivos usted mismo, es decir, crear un certificado autofirmado. Este certificado no es válido (no puede ser verificado por un tercero), pero para un ejercicio de migración de HTTP a HTTPS, está bien.

Se supone que instaló el servidor web; de lo contrario, reemplace las rutas absolutas con las suyas.

Abra un símbolo del sistema de Windows ( Ganar+x, luego seleccione " Línea de comando"). En el símbolo del sistema, ingrese los comandos:

Cd C:\Server\bin\Apache24\bin\ set OPENSSL_CONF=C:\Server\bin\Apache24\conf\openssl.cnf openssl.exe genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out localhost.key openssl.exe req -nueva -clave localhost.key -fuera localhost.csr

Cuando ingrese el último comando, aparecerán indicaciones en inglés. Su traducción sigue.

Se le pedirá que ingrese información que se incorporará a su solicitud de certificado. Lo que está a punto de ingresar es lo que se llama un nombre distinguido o un DN. Hay bastantes campos, pero puede dejar algunos en blanco. Para algunos campos habrá un valor predeterminado. Si ingresa ".", el campo se dejará en blanco. -----

Se le pedirá que ingrese información que se incluirá en su solicitud de certificado. Lo que ingresará se llama Nombre Distinguido o DN. Solo hay unos pocos campos que se pueden dejar en blanco. Algunos campos tendrán valores predeterminados. Si ingresa ".", el campo se dejará en blanco.

Nombre del país (código de 2 letras) :

Nombre del país de dos letras (código de dos letras)

Nombre del Estado o Provincia (nombre completo) :

Estado o provincia/Nombre de la provincia (nombre completo)

Nombre de la localidad (p. ej., ciudad):

Nombre de la localidad (por ejemplo, ciudad)

Nombre de la organización (p. ej., empresa):

El nombre de la organización (es decir, la empresa).

Nombre de la unidad organizativa (p. ej., sección):

Unidad organizativa (es decir, departamento)

Nombre común (por ejemplo, servidor FQDN o SU nombre):

Nombre común (por ejemplo, servidor FQDN o SU nombre). Puede ingresar localhost.

Dirección de correo electrónico :

Dirección de envio

Ingrese los siguientes atributos "adicionales" que se enviarán con su solicitud de certificado Una contraseña de desafío: Un nombre de empresa opcional:

Ingrese los siguientes atributos "opcionales" para enviar con su solicitud de certificado

  • Solicitud de contraseña:
  • Nombre de la empresa opcional:

Ahora ejecute el comando:

Openssl.exe x509 -req -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt

Como resultado, deberían aparecer tres archivos nuevos en el directorio C:\Server\bin\Apache24\bin\:

  • localhost.key
  • localhost.csr
  • localhost.crt

De estos, solo necesitamos dos:

  • localhost.key
  • localhost.crt

Al usar certificados para configurar un sitio web real, es más conveniente crear un host virtual con la siguiente configuración:

ServerName www.example.com SSLEngine en SSLCertificateFile "/ruta/a/www.example.com.crt" SSLCertificateKeyFile "/ruta/a/www.example.com.key"

Siga las instrucciones a continuación para configurar SSL en su servidor web Apache local en Windows.

En catálogo C:\Servidor\ crear una nueva carpeta certificados y mover archivos allí localhost.key y localhost.crt.

en directorio C:\Servidor\bin\Apache24\conf\ abre el archivo con un editor de texto httpd.conf. En la parte inferior, agregue las siguientes líneas:

LoadModule ssl_module módulos/mod_ssl.so Escuchar 443 DocumentRoot "c:/Server/data/htdocs/" ServerName localhost:443 ServerAdmin [correo electrónico protegido] ErrorLog "$(SRVROOT)/logs/error-ssl.log" TransferLog "$(SRVROOT)/logs/access-ssl.log" SSLEngine en SSLCertificateFile "C:\Server\certs\localhost.crt" SSLCertificateKeyFile "C:\ Servidor\certificados\localhost.key"

Tenga en cuenta que es posible que deba editar las siguientes directivas

  • Raiz del documento- especificar la ruta a los sitios en el servidor
  • Nombre del servidor- especifique el nombre de su host, si no es localhost

Tenga en cuenta que no solo pusimos estas líneas en el archivo de configuración, las envolvimos en un contenedor anfitrión virtual. El hecho es que si esto no se hace, entonces la directiva Motor SSL activado habilitará SSL para todo el servidor web, e incluso si intenta abrir sitios en el puerto 80, estas conexiones se tratarán como HTTPS, lo que provocará una "Solicitud incorrecta". Su navegador envió una solicitud que este servidor no pudo entender". Por este motivo, esta configuración se coloca en el contenedor del host virtual. Tenga en cuenta que se usa la palabra clave _default_; es decir, todas las solicitudes en el puerto 443 se recopilarán aquí si no están destinadas a otro host que también esté configurado. Es decir, si lo desea, puede crear más hosts virtuales para trabajar con HTTPS, mientras que en lugar de _defecto_ especificar la dirección IP o el carácter del host * (estrella).

Después de eso, guarde los cambios, cierre el archivo y reinicie el servidor web.

Para comprobar los cambios realizados, vaya a la dirección (protocolo HTTPS). Dado que el certificado es autofirmado, aparecerá el siguiente mensaje:

Los certificados autofirmados no son de confianza y este error no se puede eliminar sin agregar dichos certificados a los certificados de confianza. Haga clic en "Continuar de todos modos" para continuar.

Puede obtener certificados válidos reales para sus sitios (incluso gratis por cualquier cantidad de tiempo).

Archivo .bat para la administración del servidor (instalación del servidor, inicio, reinicio, etc.)

crear un archivo EJECUTAR.bat y copiar en él:

Expandir

:start @ECHO OFF TITLE Administrar servidor Apache local %TIME:~0.8% %DATE% echo Autor: Alexey Miloserdov (miloserdov.?p=21 echo ++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ + ECHO SELECCIONA LA ACCIÓN DESEADA CON EL SERVIDOR: ECHO ===================================== === ===================================== ECHO = 11 - Ejecutar el servidor una vez, sin instalación = ECHO = 12 - Iniciar el servidor si los servicios ya están instalados = ECHO = 13 - Reiniciar el servidor (solo Apache) = ECHO = 14 - Reiniciar el servidor (Apache + MySQL) = ECHO ========== ==== ============================================= === =============== ECHO = 21 - Instalación de servicios con el inicio del servidor = ECHO = 22 - Instalación del servidor solo (sin inicio) = ECHO ========= === =============================================== == ================= ECHO = 31 - Parada del servidor = ECHO ======================= == =============================================== = ==== ECHO = 41 - Detener y eliminar los servicios del servidor = ECHO === ================================================= ========================== ECHO = 51 - Iniciando ApacheMonitor.exe = ECHO =============== ================================================= ============= ECHO = 61 - Comprobar qué programa está escuchando en el puerto 80 = ECHO ======================= ================================================= =====ECHO=71 - Abrir http://localhost=ECHO=72 - Abrir carpeta de sitios=ECHO ===================== ==== ================================================= == ECO = 0 - Salir = ECO ======================================== =================================== eco ++++++ ++++++++ ++++++++++++++++++++++++++++++++++++++++++++++ ++++++ +++++ set /p ACTIONLEVEL=Ingrese el número de opción de lanzamiento y presione ENTER: ¡Operación ECHO #%ACTIONLEVEL% en progreso! Espere... IF "%ACTIONLEVEL%"=="0" (salir) IF "%ACTIONLEVEL%"=="11" (CLS echo RESULTADO DE LA OPERACIÓN: echo +++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ ++++ ECO EN INICIO /B c:\Servidor\bin\Apache24\bin\httpd.exe INICIO /B c:\Servidor\bin\mysql-8.0\bin\mysqld.exe --defaults-file= C:\Servidor\bin\mysql-8.0\my.ini --independiente --console echo +++++++++++++++++++++++++++++++ ++++ ++++++++++++++++++++++++++++++++++++++++ pausa ir a empezar) IF "%ACTIONLEVEL %"=="12 " (CLS echo RESULTADO DE LA OPERACIÓN: echo +++++++++++++++++++++++++++++++++++++ ++++++++ ++++++++++++++++++++++++++++ ECO EN c:\Server\bin\Apache24\bin\httpd.exe -k start ECHO Si no hay mensajes arriba de error significa que Apache está ejecutando net start mysql echo +++++++++++++++++++++++++++++++++++ +++++++++ +++++++++++++++++++++++++++++ pausa ir a empezar) IF "%ACTIONLEVEL%"=="13 " (CLS eco RESULTADO DE LA OPERACIÓN: eco ++++++++++++++++++++++++++++++++++++++++++++ ++++++++++ ++++++++++++++++++ ECO EN c:\Servidor\bin\A pache24\bin\httpd.exe -k restart ECHO Si no hay errores arriba, Apache ha reiniciado echo ++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++ ++++++++++++++++++++++ +++++++++++++++++++ pausa ir a empezar) IF "%ACTIONLEVEL%"=="14" (CLS echo RESULTADO DE LA OPERACIÓN: echo ++++++++ ++++++++++++++++++++++++++++++++++ ++++++++++++++++++ +++++++++++++ ECHO ON c:\Server\bin\Apache24\bin\httpd.exe -k restart ECHO Si arriba no hay mensajes de error significa que apache reinició net stop mysql net start mysql echo ++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++ pausa ir a empezar) SI "%ACTIONLEVEL%"=="21" (CLS echo RESULTADO DE LA OPERACIÓN: echo ++++++++++++++++++++++++++ ++++++++++++++++++++++++ +++++++++++++++++++++++++ ECO EN c:\ Servidor\bin\Apache24\bin\httpd.exe -k instalar c:\Servidor\bin\Apache24 \bin\httpd.exe -k iniciar c:\Servidor\bin\mysql-8. 0\bin\mysqld --instalar net start mysql echo ++++++++++++++++++++++++++++++++++++++++ ++ +++++++++++++++++++++++++++++++++ pausa ir a empezar) IF "%ACTIONLEVEL%"=="22" (CLS eco RESULTADO DE LA OPERACIÓN: eco ++++++++++++++++++++++++++++++++++++++++++++++ +++ +++++++++++++++++++ ECHO ON c:\Server\bin\Apache24\bin\httpd.exe -k install c:\Server\bin\mysql- 8.0\bin\mysqld --instalar eco ++++++++++++++++++++++++++++++++++++++++++++ +++++ +++++++++++++++++++++++++ pausa ir a empezar) IF "%ACTIONLEVEL%"=="31" (CLS echo RESULTADO DE LA OPERACIÓN: eco ++++ ++++++++++++++++++++++++++++++++++++++++++++++++ +++++++ +++++++++++++ ECHO ON c:\Server\bin\Apache24\bin\httpd.exe -k stop net stop mysql echo +++++++ ++++++++ ++++++++++++++++++++++++++++++++++++++++++++++ +++++++++ +++ pausa ir a empezar) IF "%ACTIONLEVEL%"=="41" (CLS echo RESULTADO DE LA OPERACIÓN: echo +++++++++++++++ ++++++++++++ ++++++++++++++++++++++++++++++++++++++++++ ++++++ ECHO EN c:\Servidor\ bin\Apache24\bin\httpd.exe -k stop c:\Servidor\bin\Apache24\ bin\httpd.exe -k desinstalar net stop mysql c:\Server\bin\mysql-8.0\bin\mysqld --remove echo +++++++++++++++++++++++ ++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++ pausa ir a empezar) IF "%ACTIONLEVEL%"=="51" (CLS echo RESULTADO DE LA OPERACIÓN: echo ++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++ ++++++++++++++++++ +++++++++++++++++++++ ECHO ON start c:\Server\bin\Apache24\bin\ ApacheMonitor.exe echo ¡ApacheMonitor.exe se está ejecutando! eco ++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ ++++++++++++++++++ pausa ir a empezar) IF "%ACTIONLEVEL%"=="71" (CLS echo RESULTADO DE LA OPERACIÓN: echo +++++++ ++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++ ++++++++ ECHO ON iniciar http://localhost echo +++++++++++++++++++++++++++++ ++++++ ++++++++++++++++++++++++++++++++++++++ Ir a empezar) SI "%ACTIONLEVEL% "=="72" (CLS echo RESULTADO DE LA OPERACIÓN: echo ++++++++++++++++++++++++++++++++++++++ ++++++++++ +++++++++++++++++++++++++ ECHO ON iniciar C:\Server\data\htdocs\ echo ++++ ++++++++++ ++++++++++++++++++++++++++++++++++++++++++ ++++++++++++ +++ ir a empezar) IF "%ACTIONLEVEL%"=="61" (CLS echo RESULTADO DE LA OPERACIÓN: echo +++++++++++++ ++++++++++++++ ++++++++++++++++++++++++++++++++++++++ ++++++++ ECHO ON para /f "tokens= 1,2,3,4,5*" %%i in ("netstat -aon ^| findstr ":80" ^| findstr /i listening" ) hacer echo %%j %%l & @tasklist | findstr %% m echo ++++++++++++++++++++++++++++++++++ ++++++++++++++++ +++++++++++++++++++++ pausa ir a estrella t) PAUSA SALIR

Guarde y cierre el archivo. Ejecute el archivo haciendo doble clic. En este caso, aparecerá un menú de texto para administrar el servidor web:

Habilitación de módulos para visualización de información y estado del servidor

Si desea monitorear de forma remota el estado del servidor (quizás usando scripts o programas automatizados), entonces puede resultarle útil habilitar módulos mod_status y mod_info.

En archivo C:\Servidor\bin\Apache24\conf\httpd.conf busque y descomente las siguientes líneas:

LoadModule status_module módulos/mod_status.so LoadModule info_module módulos/mod_info.so Incluir conf/extra/httpd-info.conf

En archivo C:\Servidor\bin\Apache24\conf\extra\httpd-info.conf cambie las líneas dadas (o simplemente elimínelas y reemplácelas con las sugeridas) para obtener:

SetHandler server-status Requerir host localhost Requerir ip::1 SetHandler server-info Requerir host localhost Requerir ip::1

Descomente la línea:

Estado extendido encendido

Reinicie el servidor.

Ahora, al acceder a http://localhost/server-info y http://localhost/server-status, podrá ver la información y el estado del servidor en tiempo real.

El servidor web Apache es la forma más popular de alojar contenido web en Internet. Más de la mitad de todos los sitios activos en todo el mundo lo utilizan, ya que Apache es una herramienta de alojamiento de contenido web extremadamente potente y flexible.

Apache se divide en bloques separados, cada uno de los cuales es responsable de su tarea específica y puede configurarse independientemente de los otros bloques. La unidad básica encargada de organizar el uso de los dominios en su servidor se llama host virtual.

El host virtual permite al administrador alojar varios dominios o sitios en un servidor y una dirección IP. Esto es relevante para aquellos que desean alojar múltiples sitios en un VPS.

Cada dominio que configure tendrá su propio directorio separado en su servidor, y los visitantes que ingresen a su sitio a través de diferentes dominios nunca cruzarán y ni siquiera sabrán que otros sitios están alojados en esta dirección IP. Este esquema puede incluir una cantidad ilimitada de dominios, subdominios y sitios en ellos, las posibilidades están limitadas solo por la potencia del hardware en el que está instalado Apache.

En este artículo, aprenderá cómo configurar hosts virtuales en un sistema Ubuntu 16.04 y brindar contenido diferente a diferentes usuarios según el dominio que ingresaron en la barra de direcciones.

Capacitación

Antes de comenzar a seguir los pasos de este artículo, se recomienda encarecidamente que cree un usuario con privilegios de root si aún no lo ha hecho. Puede leer cómo hacer esto en este artículo siguiendo los pasos 1-4.

Además, debe tener instalado el servidor web Apache2. Si aún no lo ha hecho, instálelo ejecutando los siguientes comandos:

sudo apt-get update sudo apt-get install apache2

Después de completar los pasos anteriores, podemos comenzar.

Para mayor claridad, este tutorial creará hosts virtuales para los dominios example.com y test.com. A lo largo del artículo, estos dominios se usarán en todos los comandos y archivos de configuración, pero cuando configure su servidor, deberá reemplazar estos dos dominios con los que desea usar.

Si aún no tiene dominios, o por alguna razón no desea vincularlos a su VPS, el sexto paso de esta guía tiene instrucciones sobre cómo puede emular el uso de dominios usando el archivo de hosts.

Paso uno: cree un árbol de directorios

Lo primero que debes hacer es preparar directorios para tus dominios. El directorio raíz de Apache es /var/www y aquí es donde crearemos los directorios para cada uno de los dominios que queramos usar. En cada uno de estos directorios, crearemos una carpeta public_html donde colocaremos los archivos de nuestro sitio.

Para los dominios dados como ejemplo, los comandos para crear directorios se verán así:

sudo mkdir -p /var/www/example.com /public_html sudo mkdir -p /var/www/test.com /public_html

Los dominios que vas a servir con tu VPS están resaltados en rojo.

Paso dos: asignación de permisos

Hemos creado una estructura de directorios para nuestros dominios, pero en esta etapa, solo el usuario raíz tiene acceso a estos directorios. Si queremos que un usuario normal pueda modificar archivos, debemos configurar los permisos ejecutando los siguientes comandos:

sudo chown -R $USUARIO:$USUARIO /var/www/example.com /public_html sudo chown -R $USUARIO:$USUARIO /var/www/test.com /public_html

La variable $USER se establece en el nombre de usuario con el que está conectado actualmente inmediatamente después de presionar el botón Enter. Así, tras ejecutar estos comandos, a nuestro usuario actual se le asigna el propietario de los directorios public_html en los que almacenará el contenido de sus sitios.

Además de los derechos de acceso completo para el usuario actual, debe asegurarse de que todas sus carpetas web estén abiertas para leer "para todos", esto es necesario para el correcto procesamiento de solicitudes y visualización de sitios:

sudo chmod -R 755 /var/www

Ahora nuestro servidor tiene los derechos de acceso necesarios para mostrar contenido a los visitantes, y nuestro usuario puede crear y modificar este contenido en directorios.

Paso tres: cree páginas de prueba para cada host virtual

Hemos creado una estructura de directorios y establecido permisos para ellos. Es hora de publicar contenido.
En este punto, solo debemos asegurarnos de que todo esté configurado y funcione correctamente, por lo que nos quedaremos con archivos index.html simples para cada host.
Comencemos con ejemplo.com. Puede crear un index.html y abrirlo en un editor de texto ejecutando el comando:

Nano /var/www/example.com/public_html/index.html

Dentro de este archivo, colocaremos un pequeño código html, gracias al cual podemos entender que hemos aterrizado en el sitio que necesitamos. Por ejemplo como este:

¡Bienvenido a Ejemplo.com!

¡Obras! ¡El host virtual de ejemplo.com está configurado correctamente!



Guarde y cierre el archivo.
Hagamos una copia del archivo recién creado para usarlo como base para un archivo similar del dominio test.com:

cp /var/www/example.com /public_html/index.html /var/www/test.com /public_html/index.html

Abramos una copia del archivo y cambiemos algunos valores en él:

Nano /var/www/test.com/public_html/index.html ¡Bienvenido a Test.com!

¡Obras! ¡El host virtual de test.com está configurado correctamente!



Guarde y cierre el archivo. Ahora tenemos páginas para probar el funcionamiento de Virtual Hosts.

Paso cuatro: creación de archivos de configuración de host virtual

Los archivos de configuración de host virtual son archivos que especifican cómo debe comportarse Apache al realizar solicitudes a diferentes dominios.
Por defecto, Apache ya tiene uno de esos archivos, 000-default.conf, podemos usarlo como muestra y punto de partida.
Tenemos que copiar 000-default.conf para el primer dominio, personalizarlo según nuestras necesidades y luego copiar el archivo ya modificado y configurarlo para el segundo dominio, haciendo ajustes menores. Vale la pena señalar que todos los nombres de archivos de configuración de host virtual en Ubuntu deben terminar con .conf

Vamos a crear el primer archivo de configuración.

Comencemos copiando el archivo 000-default.conf para nuestro primer dominio:

sudo cp /etc/apache2/sitios-disponibles/000-default.conf /etc/apache2/sitios-disponibles/ejemplo.com .conf

Abra el nuevo archivo en un editor de texto con privilegios de usuario root:

sudo nano /etc/apache2/sitios-disponibles/ejemplo.com .conf

Debería ver algo como la siguiente imagen (los comentarios se eliminaron del archivo para mayor claridad):

Administrador del servidor [correo electrónico protegido] DocumentRoot /var/www/html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log combinados

Como puede ver, la estructura de configuración es bastante simple. Cambiaremos algunas configuraciones y agregaremos algunas propias para que este archivo describa nuestro primer dominio. Gracias a este archivo, se procesarán todas las solicitudes recibidas en el puerto 80, el puerto estándar para las solicitudes HTTP.

Primero, cambiemos el parámetro ServerAdmin, coloque allí la dirección de correo electrónico a la que el administrador del sitio recibirá los mensajes:

Administrador del servidor [correo electrónico protegido]

Después de eso, debe agregar dos parámetros. El primero, ServerName, define el dominio para el que este host virtual manejará las solicitudes. El segundo, ServerAlias, define nombres alternativos para su sitio que serán tratados como el dominio principal. Esto es útil, por ejemplo, para hacer coincidir su dominio principal y www.***.

ServerName ejemplo.com ServerAlias ​​​​www.ejemplo.com

Lo último que debemos cambiar en el archivo de configuración base es la configuración de DocumentRoot, que define la ubicación del directorio desde el que se cargará nuestro sitio. Ya ha creado los directorios necesarios en el primer paso de nuestro tutorial, así que escribamos la dirección deseada en un archivo:

DocumentRoot /var/www/example.com/public_html

Después de las manipulaciones, nuestro archivo debería verse así:

Administrador del servidor [correo electrónico protegido] ServerName example.com ServerAlias ​​​​www.example.com DocumentRoot /var/www/example.com /public_html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log combinado

Guardemos y cerremos.

Copie el primer host virtual y configúrelo para manejar el segundo dominio

Ahora que el primer archivo de configuración está listo, podemos copiarlo y configurarlo para el segundo dominio.

sudo cp /etc/apache2/sitios-disponibles/ejemplo.com .conf /etc/apache2/sitios-disponibles/prueba.com .conf

Abramos un nuevo archivo con privilegios de root:

sudo nano /etc/apache2/sitios-disponibles/test.com .conf

Ahora tenemos que cambiar todas las configuraciones, configurándolas para el segundo dominio. Debería resultar algo como esto:

Administrador del servidor [correo electrónico protegido] ServerName test.com ServerAlias ​​​​www.test.com DocumentRoot /var/www/test.com /public_html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log combinado

Cuando haya terminado, guarde y cierre el archivo.

Paso cinco: activación de hosts virtuales

Ahora que hemos creado los archivos de configuración de hosts, necesitamos activarlos. Apache tiene varias herramientas que le permiten realizar operaciones de activación y desactivación de host.

Utilice la herramienta a2ensite para activar sus hosts. Ejemplo de uso:

sudo a2ensite ejemplo.com .conf sudo a2ensite test.com .conf

Después de ejecutar estos comandos, debe deshabilitar el host estándar:

sudo a2dissite 000-default.conf

Debe reiniciar Apache para que los cambios surtan efecto:

sudo systemctl reiniciar apache2

Para reiniciar también puedes usar otro comando:

reinicio del servicio sudo apache2

Este comando también funcionará, pero es posible que no obtenga resultados si lo prueba en otras distribuciones que no sean systemctl.

Paso seis: configuración del archivo de hosts (opcional)

Si configuró sus hosts virtuales para dominios de la vida real y configuró DNS para que las solicitudes de dominios se redirijan a su servidor, entonces todo está bien. Si aún no tiene dominios, o por alguna razón no desea adjuntarlos a su servidor todavía, puede usar el archivo de hosts de su computadora local para simular la navegación a través del dominio correcto para probar el host virtual.
Cuando siga los pasos a continuación, las solicitudes de ciertos dominios de su computadora local serán interceptadas y redirigidas a la fuerza a la dirección IP de su VPS, sin pasar por los servidores DNS. En este caso, los datos de redireccionamiento se procesarán exclusivamente para su computadora local, lo cual es muy conveniente para probar varios sistemas en la etapa de creación del sitio, incluida la prueba del host virtual.

Asegúrese de configurar una computadora local y no un VPS. Debe tener derechos de administrador o debe conocer la contraseña de la cuenta de administrador para poder realizar cambios en el archivo de hosts. Si está utilizando un sistema operativo Linux o Mac, ejecute el siguiente comando:

sudo nano /etc/hosts

Si está utilizando el sistema operativo Windows, encontrará el archivo de hosts en:

C:\Windows\System32\drivers\etc\hosts

En Windows, este archivo está oculto y es un archivo del sistema, es posible que deba habilitar la visualización de archivos ocultos y del sistema en la configuración de la carpeta.

Debe agregar los dominios utilizados en esta guía y la dirección IP pública de su VPS al archivo. Para los dominios que utilicé, asumiendo que mi dirección IP de VPS es 111.111.111.111, las entradas que se agregarán se verían así:

127.0.0.1 servidor local 111.111.111.111 ejemplo.com 111.111.111.111 prueba.com

Guarde y cierre el archivo. Ahora todas las solicitudes a los dominios example.com y test.com se redirigirán automáticamente a nuestro VPS 111.111.111.111 y los hosts virtuales las tratarán como si estuviéramos usando dominios reales.

Paso siete - Comprobación de la funcionalidad

Ahora todo está configurado y puede verificar el funcionamiento de los hosts virtuales ingresando examle.com en la barra de direcciones de su navegador. Si todo está bien, verá la siguiente página:

Del mismo modo, cuando consulte el dominio test.com, verá la página correspondiente:

Si ambas páginas se abren normalmente, podemos suponer que dos hosts virtuales están configurados y funcionando correctamente en su servidor. Si ha realizado cambios en el archivo de hosts, puede eliminarlos para no ensuciar la configuración del sistema con información innecesaria.

Conclusión

Si ha seguido cuidadosamente todos los puntos de esta guía, entonces su servidor está configurado correctamente para trabajar con dos hosts virtuales. Puedes continuar y, repitiendo todos los puntos, añadir tantos dominios como consideres necesarios. No sea tímido, Apache no tiene restricciones de software en la cantidad de hosts virtuales, la cantidad de dominios y sitios que el servidor puede manejar está limitada solo por las capacidades técnicas del hardware en el que está instalado Apache.

Hola a todos los lectores del blog, en este artículo describiré el proceso de cómo configurar hosts virtuales en Apache en Ubuntu 14. Creo que los pasos descritos también se pueden aplicar a una versión anterior o posterior de Ubuntu.

Introducción

A continuación, consideraremos la creación de un host virtual para un nombre de dominio. ejemplo.com. Para los dominios cirílicos, debe traducir el nombre de dominio a punycode, por ejemplo, utilizando este servicio:

Paso 1. Crea una estructura de directorios

En esta etapa, debe crear una estructura de directorio que contenga los datos del sitio que se mostrarán a los usuarios.

Nuestro directorio raíz (o raíz del documento) se configurará para usar directorios dentro de un directorio /var/www. Aquí crearemos un directorio para el host virtual. ejemplo.com que planeamos personalizar. También crearemos un directorio anidado public_html, que contendrá los archivos del sitio.

Cree los directorios necesarios con el siguiente comando:

sudo mkdir -p /var/www/ ejemplo.com/public_html

Paso 2. Asignar derechos de acceso

Ahora tenemos una estructura de directorios para los archivos del sitio, pero estos directorios son propiedad del usuario root. Si queremos que los usuarios regulares puedan cambiar archivos en el directorio web, entonces podemos cambiar su propietario usando el siguiente comando:

sudo chown -R $USUARIO:$USUARIO /var/www/ ejemplo.com/public_html

La variable $USER contiene el nombre de usuario con el que está conectado actualmente. El usuario actual ahora posee el directorio public_html donde almacenaremos los archivos del sitio.

También debe editar los permisos para asegurarse de que se permite el acceso de lectura al directorio web compartido y todos los archivos y carpetas que contiene. Esto es necesario para que las páginas del sitio se muestren correctamente:

sudo chmod -R 755 /var/www

Su servidor web ahora debería tener los permisos que necesita para mostrar el contenido. Además, ahora su usuario tiene la capacidad de crear contenido en los directorios requeridos.

Paso 3. Cree una página de demostración para el host

Ahora que la estructura del directorio está lista, podemos crear contenido para mostrar a los visitantes del sitio. ejemplo.com.

Estamos haciendo esto solo para probar, por lo que la página de prueba será muy simple.

en la carpeta public_html dominio ejemplo.com crear un archivo índice.php:

Nano /var/www/ ejemplo.com/public_html/index.php

En este archivo, vamos a crear un script PHP simple para asegurarnos de que todo funcione:

Cuando haya terminado, guarde y cierre el archivo. Ahora tenemos la página que necesitamos para verificar la configuración del host virtual.

Paso 4. Cree un archivo de host virtual

Los archivos de host virtual definen su configuración y determinan cómo responderá el servidor web Apache a las solicitudes de diferentes dominios.

La configuración predeterminada de Ubuntu requiere que cada archivo de host virtual termine con la extensión .conf. Por defecto, Apache tiene un archivo de host virtual 000-predeterminado.conf, que podemos usar como punto de partida. Copie este archivo para crear un archivo de host virtual para nuestro dominio basado en él. ejemplo.com.

sudo cp /etc/apache2/sitios-disponibles/000-default.conf /etc/apache2/sitios-disponibles/ ejemplo.com.conf

Abramos este nuevo archivo en un editor raíz:

Sudo nano /etc/apache2/sitios-disponibles/ ejemplo.com.conf

El archivo tendrá algo como esto:

Administrador del servidor [correo electrónico protegido] DocumentRoot /var/www/html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log combinados

En primer lugar, debemos cambiar la directiva ServerAdmin a la dirección de correo electrónico donde el administrador del sitio recibirá los correos electrónicos.

Administrador del servidor [correo electrónico protegido]ejemplo.com

Entonces tenemos que añadir dos nuevas directivas. Primero, Nombre del servidor, establece el dominio principal, que debe coincidir con el nombre del host virtual. Este debe ser su nombre de dominio. Segundo, ServerAlias, define otros nombres que deben interpretarse como si fuera el dominio principal. Esto es útil para usar nombres de dominio adicionales, por ejemplo usando www:

Nombre del servidor ejemplo.com ServerAlias www.ejemplo.com

Lo único que queda por cambiar en el archivo de host virtual base es la ubicación del directorio raíz de este dominio. Ya hemos creado el directorio requerido, así que todo lo que tenemos que hacer es cambiar la directiva Raiz del documento para que se refiera al directorio que creamos:

DocumentRoot /var/www/ ejemplo.com/public_html

Nuestro archivo de host virtual ahora debería verse así:

Administrador del servidor [correo electrónico protegido] Nombre del servidor ejemplo.com ServerAlias www.ejemplo.com DocumentRoot /var/www/ ejemplo.com/public_html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log combinados

Guarde y cierre el archivo.

Paso 5. Habilite el nuevo host virtual

Ahora que hemos creado el archivo de host virtual ejemplo.com, necesita activar el sitio usando la utilidad a2ensite:

Sudo a2ensite ejemplo.com.conf

Una vez completado, debe reiniciar Apache para que los cambios surtan efecto:

reinicio del servicio sudo apache2

Paso 6. Probando el resultado

Ahora que el host virtual está configurado, puede probar fácilmente la funcionalidad yendo a la dirección previamente configurada en el navegador:

http://ejemplo.com

Debería ver una página similar:

Si el sitio funciona, entonces ha configurado con éxito el host virtual en el servidor web Apache en Ubuntu. Apache puede manejar cualquier cantidad de nombres de dominio, por lo que puede agregar hosts virtuales a Apache siempre que su servidor pueda manejar la carga.

Este artículo describe cómo crear varios hosts virtuales en una máquina local. Los webmasters deben poder realizar esta acción cuando están desarrollando varios sitios.

Primero, una pequeña explicación.

¿Qué es un host virtual? Esta es una configuración de servidor web local donde el servidor web comienza a responder al nombre dado, no solo a la IP 127.0.0.1 o al alias localhost. Es decir, al configurar un host virtual con el nombre site.ru, el servidor web local comenzará a responder a esta URL en el navegador.

El servidor web se puede configurar con varios nombres de sitios. Luego, el servidor web comenzará a emitir páginas correspondientes al directorio en el que se encuentran los datos para el nombre especificado. Por ejemplo, hay dos servidores virtuales: site.ru y money.com. El directorio de trabajo para site.ru es /var/www/site.ru, y para money.com el directorio de trabajo es /var/www/money.com. Si ahora accede a site.ru en el navegador, el servidor web generará páginas desde el directorio /var/www/site.ru, y si accede a money.com, el servidor web generará páginas desde /var/www / directorio money.com. Cómo hacer tal configuración está escrito en este artículo.

EN Debian 5.x.x, el servidor Apache-2 está listo para trabajar con hosts virtuales inmediatamente después de la instalación. Pero configurado para un solo host (predeterminado), que está disponible como localhost. Para agregar otro host virtual, haga lo siguiente:

1. Agregue un archivo vacío con un nombre arbitrario al directorio /etc/apache2/sites-available. Por conveniencia, es mejor dar un nombre de archivo que contenga el nombre del host virtual. Por ejemplo, si planea agregar un host virtual llamado studio.ru, debe especificar el nombre de archivo studio.ru.conf.

2. En este archivo debe ingresar (aproximadamente) lo siguiente:

Nombre del servidor studio.ru
ServerAlias ​​www.studio.ru

DocumentRoot "/var/www/studio"


permitir de todos
Opciones+Índices

  • ServerName, ServerAlias ​​​​es la URL escrita en el navegador a la que debe responder este host virtual;
  • DocumentRoot es el directorio raíz de este host virtual;
  • Sección de directorio: configuración de los derechos de acceso al directorio especificado. En este caso, se configuran los derechos de acceso al directorio raíz del host virtual.

Debe prestar atención al parámetro de la sección VirtualHost. Aquí está escrito como "*:80". Pero asegúrese de mirar en el archivo /etc/apache2/sitios-disponibles/predeterminado y vea qué parámetro está escrito allí en la misma sección VirtualHost. Si se escribe "*", entonces en nuestro archivo también debemos escribir "*".

En otras palabras, debe buscar en el archivo /etc/apache2/ports.conf. Allí necesitas encontrar la directiva:

NombreVirtualHost *:80

Qué valor hay en esta directiva (aquí - "*: 80"), dicho valor debe especificarse como un parámetro de la sección VirtualHost en todos los archivos del directorio /etc/apache2/sites-disponible, de lo contrario, los hosts no serán visible.

Un error común es cuando se escribe "*.80" en /etc/apache2/ports.conf y se escribe "*" en el archivo de host en la sección VirtualHost. Aunque la máscara "*" cubre la máscara "*.80", Apache no comprende esta notación. ¡Con esta configuración, el servidor Apache no encontrará el host correcto!

3. Necesitamos ir al directorio /etc/apache2/sites-enabled y crear un enlace simbólico allí al archivo que creamos:

# cd /etc/apache2/sites-enabled
# ln -s /etc/apache2/sites-disponible/studio.ru.conf studio.ru.conf

4. Debe reiniciar Apache con los comandos:

# /etc/init.d/apache2 parada
Deteniendo el servidor web: apache2 ... esperando.

# /etc/init.d/apache2 inicio
Iniciando servidor web: apache2.

en el momento del reinicio, debe mirar para ver si aparecen mensajes de error o advertencias en la consola. En un Apache configurado normalmente, no se deben emitir mensajes de error (¡e incluso advertencias!).

5. El último paso es abrir el archivo /etc/hosts y escribir allí una nueva línea con el siguiente contenido:

127.0.0.1 estudio.ru

esto permitirá que el navegador acceda a Apache localmente en lugar de buscar el sitio en Internet.

Todo, la configuración está terminada. No se requieren reinicios.

Puede introducir la URL en el navegador http://studio.ru/index.html, y el archivo debería abrirse /var/www/studio/index.html(si él es). Por lo tanto, queda claro de inmediato que el host virtual se ha creado y se muestra en el navegador. Otros hosts virtuales se agregan de manera similar.

Varios sitios, entonces Apache para estos fines ofrece la posibilidad de configurar hosts virtuales (hosts virtuales). Los hosts virtuales son de dos tipos: hosts virtuales basados ​​en nombres, es decir, vinculado a un nombre de dominio, y Hosts virtuales basados ​​en IP, es decir, vinculado a una dirección IP. Los hosts virtuales del primer tipo usan diferentes nombres para una dirección IP y el segundo tipo usa una dirección IP separada para cada sitio. La creación de hosts virtuales en Apache es necesaria si tiene varios sitios en su servidor, y su configuración es necesaria para la visualización correcta de todos los sitios.

El más común es utilizar hosts virtuales basados ​​en nombres vinculados a una sola dirección IP. Por lo tanto, es posible almacenar muchos sitios en una IP.

La forma más fácil de agregar y luego configurar hosts virtuales Apache es editar el archivo de configuración del servidor web, que tiene diferentes nombres y ubicaciones según el sistema operativo:

EN sombrero rojo/CentOS/Fedora:

/etc/httpd/conf/httpd.conf

Debian/ubuntu:

/etc/apache2/apache2.conf

La segunda forma de personalizar es usar su propia .conf archivos que deben colocarse a lo largo de la ruta:

EN sombrero rojo/CentOS/Fedora:

/etc/httpd/conf.d/nombre de archivo.conf,

Debian/ubuntu:

/etc/apache2/conf.d/nombre de archivo.conf.

Por lo general, en el archivo de configuración httpd.conf o apache2.conf la sección de administración de host virtual se encuentra al final. Para agregar un host virtual, deberá abrir este archivo y descomentarlo (eliminar # ) directiva NombreVirtualHost *:80(Argumento * significa "todos los nombres de host"). Si el método de colocar la configuración en conf.d, entonces no es necesario descomentar la directiva especificada, pero debe definirse en el propio archivo generado.

Después NombreVirtualHost seguido de un bloque Servidor virtual *: 80. Dichos bloques son la configuración de sus hosts virtuales. Todo se ve así:

NombreVirtualHost *:80 Permitir anular todas las opciones Todas Administrador del servidor [correo electrónico protegido] DocumentRoot /var/www/site1.ru ServerName site1.ru ServerAlias ​​​​www.site1.ru ErrorLog logs/site1.ru-error_log CustomLog logs/site1.ru-access_log common Administrador del servidor [correo electrónico protegido] DocumentRoot /var/www/site2.ru ServerName site2.ru ServerAlias ​​​​www.site2.ru ErrorLog logs/site2.ru-error_log CustomLog logs/site2.ru-access_log common

Es aquí donde se realizan todas las configuraciones para los hosts virtuales, así como también se habilitan o deshabilitan ciertas opciones.

Echemos un vistazo más de cerca a lo que cada una de las directivas anteriores es responsable.

1. Directiva Administrador del servidor especifica la dirección de correo electrónico del administrador del servidor, a la que se envían todas las notificaciones del host con respecto a su administración.

2. Directiva Raiz del documento especifica el directorio raíz con los archivos del sitio que el servidor web enviará al cliente (navegador).

3. Directiva nombre del servidor define el nombre del host a petición del cual se deben emitir los archivos ubicados en DocumentRoot.

4. Directiva ServerAlias sirve para especificar hostnames alternativos (alias, alias) a los que responde.

5. Directiva Registro de errores especifica los archivos de registro de errores para cada host, y Registro personalizado– archivos de registro para todo lo demás excepto errores.

Antes de los bloques con hosts virtuales, como notó, hay otra entrada:

Permitir anular todo

en etiquetas contiene una lista de directivas (parámetros) que se aplicarán a un directorio específico, que se indica en la etiqueta de apertura. En el ejemplo anterior, esto es var/www/. directiva especificada Permitir sobrescritura especifica si usar archivos .htaccess y, de ser así, qué directivas globales del servidor web se pueden anular en dichos archivos. En el ejemplo anterior, el valor Permitir sobrescritura establecido en Todos, que permite procesar archivos .htaccess y todas las directivas especificadas en él. Hay otros valores posibles:

AuthConfig– permite usar directivas de autorización (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require, etc.).

Información del archivo– permite el uso de directivas que controlan tipos de documentos (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, etc.).

índices- permite usar directivas para controlar la indexación de directorios (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, etc.).

límite- Permite el uso de directivas de control de acceso (permitir, denegar y ordenar).

Opciones- permite el uso de directivas con las que puede controlar las características específicas del directorio (Opciones y XBitHack).

Esta es una de las muchas directivas posibles que puede consultar en el sitio del desarrollador.

Después de guardar los cambios en el archivo, debe verificar la nueva configuración en busca de errores. Puede utilizar los siguientes comandos para realizar la comprobación:

apachectl prueba de configuración apachectl -S apachectl -d

Si se recibe un mensaje Sintaxis Aceptar”, significa que no hay errores y puede reiniciar el servidor web para que los cambios surtan efecto. Puedes hacer esto con los siguientes comandos:

Sombrero rojo/CentOS/Fedora:

reiniciar servicio httpd

/etc/init.d/ reinicio de httpd

Debian/Ubuntu:

reinicio del servicio apache2

/etc/init.d/apache2 reiniciar

Además, puede encontrar el siguiente problema. Cuando llega una solicitud, Apache revisa la lista completa de hosts virtuales en busca de uno que coincida y, si no encuentra una coincidencia, devuelve el primer host en orden. Para eliminar este problema, los expertos idearon la llamada sección de trozo, que debe insertarse antes de la primera sección. anfitrión virtual sitio real Se parece a esto:

Nombre del servidor por defecto DocumentRoot /var/www/default

Por lo tanto, todas las solicitudes no válidas se enviarán a lo largo de la ruta. var/www/predeterminado, donde puede crear una página de índice que informará una consulta incorrecta.

Además, Apache por defecto no tiene acceso a sus directorios de inicio, solo al directorio /var/www. Si está ejecutando SElinux en su servidor, use los siguientes comandos para dar acceso a Apache a los directorios de inicio:

Setsebool-P httpd_enable_homedirs 1

Setsebool -Papache2_enable_homedirs 1

Para que Apache tenga acceso a un directorio específico, por ejemplo, a /inicio/midir se debe usar el comando:

Chcon -R -t httpd_sys_content_t /home/mydir

Chcon -R -t apache2_sys_content_t /home/mydir

con discapacidad SELinux Para dar acceso a Apache al directorio de inicio de un sitio web en particular, deberá editar manualmente su archivo de configuración ( /etc/httpd/conf/httpd.conf en CentOS/Fedora o /etc/apache2/apache2.conf en Debian/Ubuntu).

Después de abrir el archivo de configuración del servidor web para editarlo, busque la línea Raiz del documento(al usar el editor nano, se puede encontrar usando el atajo de teclado ctrl+w). Reemplazar valor entre comillas /var/www/html a la ruta absoluta al directorio de inicio del sitio (por ejemplo, /home/nombredeusuario/sitio.com). Guarde sus cambios y salga del menú del editor ( Control+O y Ctrl+X). Reinicie Apache.

Si tiene un sistema operativo instalado en su VPS Debian/Ubuntu, luego edite la línea Raiz del documento necesario en el archivo /etc/apache2/sitios-disponibles/predeterminado. Ábralo para editarlo y reemplace el valor predeterminado /var/www a la ruta absoluta al directorio de inicio del sitio. Reinicie el servidor web.

Esto completa la configuración básica de los hosts virtuales.