One place for hosting & domains

      Comment installer le serveur Web Apache sur CentOS 8 [Démarrage rapide]


      Introduction

      Le serveur HTTP Apache est le serveur web le plus utilisé au monde. Il offre de nombreuses fonctionnalités puissantes, notamment des modules à chargement dynamique, une prise en charge robuste des médias et une intégration poussée avec d’autres logiciels populaires.

      En suivant ce guide, vous allez installer un serveur web Apache avec des hôtes virtuels sur votre serveur CentOS 8. Pour une version plus détaillée de ce tutoriel, veuillez vous référer à Comment installer le serveur Web Apache sur CentOS 8.

      Conditions préalables

      Vous aurez besoin des éléments suivants pour suivre ce guide :

      Étape 1 — Installation d’Apache

      Apache est disponible dans les référentiels de logiciels par défaut de CentOS, ce qui signifie que vous pouvez l’installer avec le gestionnaire de paquets dnf.

      En tant qu’utilisateur non root sudo configuré dans les conditions préalables, installez le package Apache :

      Après avoir confirmé l’installation, dnf installera Apache et toutes les dépendances requises.

      Étape 2 – Réglage du pare-feu

      En réalisant l’étape 4 du guide Configuration initiale du serveur avec CentOS 8 mentionné dans la section conditions préalables, vous auvez déjà installé firewalld sur votre serveur pour répondre aux demandes sur HTTP.

      Si vous prévoyez également configurer Apache pour présenter du contenu sur HTTPS, vous devez également ouvrir le port 443 en activant le service https :

      • sudo firewall-cmd --permanent --add-service=https

      Ensuite, rechargez le pare-feu pour appliquer ces nouvelles règles :

      • sudo firewall-cmd --reload

      Une fois le pare-feu rechargé, vous êtes prêt à démarrer le service et à vérifier le serveur web.

      Étape 3 – Vérification de votre serveur Web

      Une fois l’installation terminée, Apache ne démarre pas automatiquement sur CentOS. Par conséquent, vous devez démarrer le processus Apache manuellement :

      • sudo systemctl start httpd

      Utilisez la commande suivante pour vérifier si le service s’exécute :

      • sudo systemctl status httpd

      Le statut deviendra active une fois que le service sera en cours d’exécution :

      Output

      ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disa> Active: active (running) since Thu 2020-04-23 22:25:33 UTC; 11s ago Docs: man:httpd.service(8) Main PID: 14219 (httpd) Status: "Running, listening on: port 80" Tasks: 213 (limit: 5059) Memory: 24.9M CGroup: /system.slice/httpd.service ├─14219 /usr/sbin/httpd -DFOREGROUND ├─14220 /usr/sbin/httpd -DFOREGROUND ├─14221 /usr/sbin/httpd -DFOREGROUND ├─14222 /usr/sbin/httpd -DFOREGROUND └─14223 /usr/sbin/httpd -DFOREGROUND ...

      Accédez à la page d’accueil par défaut d’Apache pour confirmer que le logiciel fonctionne correctement grâce à votre adresse IP :

      http://your_server_ip
      

      Vous verrez la page web Apache par défaut CentOS 8 :

      Page Apache par défaut pour CentOS 8

      Cette page indique qu’Apache fonctionne correctement. Elle contient également des informations de base sur les fichiers Apache et les emplacements de répertoires importants.

      Étape 4 — Configuration des hôtes virtuels (recommandé)

      Lorsque vous utilisez le serveur Web Apache, vous pouvez utiliser des hôtes virtuels (si vous êtes plus habitué à utiliser Nginx, ils sont similaires aux blocs de serveur) pour encapsuler les détails de configuration et héberger plusieurs domaines à partir d’un seul serveur. Au cours de cette étape, nous allons configurer un domaine que l’on nommera example.com, mais vous devez le remplacer par votre propre nom de domaine. Si vous configurez un nom de domaine avec DigitalOcean, veuillez consulter notre Documentation de mise en réseau.

      Créez répertoire html pour<p>example.com<^> comme suit, à l’aide de la balise -p pour créer tout répertoire de parent nécessaire :

      • sudo mkdir -p /var/www/example.com/html

      Créez un répertoire supplémentaire pour stocker des fichiers journaux du site :

      • sudo mkdir -p /var/www/example.com/log

      Ensuite, attribuez la propriété du répertoire html avec la variable d’environnement $USER :

      • sudo chown -R $USER:$USER /var/www/example.com/html

      Assurez-vous que les autorisations par défaut de votre racine Web sont bien configurées :

      • sudo chmod -R 755 /var/www

      Ensuite, créez une page index.html à l’aide de vi ou de votre éditeur favori :

      • sudo vi /var/www/example.com/html/index.html

      Appuyez sur i pour passer en mode INSERT et ajoutez l’exemple de HTML suivant au fichier :

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

      <html>
        <head>
          <title>Welcome to Example.com!</title>
        </head>
        <body>
          <h1>Success! The example.com virtual host is working!</h1>
        </body>
      </html>
      

      Sauvegardez et fermez le fichier en appuyant sur ESC, en saisissant :wq et en appuyant sur ENTRÉE.

      Maintenant que le répertoire de votre site et l’exemple de fichier d’index sont en place, vous êtes pratiquement prêt à créer les fichiers d’hôte virtuel. Les fichiers d’hôtes virtuels spécifient la configuration de vos autres sites et indiquent au serveur web Apache comment répondre aux diverses demandes de domaine.

      Avant de créer vos hôtes virtuels, vous devez créer un répertoire sites-available dans lequel les stocker. Vous devez également créer le répertoire sites-enabled, qui indique à Apache qu’un hôte virtuel est prêt à servir votre audience. Le répertoire sites-enabled contiendra des liens symboliques aux hôtes virtuels que nous voulons publier. Créez les deux répertoires avec la commande suivante :

      • sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

      Ensuite, vous devez demander à Apache de rechercher des hôtes virtuels dans le répertoire sites-enabled. Pour ce faire, modifiez le fichier de configuration principal d’Apache à l’aide de vi ou de votre éditeur de texte favori, puis ajoutez une ligne indiquant un répertoire facultatif pour les fichiers de configuration supplémentaires :

      • sudo vi /etc/httpd/conf/httpd.conf

      Appuyez sur G majuscule pour aller à la fin du fichier. Appuyez ensuite sur i pour passer en mode INSERT et ajoutez la ligne suivante à la fin du fichier :

      /etc/httpd/conf/httpd.conf

      ...
      # Supplemental configuration
      #
      # Load config files in the "/etc/httpd/conf.d" directory, if any.
      IncludeOptional conf.d/*.conf
      IncludeOptional sites-enabled/*.conf
      

      Sauvegardez et fermez le fichier une fois que vous avez ajouté cette ligne. Maintenant que vos répertoires d’hôte virtuel sont prêts, vous devez créer votre fichier d’hôte virtuel.

      Commencez par créer un nouveau fichier dans le répertoire sites-available :

      • sudo vi /etc/httpd/sites-available/example.com.conf

      Ajoutez-y le bloc de configuration suivant, et remplacez le domaine example.com par votre nom de domaine :

      /etc/httpd/sites-available/example.com.conf

      <VirtualHost *:80>
          ServerName www.example.com
          ServerAlias example.com
          DocumentRoot /var/www/example.com/html
          ErrorLog /var/www/example.com/log/error.log
          CustomLog /var/www/example.com/log/requests.log combined
      </VirtualHost>
      

      Cette opération indiquera directement à Apache où trouver la racine qui contient les documents Web accessibles au public. Elle indique également à quel endroit Apache doit stocker les journaux d’erreurs et de demandes pour le site en question.

      Enregistrez et fermez le fichier lorsque vous avez terminé.

      Maintenant que vous avez créé les fichiers hôtes virtuels, vous devez les activer pour qu’Apache puisse les présenter à votre audience. Pour ce faire, créez une liaison symbolique pour chaque hôte virtuel dans le répertoire sites-enabled :

      • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

      Votre hôte virtuel est maintenant configuré et prêt à fournir du contenu. Avant de redémarrer le service Apache, assurez-vous que SELinux a les bonnes politiques en place pour vos hôtes virtuels.

      Étape 5 — Réglage des autorisations SELinux pour les hôtes virtuels (recommandé)

      SELinux est un module de sécurité du noyau Linux qui apporte une sécurité renforcée aux systèmes Linux. CentOS 8 est équipé de SELinux configuré pour fonctionner avec la configuration Apache par défaut. Puisque vous avez modifié la configuration par défaut en configurant un répertoire de journaux personnalisé dans le fichier de configuration des hôtes virtuels, une erreur apparaîtra si vous essayez de démarrer le service Apache. Pour résoudre ce problème, vous devez mettre à jour les politiques SELinux pour permettre à Apache d’écrire dans les fichiers nécessaires.

      Il existe différentes façons de définir des politiques en fonction des besoins de votre environnement, car SELinux vous permet de personnaliser votre niveau de sécurité. Cette étape couvrira les deux méthodes d’ajustement des politiques Apache : universellement et sur un répertoire spécifique. L’ajustement de politiques sur des répertoires est plus sûr et nous vous recommandons donc d’utiliser cette approche.

      Ajuster des politiques Apache universellement

      La configuration universelle de politique Apache demandera à SELinux de traiter tous les processus Apache de manière identique en utilisant le booléen httpd_unified. Bien que cette approche soit plus pratique, vous n’aurez pas le même niveau de contrôle qu’une approche qui se concentre sur une politique de fichier ou de répertoire.

      Exécutez la commande suivante pour définir une politique Apache universelle :

      • sudo setsebool -P httpd_unified 1

      La commande setsebool modifie les valeurs booléennes de SELinux. L’indicateur -P mettra à jour la valeur de démarrage, ce qui rend cette modification persistante lors des redémarrages. httpd_unified est la valeur booléenne qui indiquera à SELinux de traiter tous les processus Apache comme un seul et même type. Vous l’avez donc activé avec une valeur de 1.

      Ajuster des politiques Apache sur un répertoire

      La configuration individuelle des autorisations SELinux pour le répertoire /var/www/example.com/log vous donnera plus de contrôle sur vos politiques Apache. Cependant, cela nécessitera éventuellement plus de maintenance. Étant donné que cette option ne définit pas universellement les stratégies, vous devrez définir manuellement le type de contexte pour tout nouveau répertoire de journaux spécifié dans vos configurations d’hôte virtuel.

      Tout d’abord, vérifiez le type de contexte que SELinux a donné au répertoire /var/www/example.com/log :

      • sudo ls -dlZ /var/www/example.com/log/

      Cette commande répertorie et imprime le contexte SELinux du répertoire. Vous recevrez un résultat similaire à celui qui suit :

      Output

      drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

      Le contexte actuel est httpd_sys_content_t, qui indique à SELinux que le processus Apache peut uniquement lire les fichiers créés dans ce répertoire. Dans ce tutoriel, vous allez remplacer le type de contexte du répertoire /var/www/example.com/log par httpd_log_t. Ce type permettra à Apache de générer et d’ajouter des fichiers journaux d’application Web :

      • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

      Ensuite, utilisez la commande restorecon pour appliquer ces modifications et les conserver lors des redémarrages :

      • sudo restorecon -R -v /var/www/example.com/log

      L’indicateur -R exécute cette commande récursivement, ce qui signifie qu’il mettra à jour tous les fichiers existants pour qu’ils utilisent le nouveau contexte. L’indicateur -v affichera les changements de contexte que la commande a effectué. Vous recevrez le résultat suivant, qui confirmera les modifications :

      Output

      Relabeled /var/www/example.com/log from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:httpd_log_t:s0

      Vous pouvez lister les contextes une fois de plus pour voir les changements :

      • sudo ls -dlZ /var/www/example.com/log/

      Le résultat reflète le type de contexte mis à jour :

      Output

      drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_log_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

      Maintenant que le réportoire /var/www/example.com/log utilise le type httpd_log_t, vous êtes prêt à tester la configuration de votre hôte virtuel.

      Étape 6 — Tester l’hôte virtuel (recommandé)

      Une fois le contexte SELinux mis à jour avec l’une des méthodes, Apache pourra écrire dans le répertoire /var/www/example.com/log. Vous pouvez maintenant redémarrer le service Apache :

      • sudo systemctl restart httpd

      Répertoriez le contenu du répertoire /var/www/example.com/log pour voir si Apache a créé les fichiers journaux :

      • ls -lZ /var/www/example.com/log

      Vous recevrez une confirmation qu’Apache a pu créer les fichiers error.log et requests.log spécifiés dans la configuration de l’hôte virtuel :

      Output

      -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 error.log -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 requests.log

      Maintenant que vous avez configuré votre hôte virtuel et mis à jour les autorisations SELinux, Apache présentera désormais votre nom de domaine. Vous pouvez le vérifer en allant sur http://example.com où vous devriez voir quelque chose similaire à ceci :

      Bravo! L'hôte virtuel example.com fonctionne !

      Cela confirme que votre hôte virtuel est correctement configuré et présente le contenu. Répétez les étapes 4 et 5 pour créer de nouveaux hôtes virtuels avec des autorisations SELinux pour des domaines supplémentaires.

      Conclusion

      Dans ce tutoriel, vous avez installé et géré le serveur web Apache. Maintenant que votre serveur Web est installé, vous disposez de nombreuses options pour le type de contenu que vous voulez présenter et les technologies que vous souhaitez utiliser pour créer une expérience plus riche.

      Si vous souhaitez construire une pile d’applications plus complète, consultez cet article sur la manière de configurer une pile LAMP sur on CentOS 8​​​1​​​.



      Source link

      Cómo instalar el servidor web Apache en CentOS 8


      Introducción

      El servidor HTTP Apache es el más usado del mundo. Ofrece muchas características potentes, entre las que se incluyen módulos que se cargan de forma dinámica, una sólida compatibilidad con medios y amplia integración con otras herramientas de software populares.

      A través de esta guía, instalará un servidor web Apache con hosts virtuales en su servidor de CentOS 8.

      Requisitos previos

      Necesitará lo siguiente para completar esta guía:

      Paso 1: Instalar Apache

      Apache está disponible dentro de los repositorios de software predeterminados de CentOS, lo cual significa que puede instalarlo con el administrador de paquetes dnf.

      Ya que configuramos un non-root sudo user en los requisitos previos, instale el paquete Apache:

      Una vez confirmada la instalación, dnf instalará Apache y todas las dependencias necesarias.

      Al completar el paso 4 de la guía de Configuración inicial del servidor con CentOS 8 que se mencionó en la sección de requisitos previos, ya habrá instalado firewalld en su servidor para suministrar las solicitudes a través de HTTP.

      Si además piensa configurar Apache para que proporcione contenido a través de HTTPS, también le convendrá abrir el puerto 443 al habilitar el servicio https:

      • sudo firewall-cmd --permanent --add-service=https

      A continuación, vuelva a cargar el firewall para que entren en efecto estas nuevas reglas:

      • sudo firewall-cmd --reload

      Una vez que se vuelva a cargar el firewall, estará listo para iniciar el servicio y comprobar el servidor web.

      Paso 2: Comprobar su servidor web

      Una vez que la instalación se completa, Apache no se inicia automáticamente en CentOS, por lo que deberá iniciar el proceso de Apache de forma manual:

      • sudo systemctl start httpd

      Verifique que el servicio funcione con el siguiente comando:

      • sudo systemctl status httpd

      Obtendrá un estado active cuando el servicio esté en ejecución:

      Output

      ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disa> Active: active (running) since Thu 2020-04-23 22:25:33 UTC; 11s ago Docs: man:httpd.service(8) Main PID: 14219 (httpd) Status: "Running, listening on: port 80" Tasks: 213 (limit: 5059) Memory: 24.9M CGroup: /system.slice/httpd.service ├─14219 /usr/sbin/httpd -DFOREGROUND ├─14220 /usr/sbin/httpd -DFOREGROUND ├─14221 /usr/sbin/httpd -DFOREGROUND ├─14222 /usr/sbin/httpd -DFOREGROUND └─14223 /usr/sbin/httpd -DFOREGROUND ...

      Como lo indica este resultado, el servicio se inició correctamente. Sin embargo, la mejor forma de comprobarlo es solicitar una página de Apache.

      Puede acceder a la página de destino predeterminada de Apache para confirmar que el software funcione correctamente mediante su dirección IP: Si no conoce la dirección IP de su servidor, puede obtenerla de varias formas desde la línea de comandos.

      Escriba q para volver a la línea de comandos y, luego, escriba:

      Con este comando se mostrarán todas las direcciones de red del host, de modo que obtendrá algunas direcciones IP separadas por espacios. Puede probar cada uno en el navegador web para determinar si funcionan.

      De forma alternativa, puede utilizar curl para solicitar su IP en icanhazip.com, que le proporcionará su dirección IPv4 pública tal como aparece en otra ubicación en Internet:

      Cuando tenga la dirección IP de su servidor, introdúzcala en la barra de direcciones de su navegador:

      http://your_server_ip
      

      Visualizará la página web predeterminada de Apache en CentOS 8:

      Página predeterminada de Apache para CentOS 8

      Esta página indica que Apache funciona correctamente. También incluye información básica sobre archivos y ubicaciones de directorios importantes de Apache.

      Paso 3: Administrar el proceso de Apache

      Ahora que el servicio está instalado y en ejecución, puede utilizar diferentes comandos de systemctl para administrarlo.

      Para detener su servidor web, escriba lo siguiente:

      • sudo systemctl stop httpd

      Para iniciar el servidor web cuando no esté activo, escriba lo siguiente:

      • sudo systemctl start httpd

      Para detener y luego iniciar el servicio de nuevo, escriba lo siguiente:

      • sudo systemctl restart httpd

      Si solo realiza cambios de configuración, Apache a menudo puede recargarse sin cerrar conexiones. Para hacerlo, utilice este comando:

      • sudo systemctl reload httpd

      Por defecto, Apache está configurado para iniciarse automáticamente cuando el servidor lo hace. Si no es lo que quiere, deshabilite este comportamiento escribiendo lo siguiente:

      • sudo systemctl disable httpd

      Para volver a habilitar el servicio de modo que se cargue en el inicio, escriba lo siguiente:

      • sudo systemctl enable httpd

      Ahora, Apache se iniciará de forma automática cuando el servidor se inicie de nuevo.

      La configuración predeterminada de Apache permitirá a su servidor host alojar un único sitio web. Si piensa alojar varios dominios en su servidor, deberá configurar hosts virtuales en su servidor web de Apache.

      Paso 4: Configuración de hosts virtuales (recomendado)

      Cuando utilice el servidor web Apache, puede recurrir a los hosts virtuales (si está más familiarizado con Nginx, son similares a los bloques de servidor) para encapsular los detalles de configuración y alojar más de un dominio desde un único servidor. En este paso, configurará un dominio llamado example.com, pero debería cambiarlo por su propio nombre de dominio. Si va a configurar un nombre de dominio con DigitalOcean, consulte nuestra Documentación de red.

      Por defecto, Apache en CentOS 8 tiene habilitado un host virtual que está configurado para suministrar documentos del directorio /var/www/html. Si bien esto funciona bien para un solo sitio, puede ser difícil de manejar si aloja varios. En lugar de modificar /var/www/html, creará una estructura de directorio dentro de /var/www para el sitio example.com y dejará /var/www/html instalado como directorio predeterminado que se presentará si una solicitud de cliente no coincide con ningún otro sitio.

      Cree el directorio ​​​​​html​​​​​​ para el sitio example.com de la siguiente manera, utilizando el indicador -p para crear cualquier directorio principal necesario:

      • sudo mkdir -p /var/www/example.com/html

      Cree un directorio adicional para almacenar archivos de registro para el sitio:

      • sudo mkdir -p /var/www/example.com/log

      A continuación, asigne la propiedad del directorio html con la variable de entorno $USER:

      • sudo chown -R $USER:$USER /var/www/example.com/html

      Asegúrese de que estén configurados los permisos predeterminados de su root web:

      • sudo chmod -R 755 /var/www

      A continuación, cree una página de ejemplo index.html utilizando vi o su editor favorito:

      • sudo vi /var/www/example.com/html/index.html

      Pulse i para realizar un cambio al modo INSERT y agregar el siguiente ejemplo HTML al archivo:

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

      <html>
        <head>
          <title>Welcome to Example.com!</title>
        </head>
        <body>
          <h1>Success! The example.com virtual host is working!</h1>
        </body>
      </html>
      

      Guarde y cierre el archivo presionando ESC, escribiendo :wq y presionando ENTER.

      Una vez establecidos el directorio de su sitio y el archivo de índice de ejemplo, casi estará listo para crear archivos de host virtuales. Mediante los archivos de host virtuales se especifica la configuración de sus sitios individuales y se informa al servidor web de Apache la manera de responder a varias solicitudes de dominio.

      Antes de crear sus hosts virtuales, deberá crear un directorio sites-available para almacenarlos. También creará el directorio sites-enabled que indica a Apache que un host virtual está preparado para visitantes. En el directorio sites-enabled se almacenarán enlaces simbólicos a hosts virtuales que deseemos publicar. Cree ambos directorios con el siguiente comando:

      • sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

      A continuación, indicará a Apache que busque hosts virtuales en el directorio sites-enabled. Para hacerlo, edite el archivo de configuración principal de Apache con vi o su editor preferido y agregue una línea que declare un directorio opcional para los archivos de configuración adicionales:

      • sudo vi /etc/httpd/conf/httpd.conf

      Presione la G mayúscula para ir al final del archivo. A continuación, presione i para pasar al modo INSERT y agregue la siguiente línea al final del archivo:

      /etc/httpd/conf/httpd.conf

      ...
      # Supplemental configuration
      #
      # Load config files in the "/etc/httpd/conf.d" directory, if any.
      IncludeOptional conf.d/*.conf
      IncludeOptional sites-enabled/*.conf
      

      Guarde y cierre el archivo cuando termine de añadir esa línea. Ahora que están listos sus directorios de hosts virtuales, creará su archivo de host virtual.

      Comience creando un nuevo archivo en el directorio sites-available:

      • sudo vi /etc/httpd/sites-available/example.com.conf

      Agregue el siguiente bloque de configuración y cambie el dominio example.com por su nombre de dominio:

      /etc/httpd/sites-available/example.com.conf

      <VirtualHost *:80>
          ServerName www.example.com
          ServerAlias example.com
          DocumentRoot /var/www/example.com/html
          ErrorLog /var/www/example.com/log/error.log
          CustomLog /var/www/example.com/log/requests.log combined
      </VirtualHost>
      

      Esto indicará a Apache dónde encontrar directamente el root que contiene los documentos web de acceso público. También, dónde almacenar errores y solicitar registros para este sitio en particular.

      Guarde y cierre el archivo cuando haya terminado.

      Ahora que creó archivos de host virtuales, los habilitará para que Apache sepa presentarlos a los visitantes. Para lograrlo, cree un enlace simbólico para cada host virtual en el directorio sites-enabled:

      • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

      Su host virtual quedará, así, configurado y listo para ofrecer contenido. Antes de reiniciar el servicio de Apache, nos aseguraremos de que a través de SELinux se implementen las políticas correctas para sus hosts virtuales.

      Paso 5: Ajustar los permisos de SELinux para hosts virtuales (recomendado)

      SELinux es un módulo de seguridad de kernel de Linux que aporta seguridad extrema a los sistemas Linux. CentOS 8 viene equipado con SELinux que está configurado para funcionar con la configuración predeterminada de Apache. Debido a que modificó la configuración predeterminada al configurar un directorio de registro personalizado en el archivo de configuración de los hosts virtuales, recibirá un error si intenta iniciar el servicio de Apache. Para resolver esto, deberá actualizar las políticas SELinux a fin de permitir que Apache escriba en los archivos necesarios.

      Existen diferentes formas de configurar políticas en función de las necesidades de su entorno, ya que SELinux le permite personalizar el nivel de seguridad. En este paso se abarcarán dos métodos de ajuste de políticas de Apache: el universal y el que se aplica a un directorio específico. Ajustar políticas en directorios es más seguro y, por lo tanto, es el enfoque recomendado.

      Ajustar políticas de Apache de forma universal

      Establecer la política de Apache de forma universal indicará a SELinux que trate de forma idéntica todos los procesos de Apache usando el booleano httpd_unified. Si bien este enfoque es más conveniente, no le brindará el mismo nivel de control que uno centrado en una política de archivos o directorios.

      Ejecute el siguiente comando para configurar una política universal de Apache:

      • sudo setsebool -P httpd_unified 1

      El comando setsebool cambia los valores booleanos de SELinux. El marcador -P actualizará el valor de tiempo de inicio y hará que este cambio persista en los reinicios. httpd_unified es el booleano que indicará a SELinux que trate todos los procesos de Apache como el mismo tipo, por lo que lo habrá habilitado con un valor de 1.

      Ajustar políticas de Apache en un directorio

      Configurar individualmente los permisos de SELinux para el directorio /var/www/example.com/log le brindará mayor control sobre sus políticas de Apache, pero también puede requerir más mantenimiento. Debido a que esta opción no establece políticas de forma universal, deberá fijar de forma manual el tipo de contexto para cualquier nuevo directorio de registro especificado en sus configuraciones de host virtuales.

      Primero, compruebe el tipo de contexto que SELinux dio al directorio /var/www/example.com/log:

      • sudo ls -dlZ /var/www/example.com/log/

      Este comando enumera e imprime el contexto de SELinux del directorio. Obtendrá un resultado similar al siguiente:

      Output

      drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

      El contexto actual es httpd_sys_content_t, que indica a SELinux que el proceso de Apache solo puede leer archivos creados en este directorio. A través de este tutorial, cambiará el tipo de contexto del directorio /var/www/example.com/log a httpd_log_t. Este tipo permitirá que Apache genere archivos de registro de la aplicación web y realice anexos a ellos:

      • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

      A continuación, utilice el comando restorecon para aplicar estos cambios y hacer que persistan a través de los reinicios:

      • sudo restorecon -R -v /var/www/example.com/log

      El indicador -R ejecuta este comando de forma recursiva, lo que significa que actualizará cualquier archivo existente para que utilice el nuevo contexto. El indicador -v imprimirá los cambios de contexto realizados por el comando. Obtendrá el siguiente resultado que confirma los cambios:

      Output

      Relabeled /var/www/example.com/log from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:httpd_log_t:s0

      Puede enumerar los contextos una vez más para ver los cambios:

      • sudo ls -dlZ /var/www/example.com/log/

      El resultado refleja el tipo de contexto actualizado:

      Output

      drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_log_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

      Ahora que el directorio /var/www/example.com/log usa el tipo httpd_log_t, estará listo para probar su configuración de host virtual.

      Paso 6: Probar el host virtual (recomendado)

      Una vez que el contexto se SELinux se haya actualizado con cualquiera de los métodos, Apache podrá realizar tareas de escritura en el directorio /var/www/example.com/log. Ahora podrá reiniciar con éxito el servicio de Apache:

      • sudo systemctl restart httpd

      Enumere el contenido del directorio /var/www/example.com/log para ver si Apache creó los archivos de registro:

      • ls -lZ /var/www/example.com/log

      Se le confirmará que Apache pudo crear los archivos error.log y requests.log especificados en la configuración del host virtual:

      Output

      -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 error.log -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 requests.log

      Ahora que tiene su host virtual configurado y los permisos SELinux actualizados, Apache proporcionará su nombre de dominio. Puede comprobarlo visitando http://example.com, donde debería ver algo como esto:

      ¡Éxito! ¡El host virtual example.com funciona!

      Esto confirma que su host virtual está correctamente configurado y ofrece contenido. Repita los pasos 4 y 5 para crear nuevos hosts virtuales con permisos de SELinux para dominios adicionales.

      Conclusión

      A través de este tutorial, instaló y gestionó el servidor web de Apache. Ahora que ha instaló su servidor web, dispone de varias opciones respecto del tipo de contenido que puede ofrecer y de las tecnologías que puede utilizar para crear una experiencia más completa.

      Si quiere construir una pila de aplicaciones más completa, puede consultar este artículo sobre cómo configurar una pila LAMP en CentOS 8.



      Source link

      Cómo instalar el servidor web Apache en Ubuntu 20.04 [Guía de inicio rápido]


      Introducción

      El servidor HTTP Apache es el más usado del mundo. Ofrece muchas características potentes, entre las que se incluyen módulos que se cargan de forma dinámica, sólida compatibilidad con medios y amplia integración con otras herramientas de software populares.

      En esta guía, explicaremos cómo instalar el servidor web Apache en su servidor de Ubuntu 20.04. Para acceder a una versión más detallada de este tutorial, consulte Cómo instalar el servidor web Apache en Ubuntu 20.04.

      Requisitos previos

      Antes de comenzar a usar esta guía, debería contar con lo siguiente:

      • Un servidor de Ubuntu 20.04 y un non-root user con privilegios sudo. Además, deberá habilitar un firewall básico para que bloquee los puertos que no sean esenciales. Para aprender a configurar una cuenta normal de usuario e instalar un firewall para su servidor, siga nuestra guía de Configuración inicial del servidor para Ubuntu 20.04.

      Cuando disponga de una cuenta, inicie sesión como non-root user para comenzar.

      Paso 1: Instalación de Apache

      Apache se encuentra dentro de los repositorios de software predeterminados de Ubuntu, por lo que puede instalarlo utilizando las herramientas convencionales de administración de paquetes.

      Actualice su índice local de paquetes:

      Instale el paquete apache2:

      Paso 2: Ajuste del firewall

      Compruebe los perfiles de aplicación ufw disponibles:

      Output

      Available applications: Apache Apache Full Apache Secure OpenSSH

      Active el perfil más restrictivo para que admita el tráfico que haya configurado y lo permita en el puerto 80 (tráfico web normal no encriptado):

      Verifique el cambio:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

      Paso 3: Comprobación de su servidor web

      Realice una verificación con el sistema systemd init para saber si se encuentra en ejecución el servicio escribiendo lo siguiente:

      • sudo systemctl status apache2

      Output

      apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: active (running) since Tue 2020-04-28 23:06:40 UTC; 56s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 13785 (apache2) Tasks: 55 (limit: 1137) Memory: 5.3M CGroup: /system.slice/apache2.service ├─13785 /usr/sbin/apache2 -k start ├─13787 /usr/sbin/apache2 -k start └─13788 /usr/sbin/apache2 -k start

      Acceda a la página de inicio predeterminada de Apache para confirmar que el software se esté ejecutando correctamente mediante su dirección IP:

      http://your_server_ip
      

      Debería obtener como resultado la página web predeterminada de Apache en Ubuntu 20.04:

      Página predeterminada de Apache

      Paso 4: Configuración de hosts virtuales (recomendado)

      Al emplear el servidor web Apache, puede utilizar hosts virtuales (similares a bloques de servidor en Nginx) para encapsular detalles de configuración y alojar más de un dominio desde un único servidor. Configuraremos un dominio llamado your_domain, pero debería cambiarlo por su propio nombre de dominio. Para obtener más información sobre cómo configurar un nombre de dominio con DigitalOcean, consulte nuestra Introducción al DNS de DigitalOcean.

      Cree el directorio para your_domain:

      sudo mkdir /var/www/your_domain
      

      Asigne la propiedad del directorio:

      • sudo chown -R $USER:$USER /var/www/your_domain

      Los permisos de sus root web deberían ser correctos si no ha modificado su valor unmask, pero puede comprobarlo escribiendo lo siguiente:

      • sudo chmod -R 755 /var/www/your_domain

      Cree una página modelo index.html usando nano o su editor favorito:

      • nano /var/www/your_domain/index.html

      Dentro de ella, agregue el siguiente ejemplo de HTML:

      /var/www/your_domain/index.html

      <html>
          <head>
              <title>Welcome to Your_domain!</title>
          </head>
          <body>
              <h1>Success!  The your_domain virtual host is working!</h1>
          </body>
      </html>
      

      Guarde y cierre el archivo cuando haya terminado.

      Cree un nuevo archivo de host virtual en /etc/apache2/sites-available/your_domain.conf:

      • sudo nano /etc/apache2/sites-available/your_domain.conf

      Péguelo en el siguiente bloque de configuración, actualizado para nuestro nuevo directorio y nombre de dominio:

      /etc/apache2/sites-available/your_domain.conf

      <VirtualHost *:80>
          ServerAdmin webmaster@localhost
          ServerName your_domain
          ServerAlias your_domain
          DocumentRoot /var/www/your_domain
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>
      

      Guarde y cierre el archivo cuando termine.

      Habilite el archivo con a2ensite:

      • sudo a2ensite your_domain.conf

      Desactive el sitio predeterminado definido en 000-default.conf:

      • sudo a2dissite 000-default.conf

      Verifique que no haya errores de configuración:

      • sudo apache2ctl configtest

      Debería obtener el siguiente resultado:

      Output

      Syntax OK

      Reinicie Apache para implementar sus cambios:

      • sudo systemctl restart apache2

      Con esto, Apache debería ser el servidor de su nombre de dominio. Puede probarlo visitando http://your_domain, donde debería obtener algo como lo siguiente:

      Ejemplo de host virtual de Apache

      Conclusión

      Una vez instalado su servidor web, tiene muchas opciones respecto del tipo de contenido que ofrecerá y de las tecnologías que desee usar para crear una experiencia más completa.

      Si quiere construir una pila de aplicación más completa, consulte este artículo sobre Cómo configurar una pila LAMP en Ubuntu 20.04.



      Source link