GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Apache con Virtual Host su CentOS 8

Apache webserver è un server Web HTTP opensource e popolare che continua a godere di un'enorme quota di mercato nel settore dell'hosting. Viene fornito con un sacco di funzionalità tra cui miglioramenti del modulo, supporto multiprotocollo, configurazione semplificata e supporto multilingua per citarne solo alcune.

Leggi anche :Come installare Nginx su CentOS 8

In questa guida, ti guideremo attraverso l'installazione di Apache server web su CentOS 8 e RHEL 8 con un ambiente Virtual Host. Al momento della stesura di questo tutorial, l'ultima versione di Apache è Apache 2.2.43 .

Installazione del server Web Apache

Per iniziare, aggiorna innanzitutto il tuo CentOS 8 o RHEL 8 elenco dei pacchetti di sistema utilizzando il seguente comando dnf.

$ sudo dnf update

Una volta completato l'aggiornamento, installa Apache webserver eseguendo il comando seguente.

$ sudo dnf install httpd

Una volta installato, puoi verificare la versione di Apache eseguendo il comando rpm.

$ rpm -qi httpd

Verifica la versione di Apache

Il comando stampa una serie di informazioni come la versione, la data di rilascio, la build e l'architettura del pacchetto.

Per avviare il servizio Web Apache HTTP, eseguire il comando systemctl.

$ sudo systemctl start httpd

Per confermare se il servizio è in esecuzione, esegui.

$ sudo systemctl status httpd

Verifica lo stato del servizio Apache

Dall'output, "attivo Lo stato ' in verde indica che il server web Apache è attivo e funzionante.

Per chiarire qualsiasi dubbio sull'esecuzione del server web, richiedi una pagina di prova ad Apache sfogliando l'indirizzo IP o il nome di dominio del tuo server come mostrato.

http://server-ip  

È possibile ottenere l'IP del server eseguendo il comando ifconfig. Se il tuo server è ospitato sul cloud, puoi ottenere l'IP pubblico eseguendo il comando curl.

$ curl ifconfig.me 
OR
$ curl -4 icanhazip.com

Trova l'indirizzo IP del server CentOS

Quando sfogli l'indirizzo IP del server, dovresti visualizzare la seguente pagina web.

Controlla la pagina Web di Apache

Questa è una conferma sicura che il server web è in esecuzione.

Gestione del server Web Apache

Con Apache installato e funzionante, puoi utilizzare systemctl strumento di ispezione per gestire Apache.

Ad esempio, per fermare Apache, esegui il comando:

$ sudo systemctl stop httpd

Per riavviare il servizio, eseguire:

$ sudo systemctl start httpd

Se hai apportato modifiche a uno qualsiasi dei suoi file di configurazione e devi riavviare per applicare le modifiche, esegui il comando:

$ sudo systemctl restart httpd

Il riavvio del servizio in genere provoca un'interruzione del servizio. Un'alternativa migliore è semplicemente ricaricare senza alcuna interruzione con la connessione.

$ sudo systemctl reload httpd

Per avviare automaticamente il server Web Apache all'avvio o al riavvio, eseguire il comando seguente. Ciò garantirà che Apache si avvii automaticamente senza il tuo intervento.

$ sudo systemctl enable httpd

Se scegli di non avviare automaticamente il servizio all'avvio, esegui:

$ sudo systemctl disable httpd

Configurazione di host virtuali Apache

Per impostazione predefinita, il server Web Apache è configurato per servire o ospitare un solo sito Web. Se desideri ospitare un solo sito Web, questo passaggio non è necessario. Ma nel caso in cui prevedi di ospitare più domini sul tuo server, devi configurare gli host virtuali Apache.

Un host virtuale è un file separato che contiene le configurazioni che consentono di impostare un dominio separato da quello predefinito. Per questa guida, configureremo un host virtuale per il dominio crazytechgeek.info .

L'host virtuale predefinito si trova in /var/www/html directory. Funziona solo per un singolo sito. Per creare un host virtuale separato per il nostro dominio, creeremo un'altra struttura di directory all'interno di /var/www directory come mostrato.

$ sudo mkdir -p /var/www/crazytechgeek.info/html

Inoltre, puoi anche creare una directory per la memorizzazione dei file di registro.

$ sudo mkdir -p /var/www/crazytechgeek.info/log

Quindi, modifica i permessi del file usando $USER variabile di ambiente come mostrato.

$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

Inoltre, regola i permessi della directory webroot come mostrato.

$ sudo chmod -R 755 /var/www

Quindi, crea un esempio index.html file come mostrato.

$ sudo vim /var/www/crazytechgeek.info/html/index.html

Premi la lettera 'i' sulla tastiera e incollare alcuni contenuti di esempio come mostrato che verranno visualizzati sul browser Web durante il test dell'host virtuale.

<html>
  <head>
    <title>Welcome to crazytechgeek.info!</title>
  </head>
  <body>
    <h1>Success! The crazytechgeek.info virtual host is up and perfectly working!</h1>
  </body>
</html>

Salva ed esci dal file di configurazione.

Dopo aver creato il file di indice di esempio e la directory del sito, è ora possibile procedere e creare il file dell'host virtuale. Il file host virtuale conterrà la configurazione del sito del tuo dominio e indicherà ad Apache come risponderà alle richieste dei clienti.

Il file host virtuale conterrà la configurazione del sito del tuo dominio e indicherà ad Apache come risponderà alle richieste dei clienti. Ma procedendo, devi creare 2 directory:la sites-available e sites-enabled directory.

