httpd.html 41.8 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head xmlns="http://www.w3.org/1999/xhtml">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title xmlns="">HTTPD - Server web Apache2</title>
    <link rel="stylesheet" href="../../libs/ubuntu-book.css" type="text/css" />
    <link rel="home" href="index.html" title="Guida a Ubuntu Server" />
    <link rel="up" href="web-servers.html" title="Capitolo 10. Server web" />
    <link rel="prev" href="web-servers.html" title="Capitolo 10. Server web" />
    <link rel="next" href="php5.html" title="PHP5 - Linguaggio di scripting" />
    <link rel="copyright" href="legal.html" title="Riconoscimenti e licenza" />
  </head>
  <link href="http://help.ubuntu-it.org/favicon.ico" rel="shortcut icon" />
  <body>
    <div id="page-border-left-repeat">
      <div id="page-border-right-repeat">
        <script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
        <script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-8147493-2");
pageTracker._trackPageview();
} catch(err) {}</script>
        <div id="page-border-top-repeat">
          <div id="header">
            <div id="header-navigation">
              <ul>
                <li>
                  <a href="http://www.ubuntu-it.org">Web</a>
                </li>
                <li>
                  <a href="http://wiki.ubuntu-it.org">Documentazione</a>
                </li>
                <li>
                  <a href="http://forum.ubuntu-it.org">Forum</a>
                </li>
                <li>
                  <a href="http://planet.ubuntu-it.org">Planet</a>
                </li>
              </ul>
            </div>
            <form action="http://help.ubuntu-it.org/11.04/ubuntu/search.php" id="cse-search-box">
              <div>
                <input type="text" name="s" size="28" title="search" />
                <input type="submit" value="Cerca" title="search" />
              </div>
            </form>
          </div>
        </div>
        <div>
          <div id="bodyarea">
            <div class="pagelocation"><a href="http://help.ubuntu-it.org/">Documentazione di Ubuntu</a> &gt; <a href="http://help.ubuntu-it.org/11.04/ubuntu/index.html">Ubuntu 11.04</a> &gt; <span class="breadcrumb-link"><a href="index.html">Guida a Ubuntu Server</a></span> &gt; <span class="breadcrumb-link"><a href="web-servers.html">Server web</a></span> &gt; <span class="breadcrumb-node">HTTPD - Server web Apache2</span></div>
            <div xmlns="http://www.w3.org/1999/xhtml" class="sect1" title="HTTPD - Server web Apache2">
              <div class="titlepage">
                <div>
                  <div>
                    <h2 class="title" style="clear: both"><a id="httpd"></a>HTTPD - Server web Apache2</h2>
                  </div>
                </div>
              </div>
              <p>Apache è il server web più utilizzato nei sistemi Linux. I server web sono usati per inviare le pagine web richieste da un client, che solitamente esege le richieste attraverso un browser web come <span class="application"><strong>Firefox</strong></span>, <span class="application"><strong>Opera</strong></span> o <span class="application"><strong>Mozilla</strong></span>.</p>
              <p>Users enter a Uniform Resource Locator (URL) to point to a Web server by means of
          its Fully Qualified Domain Name (FQDN) and a path to the required resource. For example, to view the home page of
          the <a class="ulink" href="http://www.ubuntu.com" target="_top">Ubuntu Web site</a> a user will enter only the FQDN. To request specific information about 
              <a class="ulink" href="http://www.ubuntu.com/support/services" target="_top">paid
              support</a>, a user will enter the FQDN followed by a path.</p>
              <p>Il protocollo più utilizzato per il trasferimento delle pagine web è l'HTTP (Hyper Text Transfer Protocol). Sono anche supportati protocolli come HTTPS (Hyper Text Transfer Protocol over Secure Sockets Layer) e FTP (File Transfer Protocol), un protocollo per caricare e scaricare file dalla rete.</p>
              <p>I server web Apache vengono comunemente usati in combinazione con il motore di database <span class="application"><strong>MySQL</strong></span>, il linguaggio di script per la pre-elaborazione dell'ipertesto <span class="application"><strong>PHP</strong></span> (Pre-processor Hyper Text) e altri noti linguaggi di script come <span class="application"><strong>Python</strong></span> e <span class="application"><strong>Perl</strong></span>. Questa configurazione viene denominata LAMP (Linux, Apache, MYSQL e Perl/Phyton/PHP) e costituisce una piattaforma robusta e potente per lo sviluppo e l'installazione di applicazioni basate sul web.</p>
              <div class="sect2" title="Installazione">
                <div class="titlepage">
                  <div>
                    <div>
                      <h3 class="title"><a id="http-installation"></a>Installazione</h3>
                    </div>
                  </div>
                </div>
                <p>Il server web <span class="application"><strong>Apache2</strong></span> è disponibile in Ubuntu 10.04. Per installare Apache2:</p>
                <div class="procedure">
                  <ul class="procedure">
                    <li class="step" title="Passo 1">
                      <p>Al prompt di un terminale, eseguire il seguente comando:</p>
                      <pre class="screen">
