Apache HTTP Server è il nome dato alla piattaforma server Web modulare più diffusa in grado di operare da sistemi operativi UNIX-Linux e Microsoft.
Apache è un software che realizza le funzioni di trasporto delle informazioni, di internetwork e di collegamento, ha il vantaggio di offrire anche funzioni di controllo per la sicurezza come quelli che compie il proxy.
I file di configurazione di apache solo locati in /etc/apache2:
La vesione di apache per ubuntu gestisce i moduli e i siti tramite alcuni tools:
I siti e i moduli solo collocati nelle cartelle sites-available e mods-available. Quando abiliterete un sito o un modulo, questo verrà linkato nella cartella sites-enabled per i siti e mods-available per i moduli.
Il sistema con i VirtualHosts è un metodo usato dai server web per ospitare più di un nome di dominio sullo stesso computer, talvolta sullo stesso indirizzo IP.
Appena installato apache è configurato per un solo host virtuale. Se volete ospitare più di un dominio dovete copiare il seguente file in un nuovo documeto chiamato nome.dominio.it nella cartella sites-available.
<VirtualHost *:80> ServerAdmin webmaster@nome.dominio.it ServerName nome.dominio.it DocumentRoot /var/www/nome.dominio.it/htdocs/ <Directory /var/www/nome.dominio.it/htdocs/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> 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> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined 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 </Directory> </VirtualHost>
Poi per abilitare il nuovo sito web, da un terminale root utilizzare:
# a2ensite nome.dominio.it
Se si ha bisogno di SSL, il file è leggermente diverso:
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
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>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/ssl_access.log combined
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
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>