Il file dell'host virtuale verrà archiviato in sites-available directory mentre sites-enabled la directory conterrà il collegamento simbolico all'host virtuale.

Crea entrambe le directory come mostrato.

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

Quindi, modifica il file di configurazione principale del server Web Apache e indica ad Apache dove individuare l'host virtuale all'interno della directory abilitati ai siti.

$ sudo vim /etc/httpd/conf/httpd.conf

Aggiungi la riga come mostrato alla fine del file di configurazione.

IncludeOptional sites-enabled/*.conf

Salva ed esci.

Ora crea un file host virtuale come mostrato:

$ sudo vim /etc/httpd/sites-available/crazytechgeek.info

Incolla il contenuto di seguito e sostituisci crazytechgeek.info con il tuo nome di dominio.

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

Salva ed esci dal file.

Ora abilita il file host virtuale creando un collegamento simbolico in sites-enabled directory.

$ sudo ln -s /etc/httpd/sites-available/crazytechgeek.info.conf /etc/httpd/sites-enabled/crazytechgeek.info.conf

Regolazione delle autorizzazioni SELinux per host virtuali

CentOS 8 e RHEL 8 viene fornito con SELinux che è un modulo di sicurezza per rafforzare la sicurezza del sistema Linux. Poiché hai configurato un log personalizzato directory nel passaggio precedente, è necessario aggiornare alcune politiche di SELinux per istruire il server Web Apache a scrivere nella directory.

Esistono 2 approcci per regolare le politiche di SELinux Apache:regolare le politiche di regolazione universalmente e le politiche su una directory. Quest'ultimo è preferito perché è più preferito.

Regolazione dei criteri SELinux su una directory

Modifica di SELinux i permessi per la directory di log ti danno il controllo assoluto sulle politiche del server web di Apache. Questo metodo è piuttosto lungo e richiede la configurazione manuale del tipo di contesto per le directory aggiuntive specificate nel file di configurazione dell'host virtuale.

Prima di iniziare, conferma prima il tipo di contesto assegnato alla directory di log da SELinux:

$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

L'output dovrebbe essere simile a quello che abbiamo di seguito.

Imposta le politiche di SELinux su Apache Log Directory

Dall'output, il contesto impostato è httpd_sys_content_t . Ciò indica che il server web può leggere solo i file nella directory di registro. Devi cambiare questo contesto in httpd_log_t per consentire ad Apache di generare e aggiungere voci di registro alla directory.

Pertanto, esegui il comando:

$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"

Se ti capita di ricevere l'errore sotto "semanage:comando non trovato".

Implica che i pacchetti che prevedono il semanage comando non sono installati. Per correggere questo errore, è necessario installare quei pacchetti. Ma prima, controlla quali pacchetti forniscono il comando semanage eseguendo:

$ sudo dnf whatprovides /usr/sbin/semanage

L'output ci fornisce il pacchetto che fornisce semanage, che è policycoreutils-python-utils .

Ora installa il pacchetto come mostrato usando il gestore di pacchetti DNF.

$ sudo dnf install policycoreutils-python-utils

Il comando per modificare il contesto ora dovrebbe funzionare.

$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"

Per salvare le modifiche e renderle persistenti, emetti il ​​restorecon comando come mostrato:

$ sudo restorecon -R -v /var/www/crazytechgeek.info/log

Puoi confermare le modifiche eseguendo ancora una volta il comando:

$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

Controlla il tipo di contesto SELinux

Assicurati di notare che il tipo di contesto è cambiato in httpd_log_t come si vede nell'output.

Riavvia Apache per applicare le modifiche.

$ sudo systemctl restart httpd

Ora puoi confermare se Apache sta salvando i file di registro nella directory di registro elencandone il contenuto come mostrato:

$ ls -l /var/www/crazytechgeek.info/log/

Dovresti essere in grado di vedere due file di registro come mostrato:registro degli errori e file di registro delle richieste.

Controlla i file di registro di Apache

Test dell'host virtuale Apache

Infine, devi essere sicuro che il server web Apache stia servendo il tuo file host virtuale. Per fare ciò, apri il tuo browser e vai all'indirizzo IP o al nome di dominio del tuo server:

http://domain-name

Controlla Apache Virtual Host per il sito web

Perfetto! Ciò indica che tutto è andato bene e il nostro host virtuale viene servito come previsto.

Conclusione

In questa guida abbiamo imparato come installare Apache server web su CentOS 8 e RHEL 8 e anche come configurare un file host virtuale per servire contenuto per un dominio aggiuntivo. Sentiti libero di configurare più file host virtuali come ritieni opportuno per ospitare domini aggiuntivi.

Se desideri configurare uno stack di hosting completo, ti consiglio di installare uno stack LAMP su CentOS 8.

Condividere è prendersi cura...
Condividi su FacebookCondividi su TwitterCondividi su LinkedinCondividi su Reddit
Cent OS
  1. Come installare Apache Cassandra su CentOS 8

  2. Come installare Apache su CentOS 7

  3. Come installare Apache Maven su CentOS 7

  4. Come installare WordPress con Apache su CentOS 7

  5. Come installare Let's Encrypt con Apache su CentOS 7

Come installare phpMyAdmin con Apache su CentOS 7 / RHEL 7

Come installare phpMyAdmin con Apache su CentOS 8 / RHEL 8

Come configurare l'host virtuale Apache su CentOS 8

Come installare Drupal su CentOS 7 con Apache

Come installare WordPress su CentOS 7.1 con Apache

Come installare Apache con PHP-FPM su CentOS 8