<span class="command"><strong>sudo apt-get install apache2</strong></span>
</pre>
                    </li>
                  </ul>
                </div>
              </div>
              <div class="sect2" title="Configurazione">
                <div class="titlepage">
                  <div>
                    <div>
                      <h3 class="title"><a id="http-configuration"></a>Configurazione</h3>
                    </div>
                  </div>
                </div>
                <p>La configurazione di Apache2 avviene scrivendo delle <span class="emphasis"><em>direttive</em></span> in semplici file di testo. Queste <span class="emphasis"><em>direttive</em></span> sono suddivise tra i seguenti file e directory:</p>
                <div class="itemizedlist">
                  <ul class="itemizedlist" type="disc">
                    <li class="listitem">
                      <p><span class="emphasis"><em>apache2.conf</em></span>: il principale file di configurazione di Apache2. Contiene impostazioni <span class="emphasis"><em>globali</em></span> per Apache2.</p>
                    </li>
                    <li class="listitem">
                      <p><span class="emphasis"><em>conf.d</em></span>: contiene file di configurazione che si applicano <span class="emphasis"><em>globalmente</em></span> ad Apache2. Altri pacchetti che usano Apache2 per fornire contenuti possono aggiungere file o collegamenti simbolici in questa directory.</p>
                    </li>
                    <li class="listitem">
                      <p><span class="emphasis"><em>envvars</em></span>: file dove vengono impostate le variabili <span class="emphasis"><em>d'ambiente</em></span> di Apache2.</p>
                    </li>
                    <li class="listitem">
                      <p><span class="emphasis"><em>httpd.conf</em></span>: storicamente il file di configurazione principale di Apache2, il cui nome deriva dal demone <span class="application"><strong>httpd</strong></span>. Il file può essere usato per configurazioni <span class="emphasis"><em>utente</em></span> che hanno effetto globalmente su Apache2.</p>
                    </li>
                    <li class="listitem">
                      <p><span class="emphasis"><em>mods-available</em></span>: questa directory contiene file di configurazione per caricare e configurare  <span class="emphasis"><em>moduli</em></span>. Non tutti i moduli hanno file di configurazione specifici.</p>
                    </li>
                    <li class="listitem">
                      <p><span class="emphasis"><em>mods-enabled</em></span>: contiene <span class="emphasis"><em>collegamenti simbolici</em></span> ai file in <code class="filename">/etc/apache2/mods-available</code>. Quando viene creato un collegamento simbolico a un modulo di configurazione, viene abilitato al successivo riavvio di <span class="application"><strong>apache2</strong></span>.</p>
                    </li>
                    <li class="listitem">
                      <p><span class="emphasis"><em>ports.conf</em></span>: contiene le direttive che determinano su quali porte TCP Apache2 sta in ascolto.</p>
                    </li>
                    <li class="listitem">
                      <p><span class="emphasis"><em>sites-available</em></span>: questa directory contiene i file di configurazione per i <span class="emphasis"><em>Virtual Hosts</em></span> di Apache2. Questi consentono di configurare Apache2 affinché venga utilizzato per siti multipli con configurazioni separate.</p>
                    </li>
                    <li class="listitem">
                      <p><span class="emphasis"><em>sites-enabled</em></span>: come mods-enabled, <code class="filename">sites-enabled</code> contiene collegamenti simbolici alla directory <code class="filename">/etc/apache2/sites-available</code>. Quando viene creato un collegamento simbolico di un file di configurazione nella directory sites-available, il sito configurato sarà attivo al riavvio di Apache2.</p>
                    </li>
                  </ul>
                </div>
                <p>Altri file di configurazione possono essere aggiunti attraverso la direttiva <span class="emphasis"><em>Include</em></span> e caratteri speciali possono essere usati per aggiungere molti altri file di configurazione. Una qualsiasi direttiva può essere posizionata in uno qualsiasi di questi file di configurazione. Modifiche ai file principali di configurazione vengono riconosciute solo con un riavvio di Apache2.</p>
                <p>Il server legge anche un file contenente i tipi MIME dei documenti, il nome di questo file è impostato in <span class="emphasis"><em>TypesConfig</em></span> e il valore predefinito è <code class="filename">/etc/mime.types</code></p>
                <div class="sect3" title="Impostazioni di base">
                  <div class="titlepage">
                    <div>
                      <div>
                        <h4 class="title"><a id="http-basic-settings"></a>Impostazioni di base</h4>
                      </div>
                    </div>
                  </div>
                  <p>Questa sezione descrive i parametri di configurazione fondamentali del server Apache2. Per maggiori informazioni, consultare la <a class="ulink" href="http://httpd.apache.org/docs/2.2/" target="_top">documentazione di Apache2</a>.</p>
                  <div class="itemizedlist">
                    <ul class="itemizedlist" type="disc">
                      <li class="listitem">
                        <p>Apache2 è dotato di una configurazione predefinita adatta agli host virtuali: è configurato con un singolo host virtuale (attraverso l'uso della direttiva <span class="emphasis"><em>VirtualHost</em></span>) che può essere modificato oppure usato così com'è nel caso si disponga di un solo sito web oppure usato come modello per aggiungere altri host virtuali. Se lasciato così, l'host virtuale predefinito verrà usato come sito predefinito o come il sito che gli utenti vedranno se l'URL inserito non corrisponde alla direttiva <span class="emphasis"><em>ServerName</em></span> in uno qualsiasi dei file personalizzati. Per modificare l'host virtuale, modificare il file <code class="filename">/etc/apache2/sites-available/default</code>.</p>
                        <div class="note" title="Nota" style="margin-left: 0.5in; margin-right: 0.5in;">
                          <table border="0" summary="Note">
                            <tr>
                              <td rowspan="2" align="center" valign="top" width="25">
                                <img alt="[Nota]" src="../../libs/admon/note.png" />
                              </td>
                              <th align="left"></th>
                            </tr>
                            <tr>
                              <td align="left" valign="top">
                                <p>Le direttive impostate per un host virtuale si applicano solamente a quel particolare host. Se una direttiva è impostata all'interno del server e non è definita nelle impostazioni  dell'host virtuale, vengono utilizzate le impostazioni predefinite. Per esempio, è possibile impostare un indirizzo email per il webmaster e non definirne alcuno per per gli host virtuali.</p>
                              </td>
                            </tr>
                          </table>
                        </div>
                        <p>Per configurare un nuovo host virtuale o un nuovo sito, copiare quel file nella stessa directory con un nome a scelta. Per esempio:</p>
                        <pre class="screen">
<span class="command"><strong>sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mionuovosito</strong></span>
</pre>
                        <p>Modificare il file per configurare il nuovo sito usando alcune delle direttive descritte di seguito.</p>
                      </li>
                      <li class="listitem">
                        <p>La direttiva <span class="emphasis"><em>ServerAdmin</em></span> specifica a quale indirizzo email il sistema deve indirizzare la posta destinata agli amministratori. Il valore predefinito è «webmaster@localhost». Quest’impostazione deve essere modificata con l’indirizzo che è stato assegnato all’utente (nel caso sia l’amministratore). Se il sito presenta dei problemi, Apache2 mostrerà un messaggio di errore indicante l'indirizzo a cui deve essere segnalato il problema. Questa direttiva è presente nel file /etc/apache2/sites-available del proprio sito.</p>
                      </li>
                      <li class="listitem">
                        <p>La direttiva <span class="emphasis"><em>Listen</em></span> specifica la porta, e opzionalmente l'indirizzo IP, su cui Apache2 dovrebbe essere in ascolto. Se l'indirizzo IP non è specificato, Apache2 ascolta tutti gli indirizzi IP assegnati alla macchina. Il valore predefinito per la direttiva Listen è 80. Modificare questo valore, in 127.0.0.1:80 per fare in modo che Apache2 ascolti solo l'interfaccia di loopback e non sia disponibile verso internet, in 81 per modificare la porta di ascolto o lasciare il valore predefinito per il normale funzionamento. Questa direttiva può essere trovata e modifica in un file specifico: <code class="filename">/etc/apache2/ports.conf</code></p>
                      </li>
                      <li class="listitem">
                        <p>La direttiva <span class="emphasis"><em>ServerName</em></span> è opzionale e specifica il FQDN a cui il proprio sito risponde. L'host virtuale predefinito non ha la direttiva ServerName impostata, cosicché risponderà a tutte le richieste che non corrispondono alla direttiva ServerName in un altro host virtuale. Se si è i proprietari del dominio "ubunturocks.com" e si vuole ospitare tale dominio su un server Ubuntu, il valore della direttiva ServerName nel file di configurazione dell'host virtuale dovrebbe essere "ubunturocks.com". Aggiungere quindi questa direttiva al nuovo file di configurazione creato precedentemente (<code class="filename">/etc/apache2/sites-available/mionuovosito</code>).</p>
                        <p>Potrebbe essere necessario che il proprio sito risponda anche alle richieste per "www.ubunturocks.com", dato che molti utenti ritengono corretto inserire il prefisso "www". Per ottenere questo, usare la direttiva <span class="emphasis"><em>ServerAlias</em></span>: è possibile usare anche caratteri speciali con la direttiva ServerAlias.</p>
                        <p>Per esempio, la seguente configurazione farà in modo che il proprio sito risponda a qualsiasi richiesta il cui dominio termina con <span class="emphasis"><em>.ubunturocks.com</em></span>.</p>
                        <pre class="programlisting">
ServerAlias *.ubunturocks.com
</pre>
                      </li>
                      <li class="listitem">
                        <p>La direttiva <span class="emphasis"><em>DocumentRoot</em></span> specifica dove Apache2 deve cercare i file che compongono il sito. Il valore predefinito è /var/www. Nessun sito viene configurato qui, ma se si viene tolto il commento alla direttiva <span class="emphasis"><em>RedirectMatch</em></span>  in <code class="filename">/etc/apache2/apache2.conf</code> le richieste verranno reindirizzate a  /var/www/apache2-default dove è presente il sito predefinito Apache2. Cambiare questo valore nel file virtual host del proprio sito, e ricordare di creare quella directory se necessaria.</p>
                      </li>
                    </ul>
                  </div>
                  <p>Abilitare il nuovo <span class="emphasis"><em>VirtualHost</em></span> utilizzando l'utilità <span class="application"><strong>a2ensite</strong></span> e riavviare Apache2:</p>
                  <pre class="screen">
<span class="command"><strong>sudo a2ensite mionuovosito</strong></span>
<span class="command"><strong>sudo /etc/init.d/apache2 restart</strong></span>
</pre>
                  <div class="note" title="Nota" style="margin-left: 0.5in; margin-right: 0.5in;">
                    <table border="0" summary="Note">
                      <tr>
                        <td rowspan="2" align="center" valign="top" width="25">
                          <img alt="[Nota]" src="../../libs/admon/note.png" />
                        </td>
                        <th align="left"></th>
                      </tr>
                      <tr>
                        <td align="left" valign="top">
                          <p>Assicurarsi di sostituire <span class="emphasis"><em>mionuovosito</em></span> con una nome più descrittivo per il VirtualHost. Un metodo molto utilizzato consiste nel definire il nome del file secondo la direttiva <span class="emphasis"><em>ServerName</em></span> dell'host virtuale.</p>
                        </td>
                      </tr>
                    </table>
                  </div>
                  <p>Allo stesso modo, usare l'utilità <span class="application"><strong>a2dissite</strong></span> per disabilitare i siti. Questo può rivelarsi utile per diagnosticare problemi di configurazione con molteplici host virtuali:</p>
                  <pre class="screen">
<span class="command"><strong>sudo a2dissite mionuovosito</strong></span>
<span class="command"><strong>sudo /etc/init.d/apache2 restart</strong></span>
</pre>
                </div>
                <div class="sect3" title="Impostazioni predefinite">
                  <div class="titlepage">
                    <div>
                      <div>
                        <h4 class="title"><a id="default-settings"></a>Impostazioni predefinite</h4>
                      </div>
                    </div>
                  </div>
                  <p>Questa sezione si occupa delle impostazioni predefinite del server Apache2. Per esempio, se viene aggiunto un host virtuale, le impostazioni modificate dell'host virtuale hanno precedenza rispetto quelle dell'host. Per una direttiva non definita, viene utilizzato il valore predefinito.</p>
                  <div class="itemizedlist">
                    <ul class="itemizedlist" type="disc">
                      <li class="listitem">
                        <p><span class="emphasis"><em>DirectoryIndex</em></span> è la pagina predefinita proposta dal server alle richieste dell'indice di una directory, specificate attraverso l'uso di una barra (/) come suffisso al nome della directory.</p>
                        <p>
              For example, when a user requests the page
              http://www.example.com/this_directory/, he or she will
              get either the DirectoryIndex page if it exists, a
              server-generated directory list if it does not and the
	      Indexes option is specified, or a Permission Denied page
	      if neither is true.  The server will try to
              find one of the files listed in the DirectoryIndex
              directive and will return the first one it finds. If it
              does not find any of these files and if <span class="emphasis"><em>Options Indexes</em></span> is
              set for that directory, the server will generate and
              return a list, in HTML format, of the subdirectories and
              files in the directory.  The default value, found in
	      <code class="filename">/etc/apache2/mods-available/dir.conf</code> is 
	      "index.html index.cgi index.pl index.php index.xhtml index.htm".
	      Thus, if Apache2 finds a file in a requested directory
	      matching any of these names, the first will be displayed.
              </p>
                      </li>
                      <li class="listitem">
                        <p>La direttiva <span class="emphasis"><em>ErrorDocument</em></span> consente di specificare un file da usare per errori specifici. Per esempio, se un utente cerca di accedere a una risorsa che non esiste, si verifica un errore 404 e viene visualizzato il file predefinito <code class="filename">/usr/share/apache2/error/HTTP_NOT_FOUND.html.var </code>. Il file non è presente nella DocumentRoot, ma c'è una direttiva Alias in <code class="filename">/etc/apache2/apache2.conf</code> che redirige le richieste alla directory /error verso <code class="filename">/usr/share/apache2/error/</code>.</p>
                        <p>Per un elenco delle direttive predefinite ErroDocument, usare il seguente comando:</p>
                        <pre class="screen">
<span class="command"><strong>grep ErrorDocument /etc/apache2/apache2.conf</strong></span>
</pre>
                      </li>
                      <li class="listitem">
                        <p>Il server, in modo predefinito, scrive il registro dei trasferimenti in <code class="filename">/var/log/apache2/access.log</code>. È possibile modificare questo valore per ogni singolo sito nella configurazione dell'host virtuale tramite la direttiva <span class="emphasis"><em>CustomLog</em></span> oppure basta ometterla per utilizzare il valore predefinito indicato in <code class="filename"> /etc/apache2/apache2.conf</code>. È anche possibile specificare il file in cui registrare gli errori attraverso la direttiva <span class="emphasis"><em>ErrorLog</em></span> il cui valore predefinito è <code class="filename">/var/log/apache2/error.log</code>. Questi sono mantenuti separati dal registro dei trasferimenti per semplificare la risoluzione di problemi che possono incorrere col server Apache2. Inoltre, è anche possibile specificare il <span class="emphasis"><em>LogLevel</em></span> (il valore predefinito è "warn") e il <span class="emphasis"><em>LogFormat</em></span> (per il valore predefinito, consultare <code class="filename"> /etc/apache2/apache2.conf</code>).</p>
                      </li>
                      <li class="listitem">
                        <p>Alcune opzioni vengono specificate per directory piuttosto che per server, come la direttiva <span class="emphasis"><em>Options</em></span>. Una stanza "Directory" è racchiusa tra tag in stile XML:</p>
                        <pre class="programlisting">
&lt;Directory /var/www/mionuovosito&gt;
...
&lt;/Directory&gt;
</pre>
                        <p>La direttiva <span class="emphasis"><em>Options</em></span> all'interno della stanza "Directory" accetta uno o più dei seguenti valori (tra gli altri) separati da spazi:</p>
                        <div class="itemizedlist">
                          <ul class="itemizedlist" type="circle" compact="compact">
                            <li class="listitem">
                              <p><span class="bold"><strong>ExecCGI</strong></span>: consente l'esecuzione di script CGI. Questi script non vengono eseguiti se l'opzione non è selezionata. </p>
                              <div class="tip" title="Suggerimento" style="margin-left: 0.5in; margin-right: 0.5in;">
                                <table border="0" summary="Tip">
                                  <tr>
                                    <td rowspan="2" align="center" valign="top" width="25">
                                      <img alt="[Suggerimento]" src="../../libs/admon/tip.png" />
                                    </td>
                                    <th align="left"></th>
                                  </tr>
                                  <tr>
                                    <td align="left" valign="top">
                                      <p>La maggior parte dei file non dovrebbe venir eseguita come script CGI, potrebbe essere molto pericoloso. Gli script CGI dovrebbero essere mantenuti in una directory separata, al di fuori della propria DocumentRoot e solo questa directory dovrebbe avere l'opzione ExecCGI impostata. Questo è il comportamento predefinito in Ubuntu e la posizione per gli script CGI è <code class="filename">/usr/lib/cgi-bin</code>.</p>
                                    </td>
                                  </tr>
                                </table>
                              </div>
                            </li>
                            <li class="listitem">
                              <p><span class="bold"><strong>Includes</strong></span>: consente le inclusioni lato server. Le inclusioni lato server consentono ai file HTML di <span class="emphasis"><em>includere</em></span> altri file. Questa non è un'opzione comune. Per maggiori informazioni, consultare <a class="ulink" href="http://httpd.apache.org/docs/2.2/howto/ssi.html" target="_top">the Apache2 SSI HOWTO</a>.</p>
                            </li>
                            <li class="listitem">
                              <p><span class="bold"><strong>IncludesNOEXEC</strong></span>: consente inclusioni lato server, ma disabilita i comandi <span class="emphasis"><em>#exec</em></span> e <span class="emphasis"><em>#include</em></span> negli script CGI.</p>
                            </li>
                            <li class="listitem">
                              <p><span class="bold"><strong>Indexes</strong></span>: visualizza un elenco formattato dei contenuti della directory se non esiste alcun <span class="emphasis"><em>DirectoryIndex</em></span> (come index.html) nella directory richiesta. </p>
                              <div class="caution" title="Attenzione" style="margin-left: 0.5in; margin-right: 0.5in;">
                                <table border="0" summary="Caution">
                                  <tr>
                                    <td rowspan="2" align="center" valign="top" width="25">
                                      <img alt="[Attenzione]" src="../../libs/admon/caution.png" />
                                    </td>
                                    <th align="left"></th>
                                  </tr>
                                  <tr>
                                    <td align="left" valign="top">
                                      <p>Per motivi di sicurezza, quest'opzione non dovrebbe essere impostata e soprattutto non su DocumentRoot. Abilitare questa opzione con molta cautela solo su alcune directory e nel caso in cui si voglia visualizzare l'intero contenuto della directory.</p>
                                    </td>
                                  </tr>
                                </table>
                              </div>
                            </li>
                            <li class="listitem">
                              <p><span class="bold"><strong>Multiview</strong></span>: supporta visualizzazioni multiple in base al contenuto, quest'opzione è disabilitata in modo predefinito per ragioni di sicurezza. Per maggiori informazioni, consultare <a class="ulink" href="http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html#multiviews" target="_top">la documentazione di Apache2</a>.</p>
                            </li>
                            <li class="listitem">
                              <p><span class="bold"><strong>SymLinksIfOwnerMatch</strong></span>: segue i collegamenti simbolici solamente se il file di arrivo o la directory hanno gli stessi proprietari del collegamento.</p>
                            </li>
                          </ul>
                        </div>
                      </li>
                    </ul>
                  </div>
                </div>
                <div class="sect3" title="Impostazioni di httpd">
                  <div class="titlepage">
                    <div>
                      <div>
                        <h4 class="title"><a id="httpd-settings"></a>Impostazioni di httpd</h4>
                      </div>
                    </div>
                  </div>
                  <p>Questa sezione espone alcune delle configurazioni di base del demone <span class="application"><strong>httpd</strong></span>.</p>
                  <p><span class="bold"><strong>LockFile</strong></span>: la direttiva LockFile imposta il percorso al file di lock utilizzato quando il server viene compilato con USE_FCNTL_SERIALIZED_ACCEPT o USE_FLOCK_SERIALIZED_ACCEPT. Deve essere conservato nel disco locale. Questo valore dovrebbe essere lasciato invariato a meno che la directory di log non sia localizzata su una condivisione NFS. In questo caso, il valore dovrebbe essere modificato con una posizione sul disco locale e una directory accessibile solamente dall'utente root.</p>
                  <p><span class="bold"><strong>PidFile</strong></span>: la direttiva PidFile imposta il file in cui il server registra il proprio «pid». Questo file dovrebbe essere leggibile solamente dall'utente root. Nella maggior parte dei casi può essere lasciata invariata.</p>
                  <p><span class="bold"><strong>User</strong></span>: la direttiva User imposta lo «userid» utilizzato dal server in modo tale che risponda alle richieste. Questa impostazione determina l'accesso al server. Qualsiasi file non accessibile a questo utente è inaccessibile anche a chi cerca di visitare il sito. Il valore predefinito è www-data.</p>
                  <div class="warning" title="Avvertimento" style="margin-left: 0.5in; margin-right: 0.5in;">
                    <table border="0" summary="Warning">
                      <tr>
                        <td rowspan="2" align="center" valign="top" width="25">
                          <img alt="[Avvertimento]" src="../../libs/admon/warning.png" />
                        </td>
                        <th align="left"></th>
                      </tr>
                      <tr>
                        <td align="left" valign="top">
                          <p>A meno che non sia estremamente necessario, non impostare mai la direttiva «User» a root. Utilizzare root con «User» può creare una falla nella sicurezza del server Web.</p>
                        </td>
                      </tr>
                    </table>
                  </div>
                  <p>La direttiva Group è simile alla direttiva User, imposta il gruppo a cui il server è tenuto rispondere. Il gruppo predefinito è anche www-data.</p>
                </div>
                <div class="sect3" title="Moduli di Apache2">
                  <div class="titlepage">
                    <div>
                      <div>
                        <h4 class="title"><a id="apache-modules"></a>Moduli di Apache2</h4>
                      </div>
                    </div>
                  </div>
                  <p>Apache2 è un server modulare: solo le funzionalità basilari sono incluse nel server principale. È possibile estendere le funzionalità del server attraverso dei moduli che vengono caricati all'interno di Apache2. Un piccolo insieme di moduli è incluso nel server durante la compilazione: se il server è compilato per caricare i moduli dinamicamente, gli stessi moduli possono essere compilati separatamente e aggiungi quando necessario utilizzando la direttiva LoadModule; altrimenti è necessario ricompilare Apache2 per aggiungere o rimuovere i moduli.</p>
                  <p>La versione di Ubuntu consente il caricamento dinamico dei moduli. Le direttive di configurazione possono essere incluse in base alla presenza di un particolare modulo racchiudendole in un blocco tipo: <span class="emphasis"><em>&lt;IfModulo&gt;</em></span> block.</p>
                  <p>È quindi possibile installare moduli aggiuntivi di Apache2 e usarli con il server web. Per esempio, per installare il modulo <span class="emphasis"><em>MySQL Authentication</em></span>, in un terminale digitare quanto segue:</p>
                  <pre class="screen">
<span class="command"><strong>sudo apt-get install libapache2-mod-auth-mysql</strong></span>
</pre>
                  <p>Per altri moduli, consultare la directory <code class="filename">/etc/apache2/mods-available</code>.</p>
                  <p>Usare l'utilità <span class="application"><strong>a2enmod</strong></span> per abilitare un modulo:</p>
                  <pre class="screen">
<span class="command"><strong>sudo a2enmod auth_mysql</strong></span>
<span class="command"><strong>sudo /etc/init.d/apache2 restart</strong></span>
</pre>
                  <p>Allo stesso modo, <span class="application"><strong>a2dismod</strong></span> disabiliterà un modulo:</p>
                  <pre class="screen">
<span class="command"><strong>sudo a2dismod auth_mysql</strong></span>
<span class="command"><strong>sudo /etc/init.d/apache2 restart</strong></span>
</pre>
                </div>
              </div>
              <div class="sect2" title="Configurazione HTTPS">
                <div class="titlepage">
                  <div>
                    <div>
                      <h3 class="title"><a id="https-configuration"></a>Configurazione HTTPS</h3>
                    </div>
                  </div>
                </div>
                <p>Il modulo <span class="application"><strong>mod_ssl</strong></span> aggiunge un'importante caratteristica al server Apache2, l'abilità di cifrare le comunicazioni. In questo modo, quando il browser utilizza la cifratura SSL per le comunicazioni, il prefisso «https://» verrà inserito nell'URL (Uniform Resource Locator) nella barra degli indirizzi.</p>
                <p>Il modulo <span class="application"><strong>mod_ssl</strong></span> è disponibile nel pacchetto <span class="application"><strong>apache2-common</strong></span>. Per abilitare il modulo <span class="application"><strong>mod_ssl</strong></span>, eseguire il seguente comando in un terminale:</p>
                <pre class="screen">
<span class="command"><strong>sudo a2enmod ssl</strong></span>
</pre>
                <p>Esiste un file di configurazione HTTPS predefinito in <code class="filename">/etc/apache2/sites-available/default-ssl</code>. Affinché <span class="application"><strong>Apache2</strong></span> possa fornire connessioni HTTPS, sono necessari un <span class="emphasis"><em>certificato</em></span> e una  <span class="emphasis"><em>chiave</em></span>. La configurazione HTTPS predefinita utilizza un certificato e una chiave generati attraverso <span class="application"><strong>ssl-cert</strong></span>, utili in fase di test, ma da sostituire con con una versione specifica per il sito o il server. Per maggiori informazioni su come generare una chiave e su come procurarsi un certificato, consultare <a class="xref" href="certificates-and-security.html" title="Certificati">la sezione chiamata «Certificati»</a></p>
                <p>Per configurare l'HTTPS per <span class="application"><strong>Apache2</strong></span>, digitare quanto segue:</p>
                <pre class="screen">
<span class="command"><strong>sudo a2ensite default-ssl</strong></span>
</pre>
                <div class="note" title="Nota" style="margin-left: 0.5in; margin-right: 0.5in;">
                  <table border="0" summary="Note">
                    <tr>
                      <td rowspan="2" align="center" valign="top" width="25">
                        <img alt="[Nota]" src="../../libs/admon/note.png" />
                      </td>
                      <th align="left"></th>
                    </tr>
                    <tr>
                      <td align="left" valign="top">
                        <p>Le directory <code class="filename">/etc/ssl/certs</code> e <code class="filename">/etc/ssl/private</code> sono le posizioni predefinite. Se si installa il certificato e la chiave in un'altra directory assicurarsi di modificare <span class="emphasis"><em>SSLCertificateFile</em></span> e <span class="emphasis"><em>SSLCertificateKeyFile</em></span> appropriatamente.</p>
                      </td>
                    </tr>
                  </table>
                </div>
                <p>Con l'HTTPS configurato, riavviare il servizio per abilitare le nuove impostazioni:</p>
                <pre class="screen">
<span class="command"><strong>sudo /etc/init.d/apache2 restart</strong></span>
</pre>
                <div class="note" title="Nota" style="margin-left: 0.5in; margin-right: 0.5in;">
                  <table border="0" summary="Note">
                    <tr>
                      <td rowspan="2" align="center" valign="top" width="25">
                        <img alt="[Nota]" src="../../libs/admon/note.png" />
                      </td>
                      <th align="left"></th>
                    </tr>
                    <tr>
                      <td align="left" valign="top">
                        <p>In base a come è stato ottenuto il certificato, potrebbe essere necessario inserire una passphrase quando viene avviato <span class="application"><strong>Apache2</strong></span>.</p>
                      </td>
                    </tr>
                  </table>
                </div>
                <p>È possibile accedere alle pagine del server sicuro digitando «https://nome_host/url/» nel barra degli indirizzi del proprio browser.</p>
              </div>
              <div class="sect2" title="Riferimenti">
                <div class="titlepage">
                  <div>
                    <div>
                      <h3 class="title"><a id="http-references"></a>Riferimenti</h3>
                    </div>
                  </div>
                </div>
                <div class="itemizedlist">
                  <ul class="itemizedlist" type="disc">
                    <li class="listitem">
                      <p>La <a class="ulink" href="http://httpd.apache.org/docs/2.2/" target="_top">documentazione di Apache2</a> contiene informazioni dettagliate riguardo le direttive di configurazione di Apache2. Inoltre, per la documentazione ufficiale di Apache2, consultare il pacchetto <span class="application"><strong>apache2-doc</strong></span>.</p>
                    </li>
                    <li class="listitem">
                      <p>Per maggiori informazioni riguardo SSL, consultare la <a class="ulink" href="http://www.modssl.org/docs/" target="_top">documentazione di Mod SSL</a>.</p>
                    </li>
                    <li class="listitem">
                      <p>Il libro <a class="ulink" href="http://oreilly.com/catalog/9780596001919/" target="_top">Apache Cookbook</a> di O'Reilly è un'ottima risorsa per informazioni su specifiche configurazioni di Apache2.</p>
                    </li>
                    <li class="listitem">
                      <p>Per domande relative alla versione di Ubuntu di Apache2, chiedere nel canale IRC <span class="emphasis"><em>#ubuntu-server</em></span> sul server <a class="ulink" href="http://freenode.net/" target="_top">freenode.net</a>.</p>
                    </li>
                    <li class="listitem">
                      <p>Una buona risorsa riguardo PHP e MySQL può essere trovata nella <a class="ulink" href="https://help.ubuntu.com/community/ApacheMySQLPHP" target="_top">documentazione online</a>.</p>
                    </li>
                  </ul>
                </div>
              </div>
            </div>
            <div xmlns="http://www.w3.org/1999/xhtml" class="navfooter">
              <hr />
              <table width="100%" summary="Navigation footer">
                <tr>
                  <td width="40%" align="left"><a accesskey="p" href="web-servers.html"><img src="../../libs/navig/prev.png" alt="Indietro" /></a> </td>
                  <td width="20%" align="center">
                    <a accesskey="u" href="web-servers.html">
                      <img src="../../libs/navig/up.png" alt="Risali" />
                    </a>
                  </td>
                  <td width="40%" align="right"> <a accesskey="n" href="php5.html"><img src="../../libs/navig/next.png" alt="Avanti" /></a></td>
                </tr>
                <tr>
                  <td width="40%" align="left" valign="top">Capitolo 10. Server web </td>
                  <td width="20%" align="center">
                    <a accesskey="h" href="index.html">
                      <img src="../../libs/navig/home.png" alt="Partenza" />
                    </a>
                  </td>
                  <td width="40%" align="right" valign="top"> PHP5 - Linguaggio di scripting</td>
                </tr>
              </table>
            </div>
          </div>
        </div>
        <div id="page-border-bottom-repeat">
          <div id="footer">
            <div id="copyright">
						Ubuntu e Canonical sono marchi registrati da Canonical Ltd.
					</div>
          </div>
        </div>
        <div id="page-border-right-top"></div>
        <div id="page-border-right-bottom"></div>
      </div>
      <div id="page-border-left-top"></div>
      <div id="page-border-left-bottom"></div>
    </div>
    <p></p>
  </body>
</html>