Differences between revisions 2 and 3
Revision 2 as of 2007-09-24 15:52:18
Size: 1337
Editor: Kurgan
Comment:
Revision 3 as of 2007-12-05 14:40:43
Size: 4560
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

==== Configurazione minimale di apache2 ====

Configurazione minimale di Apache 2 per servire http e https con php5:

 * Editare {{{ports.conf}}} e aggiungere {{{Listen 443}}}
 * Creare un file {{{conf.d/00local.conf}}} con dentro le configurazioni personalizzate valide per tutti i siti. Cosi` facendo si puo` evitare di adare a pistolare il file {{{apache2.conf}}}
 {{{
# Qui ci sono le config locali (cioe` quelle fatte da me)
# che sono generali per tutti i siti e quindi non voglio dover
# ripetere tutte le volte dentro ai vari files in sites-available

NameVirtualHost *:80
NameVirtualHost *:443
ServerAdmin <la vostra email preferita>
DocumentRoot /var/www/

### permessi su tutto il disco
<Directory />
          Options FollowSymLinks
          AllowOverride None
</Directory>

### permessi su /var/www
<Directory /var/www/>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          allow from all
</Directory>

### configurazione di cgi-bin
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
         AllowOverride None
         Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
         Order allow,deny
         Allow from all
</Directory>

# logging
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel notice
CustomLog /var/log/apache2/access.log combined

### accesso alla documentazione di Debian
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128 10.1.42.0/24 10.1.43.0/24
</Directory>
}}}

 * Aggiungere dentro a {{{sites-available}}} un file con un nome sensato (il nome del server?) contenente le impostazioni per lo specifico virtuale. Ha senso metterne uno per ogni virtuale, ovviamente. Qui di seguito ne riporto uno per il virtuale "principale", cioe` quello che viene usato se non matcha nessun named virtual specifico. La sezione non-ssl non contiene nulla, ma funziona benissimo grazie al fatto che tutte le impostazioni di default sono state definite prima. Quella SSL contiene solo l'attivazione dell'engine SSL, e anche essa eredita le configurazioni generali definite prima.
 {{{
<VirtualHost *:80>
</VirtualHost>

<VirtualHost *:443>
        # Configurazione SSL
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/mater.kurgan.org.crt
        SSLCertificateKeyFile /etc/apache2/ssl/mater.kurgan.org.key
</VirtualHost>
}}}

 Questo e` un esempio di un named virtual che non e` il principale, senza SSL perche` i named con l' SSL non si possono fare, vanno necessariamente IP diversi.
 {{{
<VirtualHost *:80>
        ServerName www.kurgan.org
        ServerAlias www.kurgan.it
        DocumentRoot /var/www/www-kurgan
        CustomLog /var/log/apache2/access-www.kurgan.org.log combined
</VirtualHost>
}}}

 * Editare i link dentro a {{{sites-enabled}}} collegando le configurazioni in ordine di apparizione. Rimuovere il link a {{{sites-available/default}}} che ora non serve piu`.


Line 5: Line 89:
Se le pagine del sito contengono caratteri non-standard che non sono codificati correttamente in HTML (tipo le lettere accentate), e queste nel browser vengono male, occorre definire il charset standard. Per farlo, editare {{{/etc/apache2/apache2.conf}}} e scommentare la riga che dice {{{AddDefaultCharset ISO-8859-1}}}. Se le pagine del sito contengono caratteri non-standard che non sono codificati correttamente in HTML (tipo le lettere accentate), e queste nel browser vengono male, occorre definire il charset standard. Per farlo, editare {{{/etc/apache2/conf.d/charset}}} e modificarlo in modo che contenga {{{AddDefaultCharset ISO-8859-1}}}.

Appunti sparsi su Apache e Apache2

Configurazione minimale di apache2

Configurazione minimale di Apache 2 per servire http e https con php5:

  • Editare ports.conf e aggiungere Listen 443

  • Creare un file conf.d/00local.conf con dentro le configurazioni personalizzate valide per tutti i siti. Cosi` facendo si puo` evitare di adare a pistolare il file apache2.conf

    # Qui ci sono le config locali (cioe` quelle fatte da me)
    # che sono generali per tutti i siti e quindi non voglio dover
    # ripetere tutte le volte dentro ai vari files in sites-available
    
    NameVirtualHost *:80
    NameVirtualHost *:443
    ServerAdmin <la vostra email preferita>
    DocumentRoot /var/www/
    
    ### permessi su tutto il disco
    <Directory />
              Options FollowSymLinks
              AllowOverride None
    </Directory>
    
    ### permessi su /var/www
    <Directory /var/www/>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              allow from all
    </Directory>
    
    ### configurazione di cgi-bin
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
             AllowOverride None
             Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
             Order allow,deny
             Allow from all
    </Directory>
    
    # logging
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel notice
    CustomLog /var/log/apache2/access.log combined
    
    ### accesso alla documentazione di Debian
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
            Options Indexes MultiViews FollowSymLinks
            AllowOverride None
            Order deny,allow
            Deny from all
            Allow from 127.0.0.0/255.0.0.0 ::1/128 10.1.42.0/24 10.1.43.0/24
    </Directory>
  • Aggiungere dentro a sites-available un file con un nome sensato (il nome del server?) contenente le impostazioni per lo specifico virtuale. Ha senso metterne uno per ogni virtuale, ovviamente. Qui di seguito ne riporto uno per il virtuale "principale", cioe` quello che viene usato se non matcha nessun named virtual specifico. La sezione non-ssl non contiene nulla, ma funziona benissimo grazie al fatto che tutte le impostazioni di default sono state definite prima. Quella SSL contiene solo l'attivazione dell'engine SSL, e anche essa eredita le configurazioni generali definite prima.

    <VirtualHost *:80>
    </VirtualHost>
    
    <VirtualHost *:443>
            # Configurazione SSL
            SSLEngine on
            SSLCertificateFile /etc/apache2/ssl/mater.kurgan.org.crt
            SSLCertificateKeyFile /etc/apache2/ssl/mater.kurgan.org.key
    </VirtualHost>
    Questo e` un esempio di un named virtual che non e` il principale, senza SSL perche` i named con l' SSL non si possono fare, vanno necessariamente IP diversi.
    <VirtualHost *:80>
            ServerName www.kurgan.org
            ServerAlias www.kurgan.it
            DocumentRoot /var/www/www-kurgan
            CustomLog /var/log/apache2/access-www.kurgan.org.log combined
    </VirtualHost>
  • Editare i link dentro a sites-enabled collegando le configurazioni in ordine di apparizione. Rimuovere il link a sites-available/default che ora non serve piu`.

Gestione del charset

Se le pagine del sito contengono caratteri non-standard che non sono codificati correttamente in HTML (tipo le lettere accentate), e queste nel browser vengono male, occorre definire il charset standard. Per farlo, editare /etc/apache2/conf.d/charset e modificarlo in modo che contenga AddDefaultCharset ISO-8859-1.

Creazione di un certificato SSL self-signed per Apache2

openssl req -new -x509 -days 3650 -nodes -out server.crt -keyout server.key
chmod 400 server.key

I due files server.crt e server.key vanno definiti nella config di apache.

Configurazione di apache 1.3 con mod_ssl

Dopo aver installato apache 1.3 e mod_ssl, per avere il supporto per http e https occorre come minimo una configurazione con due virtualhosts, cosi`:

Listen 80
Listen 443

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
</VirtualHost>

<VirtualHost *:443>
        # Configurazione SSL
        SSLEngine on
        SSLCertificateFile /etc/apache/ssl/server.crt
        SSLCertificateKeyFile /etc/apache/ssl/server.key
</VirtualHost>

Questa ovviamente e` superminimale, ma funziona se si ha di fatto un solo host (niente virtuali davvero) che vuole fare sia http che https.

LinuxDebian/Apache (last edited 2023-09-04 17:15:49 by Kurgan)