{"id":799,"date":"2022-02-28T02:41:04","date_gmt":"2022-02-28T02:41:04","guid":{"rendered":"https:\/\/dsantana.uas.edu.mx\/?p=799"},"modified":"2025-01-16T19:16:33","modified_gmt":"2025-01-16T19:16:33","slug":"apache","status":"publish","type":"post","link":"https:\/\/dsantana.uas.edu.mx\/index.php\/2022\/02\/28\/apache\/","title":{"rendered":"Apache"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\" id=\"introduction\">Introducci\u00f3n<\/h3>\n\n\n\n<p>El servidor Apache HTTP es el servidor web m\u00e1s utilizado en el mundo.&nbsp;Proporciona muchas funciones potentes que incluyen m\u00f3dulos cargables din\u00e1micamente, soporte de medios s\u00f3lido y una amplia integraci\u00f3n con otro software popular.<\/p>\n\n\n\n<p>En esta gu\u00eda, explicaremos c\u00f3mo instalar un servidor web Apache en su servidor Debian 9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"prerequisites\">requisitos previos<\/h2>\n\n\n\n<p>Antes de comenzar esta gu\u00eda, debe tener un usuario no root normal con privilegios sudo configurado en su servidor.&nbsp;Adem\u00e1s, deber\u00e1 habilitar un firewall b\u00e1sico para bloquear puertos no esenciales.<\/p>\n\n\n\n<p>Cuando tenga una cuenta disponible, inicie sesi\u00f3n como su usuario no root para comenzar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"step-1-installing-apache\">Paso 1: Instalaci\u00f3n de Apache<\/h2>\n\n\n\n<p>Apache est\u00e1 disponible en los repositorios de software predeterminados de Debian, lo que permite instalarlo mediante herramientas de administraci\u00f3n de paquetes convencionales.<\/p>\n\n\n\n<p>Comencemos por actualizar el \u00edndice del paquete local para reflejar los cambios m\u00e1s recientes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update<\/code><\/pre>\n\n\n\n<p>Luego, instale el&nbsp;<code>apache2<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install apache2\n<\/code><\/pre>\n\n\n\n<p>Despu\u00e9s de confirmar la instalaci\u00f3n,&nbsp;<code>apt<\/code> instalar\u00e1 Apache y todas las dependencias requeridas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"step-2-adjusting-the-firewall\">Paso 2: Ajustar el cortafuegos<\/h2>\n\n\n\n<p>Antes de probar Apache, es necesario modificar la configuraci\u00f3n del firewall para permitir el acceso externo a los puertos web predeterminados.&nbsp;Suponiendo que sigui\u00f3 las instrucciones de los requisitos previos, debe tener un firewall UFW configurado para restringir el acceso a su servidor.<\/p>\n\n\n\n<p>Durante la instalaci\u00f3n, Apache se registra con UFW para proporcionar algunos perfiles de aplicaci\u00f3n que se pueden usar para habilitar o deshabilitar el acceso a Apache a trav\u00e9s del firewall.<\/p>\n\n\n\n<p>Enumere los&nbsp;<code>ufw<\/code>perfiles de aplicaci\u00f3n escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw app list<\/code><\/pre>\n\n\n\n<p>Ver\u00e1 una lista de los perfiles de aplicaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OutputAvailable applications:\n  AIM\n  Bonjour\n  CIFS\n. . . \n WWW\n WWW Cache\n WWW Full\n WWW Secure\n. . . <\/code><\/pre>\n\n\n\n<p>Los perfiles de Apache comienzan con WWW:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>WWW<\/strong>\u00a0: este perfil abre solo el puerto 80 (tr\u00e1fico web normal y sin cifrar)<\/li>\n\n\n\n<li><strong>Cach\u00e9 WWW<\/strong>\u00a0: este perfil abre solo el puerto 8080 (a veces se usa para almacenamiento en cach\u00e9 y proxies web)<\/li>\n\n\n\n<li><strong>WWW Full<\/strong>\u00a0: este perfil abre tanto el puerto 80 (tr\u00e1fico web normal y sin cifrar) como el puerto 443 (tr\u00e1fico cifrado con TLS\/SSL)<\/li>\n\n\n\n<li><strong>WWW Secure<\/strong>\u00a0: este perfil abre solo el puerto 443 (tr\u00e1fico encriptado TLS\/SSL)<\/li>\n<\/ul>\n\n\n\n<p>Se recomienda que habilite el perfil m\u00e1s restrictivo que seguir\u00e1 permitiendo el tr\u00e1fico que ha configurado.&nbsp;Como a\u00fan no hemos configurado SSL para nuestro servidor en esta gu\u00eda, solo necesitaremos permitir el tr\u00e1fico en el puerto 80:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 'WWW'<\/code><\/pre>\n\n\n\n<p>Puede verificar el cambio escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw status<\/code><\/pre>\n\n\n\n<p>Deber\u00eda ver el tr\u00e1fico HTTP permitido en el resultado mostrado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OutputStatus: active\n\nTo                         Action      From\n--                         ------      ----\nOpenSSH                    ALLOW       Anywhere\nWWW                        ALLOW       Anywhere\nOpenSSH (v6)               ALLOW       Anywhere (v6)\nWWW (v6)                   ALLOW       Anywhere (v6)<\/code><\/pre>\n\n\n\n<p>Como puede ver, el perfil se ha activado para permitir el acceso al servidor web.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"step-3-checking-your-web-server\">Paso 3: Comprobaci\u00f3n de su servidor web<\/h2>\n\n\n\n<p>Al final del proceso de instalaci\u00f3n, Debian 9 inicia Apache.&nbsp;El servidor web ya deber\u00eda estar en funcionamiento.<\/p>\n\n\n\n<p>Verifique con el&nbsp;<code>systemd<\/code>sistema de inicio para asegurarse de que el servicio se est\u00e9 ejecutando escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status apache2<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\u25cf apache2.service - The Apache HTTP Server\n   Loaded: loaded (\/lib\/systemd\/system\/apache2.service; enabled; vendor preset: enabled)\n   Active: active (running) since Wed 2018-09-05 19:21:48 UTC; 13min ago\n Main PID: 12849 (apache2)\n   CGroup: \/system.slice\/apache2.service\n           \u251c\u250012849 \/usr\/sbin\/apache2 -k start\n           \u251c\u250012850 \/usr\/sbin\/apache2 -k start\n           \u2514\u250012852 \/usr\/sbin\/apache2 -k start\n\nSep 05 19:21:48 apache systemd&#91;1]: Starting The Apache HTTP Server...\nSep 05 19:21:48 apache systemd&#91;1]: Started The Apache HTTP Server.\n<\/code><\/pre>\n\n\n\n<p>Como puede ver en este resultado, el servicio parece haberse iniciado correctamente.&nbsp;Sin embargo, la mejor manera de probar esto es solicitar una p\u00e1gina de Apache.<\/p>\n\n\n\n<p>Puede acceder a la p\u00e1gina de destino predeterminada de Apache para confirmar que el software se est\u00e1 ejecutando correctamente a trav\u00e9s de su direcci\u00f3n IP.&nbsp;Si no conoce la direcci\u00f3n IP de su servidor, puede obtenerla de diferentes maneras desde la l\u00ednea de comandos.<\/p>\n\n\n\n<p>Intente escribir esto en el s\u00edmbolo del sistema de su servidor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>hostname -I<\/code><\/pre>\n\n\n\n<p>Recibir\u00e1 algunas direcciones separadas por espacios.&nbsp;Puede probar cada uno en su navegador web para ver si funcionan.<\/p>\n\n\n\n<p>Una alternativa es usar la&nbsp;<code>curl<\/code>herramienta, que deber\u00eda brindarle su direcci\u00f3n IP p\u00fablica tal como se ve desde otra ubicaci\u00f3n en Internet.<\/p>\n\n\n\n<p>Primero, instale&nbsp;<code>curl<\/code>usando&nbsp;<code>apt<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install curl<\/code><\/pre>\n\n\n\n<p>Luego, use&nbsp;<code>curl<\/code>para recuperar&nbsp;<a href=\"http:\/\/icanhazip.com\/\">icanhazip.com<\/a>&nbsp;usando IPv4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -4 icanhazip.com<\/code><\/pre>\n\n\n\n<p>Cuando tenga la direcci\u00f3n IP de su servidor, ingr\u00e9sela en la barra de direcciones de su navegador:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:\/\/<mark>your_server_ip<\/mark>\n<\/code><\/pre>\n\n\n\n<p>Deber\u00eda ver la p\u00e1gina web predeterminada de Debian 9 Apache:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1624\" height=\"1704\" src=\"https:\/\/dsantana.uas.edu.mx\/wp-content\/uploads\/2022\/02\/small_apache_default_debian9.png\" alt=\"\" class=\"wp-image-800\"\/><\/figure>\n\n\n\n<p>Esta p\u00e1gina indica que Apache est\u00e1 funcionando correctamente.&nbsp;Tambi\u00e9n incluye informaci\u00f3n b\u00e1sica sobre archivos importantes de Apache y ubicaciones de directorios.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"step-4-managing-the-apache-process\">Paso 4: Administrar el proceso de Apache<\/h2>\n\n\n\n<p>Ahora que tiene su servidor web en funcionamiento, repasemos algunos comandos b\u00e1sicos de administraci\u00f3n.<\/p>\n\n\n\n<p>Para detener su servidor web, escriba:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl stop apache2<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Para iniciar el servidor web cuando est\u00e1 detenido, escriba:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start apache2<\/code><\/pre>\n\n\n\n<p>Para detener y volver a iniciar el servicio, escriba:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart apache2<\/code><\/pre>\n\n\n\n<p>Si simplemente est\u00e1 realizando cambios de configuraci\u00f3n, Apache a menudo puede volver a cargar sin perder las conexiones.&nbsp;Para hacer esto, use este comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl reload apache2<\/code><\/pre>\n\n\n\n<p>De forma predeterminada, Apache est\u00e1 configurado para iniciarse autom\u00e1ticamente cuando se inicia el servidor.&nbsp;Si esto no es lo que desea, deshabilite este comportamiento escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl disable apache2<\/code><\/pre>\n\n\n\n<p>Para volver a habilitar el servicio para que se inicie en el arranque, escriba:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable apache2<\/code><\/pre>\n\n\n\n<p>Apache ahora deber\u00eda iniciarse autom\u00e1ticamente cuando el servidor se inicie de nuevo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"step-5-setting-up-virtual-hosts-recommended\">Paso 5: Configuraci\u00f3n de hosts virtuales (recomendado)<\/h2>\n\n\n\n<p>Al usar el servidor web Apache, puede usar&nbsp;<em>hosts virtuales<\/em>&nbsp;(similares a los bloques de servidor en Nginx) para encapsular los detalles de configuraci\u00f3n y alojar m\u00e1s de un dominio desde un solo servidor.&nbsp;Configuraremos un dominio llamado&nbsp;<strong><a href=\"http:\/\/example.com\/\">ejemplo.com<\/a><\/strong>&nbsp;, pero debe&nbsp;<strong>reemplazarlo con su propio nombre de dominio<\/strong>&nbsp;.<\/p>\n\n\n\n<p>Apache en Debian 9 tiene un bloque de servidor habilitado de forma predeterminada que est\u00e1 configurado para entregar documentos desde el&nbsp;<code>\/var\/www\/html<\/code>directorio.&nbsp;Si bien esto funciona bien para un solo sitio, puede volverse dif\u00edcil de manejar si aloja varios sitios.&nbsp;En lugar de modificar&nbsp;<code>\/var\/www\/html<\/code>, vamos a crear una estructura de directorio dentro&nbsp;<code>\/var\/www<\/code>de nuestro sitio&nbsp;<strong><a href=\"http:\/\/example.com\/\">example.com<\/a><\/strong>&nbsp;, dej\u00e1ndolo&nbsp;<code>\/var\/www\/html<\/code>como el directorio predeterminado que se atender\u00e1 si la solicitud de un cliente no coincide con ning\u00fan otro sitio.<\/p>\n\n\n\n<p>Cree el directorio para&nbsp;<strong><a href=\"http:\/\/example.com\/\">ejemplo.com<\/a><\/strong>&nbsp;de la siguiente manera, usando la&nbsp;<code>-p<\/code>marca para crear los directorios principales necesarios:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir -p \/var\/www\/<mark>example.com<\/mark>\/html<\/code><\/pre>\n\n\n\n<p>A continuaci\u00f3n, asigne la propiedad del directorio con la&nbsp;<code>$USER<\/code>variable ambiental:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chown -R $USER:$USER \/var\/www\/<mark>example.com<\/mark>\/html<\/code><\/pre>\n\n\n\n<p>Los permisos de sus ra\u00edces web deber\u00edan ser correctos si no ha modificado su&nbsp;<code>unmask<\/code>valor, pero puede asegurarse escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chmod -R 755 \/var\/www\/<mark>example.com<\/mark><\/code><\/pre>\n\n\n\n<p>Dupdo<\/p>\n\n\n\n<p>Luego, crea una&nbsp;<code>index.html<\/code>p\u00e1gina de muestra usando&nbsp;<code>nano<\/code>o tu editor favorito:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/var\/www\/<mark>example.com<\/mark>\/html\/index.html<\/code><\/pre>\n\n\n\n<p>En el interior, agregue el siguiente c\u00f3digo HTML de muestra:\/var\/www\/ejemplo.com\/html\/index.html<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;html&gt;\n    &lt;head&gt;\n        &lt;title&gt;Welcome to <mark>Example.com<\/mark>!&lt;\/title&gt;\n    &lt;\/head&gt;\n    &lt;body&gt;\n        &lt;h1&gt;Success!  The <mark>example.com<\/mark> virtual host is working!&lt;\/h1&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<p>Guarde y cierre el archivo cuando haya terminado.<\/p>\n\n\n\n<p>Para que Apache sirva este contenido, es necesario crear un archivo de host virtual con las directivas correctas.&nbsp;En lugar de modificar el archivo de configuraci\u00f3n predeterminado ubicado en&nbsp;<code>\/etc\/apache2\/sites-available\/000-default.conf<\/code>directamente, hagamos uno nuevo en&nbsp;:<code>\/etc\/apache2\/sites-available\/<mark>example.com<\/mark>.conf<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/apache2\/sites-available\/<mark>example.com<\/mark>.conf\n<\/code><\/pre>\n\n\n\n<p>Pegue el siguiente bloque de configuraci\u00f3n, que es similar al predeterminado, pero actualizado para nuestro nuevo directorio y nombre de dominio:\/etc\/apache2\/sitios-disponibles\/ejemplo.com.conf<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:80&gt;\n    ServerAdmin <mark>admin@example.com<\/mark>\n    ServerName <mark>example.com<\/mark>\n    ServerAlias <mark>www.example.com<\/mark>\n    DocumentRoot \/var\/www\/<mark>example.com<\/mark>\/html\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\n&lt;\/VirtualHost&gt;<\/code><\/pre>\n\n\n\n<p>Tenga en cuenta que hemos actualizado&nbsp;<code>DocumentRoot<\/code>a nuestro nuevo directorio y&nbsp;<code>ServerAdmin<\/code>a un correo electr\u00f3nico al que&nbsp;puede acceder el administrador del sitio&nbsp;<strong><a href=\"http:\/\/example.com\/\">example.com .&nbsp;<\/a><\/strong>Tambi\u00e9n hemos agregado dos directivas:&nbsp;<code>ServerName<\/code>, que establece el dominio base que debe coincidir con esta definici\u00f3n de host virtual y&nbsp;<code>ServerAlias<\/code>, que define otros nombres que deben coincidir como si fueran el nombre base.<\/p>\n\n\n\n<p>Guarde y cierre el archivo cuando haya terminado.<\/p>\n\n\n\n<p>Habilitemos el archivo con la&nbsp;<code>a2ensite<\/code>herramienta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo a2ensite <mark>example.com<\/mark>.conf<\/code><\/pre>\n\n\n\n<p>Deshabilite el sitio predeterminado definido en&nbsp;<code>000-default.conf<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo a2dissite 000-default.conf<\/code><\/pre>\n\n\n\n<p>A continuaci\u00f3n, probemos los errores de configuraci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apache2ctl configtest<\/code><\/pre>\n\n\n\n<p>Deber\u00eda ver el siguiente resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OutputSyntax OK<\/code><\/pre>\n\n\n\n<p>Reinicie Apache para implementar sus cambios:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart apache2<\/code><\/pre>\n\n\n\n<p>Apache ahora deber\u00eda estar sirviendo su nombre de dominio.&nbsp;Puede probar esto navegando a&nbsp;, donde deber\u00eda ver algo como esto:<code>http:\/\/<mark>example.com<\/mark><\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/assets.digitalocean.com\/articles\/apache_virt_hosts_1404\/example.png\" alt=\"Ejemplo de host virtual de Apache\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"step-6-getting-familiar-with-important-apache-files-and-directories\">Paso 6: familiarizarse con los archivos y directorios importantes de Apache<\/h2>\n\n\n\n<p>Ahora que sabe c\u00f3mo administrar el propio servicio de Apache, debe dedicar unos minutos a familiarizarse con algunos directorios y archivos importantes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"content\">Contenido<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>\/var\/www\/html<\/code>: El contenido web real, que de forma predeterminada solo consta de la p\u00e1gina predeterminada de Apache que vio anteriormente, se sirve fuera del\u00a0<code>\/var\/www\/html<\/code>directorio.\u00a0Esto se puede cambiar modificando los archivos de configuraci\u00f3n de Apache.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"server-configuration\">Configuraci\u00f3n del servidor<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>\/etc\/apache2<\/code>: El directorio de configuraci\u00f3n de Apache.\u00a0Todos los archivos de configuraci\u00f3n de Apache residen aqu\u00ed.<\/li>\n\n\n\n<li><code>\/etc\/apache2\/apache2.conf<\/code>: El archivo de configuraci\u00f3n principal de Apache.\u00a0Esto se puede modificar para realizar cambios en la configuraci\u00f3n global de Apache.\u00a0Este archivo es responsable de cargar muchos de los otros archivos en el directorio de configuraci\u00f3n.<\/li>\n\n\n\n<li><code>\/etc\/apache2\/ports.conf<\/code>: este archivo especifica los puertos en los que escuchar\u00e1 Apache.\u00a0De forma predeterminada, Apache escucha en el puerto 80 y, adem\u00e1s, escucha en el puerto 443 cuando se habilita un m\u00f3dulo que proporciona capacidades SSL.<\/li>\n\n\n\n<li><code>\/etc\/apache2\/sites-available\/<\/code>: el directorio donde se pueden almacenar los hosts virtuales por sitio.\u00a0Apache no usar\u00e1 los archivos de configuraci\u00f3n que se encuentran en este directorio a menos que est\u00e9n vinculados al\u00a0<code>sites-enabled<\/code>directorio.\u00a0Por lo general, toda la configuraci\u00f3n del bloque del servidor se realiza en este directorio y luego se habilita vinculando al otro directorio con el\u00a0<code>a2ensite<\/code>comando.<\/li>\n\n\n\n<li><code>\/etc\/apache2\/sites-enabled\/<\/code>: el directorio donde se almacenan los hosts virtuales habilitados por sitio.\u00a0Por lo general, estos se crean vinculando los archivos de configuraci\u00f3n que se encuentran en el\u00a0<code>sites-available<\/code>directorio con la extensi\u00f3n\u00a0<code>a2ensite<\/code>.\u00a0Apache lee los archivos de configuraci\u00f3n y los enlaces que se encuentran en este directorio cuando se inicia o recarga para compilar una configuraci\u00f3n completa.<\/li>\n\n\n\n<li><code>\/etc\/apache2\/conf-available\/<\/code>,\u00a0<code>\/etc\/apache2\/conf-enabled\/<\/code>: estos directorios tienen la misma relaci\u00f3n que los directorios\u00a0<code>sites-available<\/code>y\u00a0<code>sites-enabled<\/code>, pero se utilizan para almacenar fragmentos de configuraci\u00f3n que no pertenecen a un host virtual.\u00a0Los archivos en el\u00a0<code>conf-available<\/code>directorio se pueden habilitar con el\u00a0<code>a2enconf<\/code>comando y deshabilitar con el\u00a0<code>a2disconf<\/code>comando.<\/li>\n\n\n\n<li><code>\/etc\/apache2\/mods-available\/<\/code>,\u00a0<code>\/etc\/apache2\/mods-enabled\/<\/code>: Estos directorios contienen los m\u00f3dulos disponibles y habilitados, respectivamente.\u00a0Los archivos que terminan en\u00a0<code>.load<\/code>contienen fragmentos para cargar m\u00f3dulos espec\u00edficos, mientras que los archivos que terminan en\u00a0<code>.conf<\/code>contienen la configuraci\u00f3n de esos m\u00f3dulos.\u00a0Los m\u00f3dulos se pueden habilitar y deshabilitar usando el\u00a0comando\u00a0<code>a2enmod<\/code>y .<code>a2dismod<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"server-logs\">Registros del servidor<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>\/var\/log\/apache2\/access.log<\/code>: De manera predeterminada, cada solicitud a su servidor web se registra en este archivo de registro a menos que Apache est\u00e9 configurado para hacer lo contrario.<\/li>\n\n\n\n<li><code>\/var\/log\/apache2\/error.log<\/code>: De forma predeterminada, todos los errores se registran en este archivo.\u00a0La\u00a0<code>LogLevel<\/code>directiva en la configuraci\u00f3n de Apache especifica cu\u00e1nto detalle contendr\u00e1n los registros de errores.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusi\u00f3n<\/h2>\n\n\n\n<p>Ahora que tiene su servidor web instalado, tiene muchas opciones para el tipo de contenido que puede servir y las tecnolog\u00edas que puede usar para crear una experiencia m\u00e1s rica.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n El servidor Apache HTTP es el servidor web m\u00e1s utilizado en el mundo.&nbsp;Proporciona muchas funciones potentes que incluyen m\u00f3dulos cargables din\u00e1micamente, soporte de medios s\u00f3lido y una amplia integraci\u00f3n con otro software popular. En esta gu\u00eda, explicaremos c\u00f3mo instalar un servidor web Apache en su servidor Debian 9. requisitos previos Antes de comenzar esta gu\u00eda, debe tener un usuario no root normal con privilegios sudo configurado en su servidor.&nbsp;Adem\u00e1s, deber\u00e1 habilitar un firewall b\u00e1sico para bloquear puertos no esenciales. Cuando tenga una cuenta disponible, inicie sesi\u00f3n como su usuario no root para comenzar. Paso 1: Instalaci\u00f3n de Apache Apache est\u00e1 disponible en los repositorios de software predeterminados de Debian, lo que permite instalarlo mediante herramientas de administraci\u00f3n de paquetes convencionales. Comencemos por actualizar el \u00edndice del paquete local para reflejar los cambios m\u00e1s recientes: Luego, instale el&nbsp;apache2: Despu\u00e9s de confirmar la instalaci\u00f3n,&nbsp;apt instalar\u00e1 Apache y todas las dependencias requeridas. Paso 2: Ajustar el cortafuegos Antes de probar Apache, es necesario modificar la configuraci\u00f3n del firewall para permitir el acceso externo a los puertos web predeterminados.&nbsp;Suponiendo que sigui\u00f3 las instrucciones de los requisitos previos, debe tener un firewall UFW configurado para restringir el acceso a su servidor. Durante la instalaci\u00f3n, Apache se registra con UFW para proporcionar algunos perfiles de aplicaci\u00f3n que se pueden usar para habilitar o deshabilitar el acceso a Apache a trav\u00e9s del firewall. Enumere los&nbsp;ufwperfiles de aplicaci\u00f3n escribiendo: Ver\u00e1 una lista de los perfiles de aplicaci\u00f3n: Los perfiles de Apache comienzan con WWW: Se recomienda que habilite el perfil m\u00e1s restrictivo que seguir\u00e1 permitiendo el tr\u00e1fico que ha configurado.&nbsp;Como a\u00fan no hemos configurado SSL para nuestro servidor en esta gu\u00eda, solo necesitaremos permitir el tr\u00e1fico en el puerto 80: Puede verificar el cambio escribiendo: Deber\u00eda ver el tr\u00e1fico HTTP permitido en el resultado mostrado: Como puede ver, el perfil se ha activado para permitir el acceso al servidor web. Paso 3: Comprobaci\u00f3n de su servidor web Al final del proceso de instalaci\u00f3n, Debian 9 inicia Apache.&nbsp;El servidor web ya deber\u00eda estar en funcionamiento. Verifique con el&nbsp;systemdsistema de inicio para asegurarse de que el servicio se est\u00e9 ejecutando escribiendo: Como puede ver en este resultado, el servicio parece haberse iniciado correctamente.&nbsp;Sin embargo, la mejor manera de probar esto es solicitar una p\u00e1gina de Apache. Puede acceder a la p\u00e1gina de destino predeterminada de Apache para confirmar que el software se est\u00e1 ejecutando correctamente a trav\u00e9s de su direcci\u00f3n IP.&nbsp;Si no conoce la direcci\u00f3n IP de su servidor, puede obtenerla de diferentes maneras desde la l\u00ednea de comandos. Intente escribir esto en el s\u00edmbolo del sistema de su servidor: Recibir\u00e1 algunas direcciones separadas por espacios.&nbsp;Puede probar cada uno en su navegador web para ver si funcionan. Una alternativa es usar la&nbsp;curlherramienta, que deber\u00eda brindarle su direcci\u00f3n IP p\u00fablica tal como se ve desde otra ubicaci\u00f3n en Internet. Primero, instale&nbsp;curlusando&nbsp;apt: Luego, use&nbsp;curlpara recuperar&nbsp;icanhazip.com&nbsp;usando IPv4: Cuando tenga la direcci\u00f3n IP de su servidor, ingr\u00e9sela en la barra de direcciones de su navegador: Deber\u00eda ver la p\u00e1gina web predeterminada de Debian 9 Apache: Esta p\u00e1gina indica que Apache est\u00e1 funcionando correctamente.&nbsp;Tambi\u00e9n incluye informaci\u00f3n b\u00e1sica sobre archivos importantes de Apache y ubicaciones de directorios. Paso 4: Administrar el proceso de Apache Ahora que tiene su servidor web en funcionamiento, repasemos algunos comandos b\u00e1sicos de administraci\u00f3n. Para detener su servidor web, escriba: Para iniciar el servidor web cuando est\u00e1 detenido, escriba: Para detener y volver a iniciar el servicio, escriba: Si simplemente est\u00e1 realizando cambios de configuraci\u00f3n, Apache a menudo puede volver a cargar sin perder las conexiones.&nbsp;Para hacer esto, use este comando: De forma predeterminada, Apache est\u00e1 configurado para iniciarse autom\u00e1ticamente cuando se inicia el servidor.&nbsp;Si esto no es lo que desea, deshabilite este comportamiento escribiendo: Para volver a habilitar el servicio para que se inicie en el arranque, escriba: Apache ahora deber\u00eda iniciarse autom\u00e1ticamente cuando el servidor se inicie de nuevo. Paso 5: Configuraci\u00f3n de hosts virtuales (recomendado) Al usar el servidor web Apache, puede usar&nbsp;hosts virtuales&nbsp;(similares a los bloques de servidor en Nginx) para encapsular los detalles de configuraci\u00f3n y alojar m\u00e1s de un dominio desde un solo servidor.&nbsp;Configuraremos un dominio llamado&nbsp;ejemplo.com&nbsp;, pero debe&nbsp;reemplazarlo con su propio nombre de dominio&nbsp;. Apache en Debian 9 tiene un bloque de servidor habilitado de forma predeterminada que est\u00e1 configurado para entregar documentos desde el&nbsp;\/var\/www\/htmldirectorio.&nbsp;Si bien esto funciona bien para un solo sitio, puede volverse dif\u00edcil de manejar si aloja varios sitios.&nbsp;En lugar de modificar&nbsp;\/var\/www\/html, vamos a crear una estructura de directorio dentro&nbsp;\/var\/wwwde nuestro sitio&nbsp;example.com&nbsp;, dej\u00e1ndolo&nbsp;\/var\/www\/htmlcomo el directorio predeterminado que se atender\u00e1 si la solicitud de un cliente no coincide con ning\u00fan otro sitio. Cree el directorio para&nbsp;ejemplo.com&nbsp;de la siguiente manera, usando la&nbsp;-pmarca para crear los directorios principales necesarios: A continuaci\u00f3n, asigne la propiedad del directorio con la&nbsp;$USERvariable ambiental: Los permisos de sus ra\u00edces web deber\u00edan ser correctos si no ha modificado su&nbsp;unmaskvalor, pero puede asegurarse escribiendo: Dupdo Luego, crea una&nbsp;index.htmlp\u00e1gina de muestra usando&nbsp;nanoo tu editor favorito: En el interior, agregue el siguiente c\u00f3digo HTML de muestra:\/var\/www\/ejemplo.com\/html\/index.html Guarde y cierre el archivo cuando haya terminado. Para que Apache sirva este contenido, es necesario crear un archivo de host virtual con las directivas correctas.&nbsp;En lugar de modificar el archivo de configuraci\u00f3n predeterminado ubicado en&nbsp;\/etc\/apache2\/sites-available\/000-default.confdirectamente, hagamos uno nuevo en&nbsp;:\/etc\/apache2\/sites-available\/example.com.conf Pegue el siguiente bloque de configuraci\u00f3n, que es similar al predeterminado, pero actualizado para nuestro nuevo directorio y nombre de dominio:\/etc\/apache2\/sitios-disponibles\/ejemplo.com.conf Tenga en cuenta que hemos actualizado&nbsp;DocumentRoota nuestro nuevo directorio y&nbsp;ServerAdmina un correo electr\u00f3nico al que&nbsp;puede acceder el administrador del sitio&nbsp;example.com .&nbsp;Tambi\u00e9n hemos agregado dos directivas:&nbsp;ServerName, que establece el dominio base que debe coincidir con esta definici\u00f3n de host virtual y&nbsp;ServerAlias, que define otros nombres que deben coincidir como si fueran el nombre base. Guarde y cierre el archivo cuando haya terminado. Habilitemos el archivo con la&nbsp;a2ensiteherramienta: Deshabilite el sitio predeterminado definido en&nbsp;000-default.conf: A continuaci\u00f3n, probemos los errores de configuraci\u00f3n: Deber\u00eda ver el siguiente resultado: Reinicie Apache para implementar sus cambios: Apache ahora deber\u00eda estar sirviendo su nombre de dominio.&nbsp;Puede probar esto navegando a&nbsp;, donde deber\u00eda ver algo como esto:http:\/\/example.com Paso 6: familiarizarse con los archivos<\/p>\n","protected":false},"author":1,"featured_media":1423,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63,16,5,12,62,1,10,6],"tags":[],"class_list":["post-799","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apache2","category-debian","category-docencia","category-linux","category-servicios","category-sin-categoria","category-sistemas-operativos","category-talleres"],"_links":{"self":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/799","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/comments?post=799"}],"version-history":[{"count":2,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/799\/revisions"}],"predecessor-version":[{"id":1424,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/posts\/799\/revisions\/1424"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/media\/1423"}],"wp:attachment":[{"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/media?parent=799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/categories?post=799"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dsantana.uas.edu.mx\/index.php\/wp-json\/wp\/v2\/tags?post=799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}