GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e configurare il server Web Apache su Ubuntu 13.10

Installa il server Web Apache

Tempo fa ho aggiornato il mio Ubuntu alla 13.10 e poi l'installazione di apache php si è incasinata. Quindi ho dovuto reinstallarlo rapidamente per continuare a lavorare sui miei progetti php.

Apache è presente nei repository di Ubuntu, quindi può essere installato senza troppi sforzi. Ecco il comando rapido di cui hai bisogno per sparare al terminale.

$ sudo apt-get install apache2

Apache per impostazione predefinita si configura rapidamente in modo da poterlo aprire dal browser con l'URL localhost

http://localhost/

Avvia/arresta apache

Per avviare o interrompere il server Web Apache dalla riga di comando, utilizzare i seguenti comandi.

# Start web server
$ sudo service apache2 start
# Stop the web server
$ sudo service apache2 stop
# Restart the web server
$ sudo service apache2 restart
# Reload configuration without restarting
$ sudo service apache2 reload

La directory principale Web predefinita è /var/www. Quindi tutti i file inseriti in questa directory sono accessibili dall'URL di localhost. Successivamente verificheremo come modificare la directory principale Web predefinita

Per verificare quale versione di apache è installata, usa il comando apache2 con l'opzione v/

$ apache2 -v
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56

Individuare i file di configurazione

Per ottenere maggiori informazioni su come configurare esattamente apache sul tuo sistema, usa il comando apache2ctl.

$ apache2ctl -V
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56
Server's Module Magic Number: 20120211:23
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"
.....

Indica il nome del file di configurazione, il server mpm utilizzato e molti altri dettagli. Questi sono utili quando si configura ulteriormente Apache.

Il file di configurazione principale si trova in /etc/apache2/apache2.conf
Basta anteporre HTTPD_ROOT con SERVER_CONFIG_FILE per ottenere la posizione effettiva del file di configurazione.

Oppure c'è un'altra opzione S che riporta anche vari dettagli di configurazione su Apache

$ apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used

Tutte queste informazioni sono molto utili durante la configurazione di Apache. Risparmia tempo che altrimenti verrebbe speso per indovinare.

Ci sono molti file di configurazione coinvolti con Apache. Il file di configurazione principale è "apache2.conf" come menzionato sopra. Questo file di configurazione contiene le istruzioni per caricare altri file di configurazione. Ecco la linea che lo fa.

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

Correggi il messaggio di errore

Apache per impostazione predefinita fornisce il seguente messaggio di errore

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

Per risolvere questo problema, imposta la variabile ServerName sul tuo nome host o nome di dominio completo nel file di configurazione di Apache

$ sudo nano /etc/apache2/apache2.conf

Aggiungi la riga seguente alla fine

ServerName yourhostname

Ricarica la configurazione di Apache

$ sudo service apache2 reload

Cambia la directory principale del web

Per modificare la directory principale del Web, è necessario modificare l'impostazione nei file di configurazione "abilitati per i siti". Come pratica standard, viene creato un file di configurazione separato all'interno della directory abilitata per i siti per ciascun host virtuale.

Un host virtuale è un dominio. Quindi puoi avere più domini serviti da Apache. In questo esempio, tuttavia, utilizziamo solo il file di configurazione predefinito.

Dovrebbe esserci un file chiamato 000-default.conf all'interno della directory /etc/apache2/sites-enabled. Se non è presente, copialo da /etc/apache2/sites-available. Inizialmente il file è simile a questo.

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...
</VirtualHost>

Modificare il percorso DocumentRoot nella nuova radice Web che si desidera utilizzare. Salva il file e riavvia Apache.

$ sudo service apache2 restart

Ora prova ad accedere a localhost. Se non funziona, controlla il registro degli errori che si trova in

$ cat /var/log/apache2/error.log

A partire da Apache 2.4.3 esiste una funzione di sicurezza che impedisce ad Apache di accedere ad altre directory. E quindi l'URL di localhost mostrerebbe il messaggio di errore "Forbidden" e il registro degli errori conterrebbe un messaggio come questo

[Sun Nov 03 11:25:24.521491 2013] [authz_core:error] [pid 6950] [client 127.0.0.1:41078] AH01630: client denied by server configuration: /var/www/phpinfo.php

L'errore significa che Apache non è in grado di accedere alla directory principale Web a causa di alcune configurazioni. Per risolvere questo problema, aggiungi quanto segue alla configurazione di vhost

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
The "Require" directive fixes the problem. Newer version of Apache (2.3+) require the "Require" directive to allow access.

Il file 000-default.conf finale dovrebbe assomigliare a questo

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www2

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...

         # New directive needed in Apache 2.4.3: 
          <Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
</VirtualHost>

Ora riavvia nuovamente Apache e la nuova directory principale Web dovrebbe finalmente funzionare.

Aggiunta di più vhost o domini

Per aggiungere più host virtuali basta creare più file di configurazione come 000-default.conf e nominarlo qualsiasi cosa tranne che con un'estensione conf. Imposta un ServerName univoco in ogni file e assegna a ogni host una directory radice web separata.

In alternativa, creare un file di configurazione nella directory sites-available e utilizzare il comando a2ensite per abilitare il sito. Creerà i collegamenti simbolici necessari nella directory "siti abilitati".

Quindi prima crea un file di configurazione copiando il file di configurazione predefinito.

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mysite.conf

Modifica il file di configurazione secondo necessità. La cosa importante da cambiare è la radice del documento per il nuovo sito.
Poi abilitalo usando il comando a2ensite

$ sudo a2ensite mysite

Riavvia apache. E il nuovo sito dovrebbe funzionare correttamente.

Abilita file htaccess

Il file htaccess consente di modificare vari parametri di configurazione di Apache in base alla directory in fase di esecuzione. Per impostazione predefinita, Apache non è configurato per utilizzare il file htaccess. Per farlo, aggiungi semplicemente la seguente riga nella sezione Directory mostrata sopra.

AllowOverride FileInfo

Quanto sopra dirà ad Apache di iniziare a leggere i file htaccess e di analizzare le istruzioni di configurazione scritte in essi.

La configurazione finale potrebbe assomigliare a questa -

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   AllowOverride FileInfo
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>

Dopo aver installato Apache, potresti voler installare altre cose come php, mysql, phpmyadmin a seconda di ciò di cui hai bisogno. Quindi vai avanti e divertiti!!


Ubuntu
  1. Come installare e configurare un server NFS su Ubuntu 20.04

  2. Come installare e configurare VNC su Ubuntu 20.04

  3. Come installare e configurare VNC su Ubuntu 18.04

  4. Come installare e configurare il server DHCP su Ubuntu 20.04

  5. Come installare e configurare il server Redis in Ubuntu

Come installare e configurare il server LAMP su Ubuntu

Come installare e configurare il server OpenLDAP su Ubuntu 16.04

Come installare e configurare VNC su Ubuntu Server 20.04

Come installare Apache Web Server su Ubuntu 18.04

Come installare Apache Web Server su Ubuntu 20.04

Come installare e configurare un server Web LAMP su Ubuntu 18.04