Skip to content

Commit

Permalink
install.unix.apache2 page
Browse files Browse the repository at this point in the history
  • Loading branch information
fabiosal committed Jun 30, 2024
1 parent 1dc4675 commit 31bc6c8
Showing 1 changed file with 374 additions and 0 deletions.
374 changes: 374 additions & 0 deletions install/unix/apache2.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,374 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: e443388d4249fea383d6ec2d1a338be220cf95ee Maintainer: fabiosal Status: ready -->
<!-- Reviewed: yes -->
<sect1 xml:id="install.unix.apache2" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Apache 2.x su sistemi Unix</title>
<para>
Questa sezione contiene appunti e suggerimenti specifici per l'installazione di Apache con PHP su sistemi Unix.
</para>

&warn.apache2.compat;

<para>
La <link xlink:href="&url.apache2.docs;">documentazione di Apache</link>
è la principale fonte di informazioni per il server Apache 2.x.
Più informazioni riguardanti l'installazione di Apache possono essere trovate
nella documentazione ufficiale.
</para>

<para>
La versione più recente di Apache HTTP Server può essere ottenuta dal
<link xlink:href="&url.apache;">sito Apache</link>, e una versione di PHP
compatibile dai siti menzionati in precedenza.
Questa guida rapida fornisce solo le informazioni base per iniziare ad
utilizzare Apache 2.x e PHP. Per maggiori informazioni si legga la
<link xlink:href="&url.apache2.docs;">documentazione di Apache</link>.
I numeri di versione sono omessi per assicurare che le istruzioni non siano
incorrette. Nell'esempio sotto, 'NN' dovrebbe essere sostituito con la
specifica versione di Apache che si sta utilizzando.
</para>

<para>
Ci sono attualmente 2 versioni di Apache 2.x - la 2.4 e la 2.2.
Ci possono essere varie ragioni per scegliere una o l'altra versione,
ma la 2.4 è attualmente l'ultima e quella raccomandata. In ogni caso le
istruzioni qui presentate sono utilizzabili sia con la versione 2.4 che con
la 2.2. Apache httpd 2.2 è ufficialmente End of Life, e nessun nuovo
sviluppo o patch sarà effettuato.
</para>

<orderedlist>
<listitem>
<para>Scarica Apache HTTP Server da uno dei collegamenti menzionati
precedentemente ed estrailo:</para>

<informalexample>
<screen>
<![CDATA[
tar -xzf httpd-2.x.NN.tar.gz
]]>
</screen>
</informalexample>
</listitem>

<listitem>
<para>Allo stesso modo, scarica ed estrai il codice sorgente di PHP:</para>

<informalexample>
<screen>
<![CDATA[
tar -xzf php-NN.tar.gz
]]>
</screen>
</informalexample>
</listitem>

<listitem>
<para>
Compila ed installa Apache. Consulta la documentazione di Apache
per maggiori dettagli.
</para>

<informalexample>
<screen>
<![CDATA[
cd httpd-2_x_NN
./configure --enable-so
make
make install
]]>
</screen>
</informalexample>
</listitem>

<listitem>
<para>
Ora Apache2.x.NN è disponibile in /usr/local/apache2,
configurato con il supporto per il caricamento di moduli e
il MPM prefork standard. Per testare l'installazione usa la
normale procedura per eseguire il server Apache, es.:

<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl start
]]>
</screen>
</informalexample>

termina l'esecuzione del server per continuare con la
configurazione di PHP:

<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl stop
]]>
</screen>
</informalexample>
</para>
</listitem>

<listitem>

<para>
Ora, configura e compila PHP. In questa fase è possibile personalizzare
PHP con varie opzioni, come le estensioni da abilitare. Esegui
./configure --help per una lista completa delle possibili opzioni. Nell'esempio
seguente PHP sarà configurato per supportare Apache 2 e MySQL.
</para>

<para>
Se compili Apache dal codice sorgente, come descritto in precedenza, il percorso per
apxs sarà uguale a quello dell'esempio seguente, ma se Apache viene installato
in qualche altro modo, si dovrà eventualmente correggere il percorso di apxs.
Ricorda che alcune distribuzioni potrebbero rinominare apxs in apxs2
</para>
<informalexample>
<screen>
<![CDATA[
cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql
make
make install
]]>
</screen>
</informalexample>

<para>
Per riconfigurare le opzioni dopo l'installazione, è necessario
eseguire nuovamente i passaggi di configurazione, compilazione ed
installazione. Sarà poi necessario riavviare Apache per utilizzare il
nuovo modulo. Non è necessario compilare Apache nuovamente.
</para>

<para>
Nota che se non indicato diversamente, 'make install' installerà anche
PEAR, strumenti di PHP come phpize, PHP CLI ed altri.
</para>

</listitem>

<listitem>
<para>
Configura php.ini
</para>

<informalexample>
<screen>
<![CDATA[
cp php.ini-development /usr/local/lib/php.ini
]]>
</screen>
</informalexample>

<para>
È possibile editare il file .ini per impostare le opzioni di PHP.
Se si desidera spostare il file php.ini in un'altra poizione,
utilizzare l'opzione --with-config-file-path=/some/path al punto 5.
</para>

<para>
Nel caso venga utilizzato il file php.ini-production, si legga la lista
dei cambiamenti, perché modificano il comportamento di PHP.
</para>

</listitem>

<listitem>

<para>
Edita il file httpd.conf per caricare il modulo PHP. Il percorso nella
parte destra della dichiarazione di LoadModule deve puntare al percorso
del modulo di PHP. Il precedente comando make install potrebbe averlo già
aggiunto, ma si verifichi per sicurezza.
</para>

<informalexample>
<para>
Per PHP 8:
</para>
<programlisting role="apache-conf">
<![CDATA[
LoadModule php_module modules/libphp.so
]]>
</programlisting>
</informalexample>

<informalexample>
<para>
Per PHP 7:
</para>
<programlisting role="apache-conf">
<![CDATA[
LoadModule php7_module modules/libphp7.so
]]>
</programlisting>
</informalexample>

</listitem>

<listitem>

<para>
Configurare Apache per analizzare certe estensioni di file con PHP. Per
esempio, facciamo in modo che Apache analizzi i file .php con PHP.
Invece di utilizzare solamente la direttiva AddType, si vuole evitare
di caricare e creare file potenzialmente pericolosi come exploit.php.jpg
ed evitarne l'esecuzione con PHP. Usando il seguente esempio, è possibile
eseguire file con qualsiasi estensione con PHP semplicemente aggiungendola
alla direttiva. Di seguito verrà aggiunta l'estensione .php come esempio.
</para>


<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
]]>
</programlisting>
</informalexample>

<para>
Se si vuole far eseguire a PHP solamente i file con estensione .php,
.php2, .php3, .php4, .php5, .php6, e .phtml:
</para>

<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
]]>
</programlisting>
</informalexample>

<para>
Per permettere ai file .phps di essere gestiti dal filtro per sorgenti php,
ed utilizzare la colorazione della sintassi per il codice sorgente, utilizzare:
</para>

<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
]]>
</programlisting>
</informalexample>

<para>
mod_rewrite può essere utilizzato per permettere che ogni file .php
disponga della colorazione della sintassi per il codice sorgente,
evitando di rinominare o copiare il file in un file .phps:
</para>

<informalexample>
<programlisting role="apache-conf">
<![CDATA[
RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
]]>
</programlisting>
</informalexample>

<para>
Il filtro per sorgenti php non dovrebbe essere abilitato in sistemi in
produzione, per evitare di esporre informazioni confidenziali o
sensibili.
</para>

</listitem>

<listitem>
<para>
Utilizzare la normale procedura per avviare il server Apache, es. :
</para>

<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl start
]]>
</screen>
</informalexample>

<para>o</para>

<informalexample>
<screen>
<![CDATA[
service httpd restart
]]>
</screen>
</informalexample>

</listitem>
</orderedlist>

<para>
Seguendo i passi descritti si avrà un server web Apache con il supporto per
PHP come modulo <literal>SAPI</literal>. Ovviamente ci sono molte altre
opzioni configurabili per Apache e per PHP. Per altre informazioni digita
<command>./configure --help</command> nella cartella corrispondente.
</para>
<para>
Apache può essere compilato per utilizzare il multithread selezionando il
<filename>worker</filename> MPM, invece del <filename>prefork</filename>
MPM standard. Questo è possibile aggiungendo l'opzione al comando
./configure nel passo 3 come di seguito:
</para>
<informalexample>
<screen>
<![CDATA[
--with-mpm=worker
]]>
</screen>
</informalexample>
<para>
Questa modifica non dovrebbe essere fatta senza sapere le possibili
conseguenze e implicazioni. La documentazione di Apache riguardante
<link xlink:href="&url.apache2.mpm;">MPM-Modules</link> tratta
l'argomento in modo molto più dettagliato.
</para>
<note>
<para>
Le <link linkend="faq.installation.apache.multiviews">Apache MultiViews
FAQ</link> trattano l'utilizzo delle multiviews con PHP.
</para>
</note>
<note>
<para>
Il sistema deve supportare i threads per poter compilare una versione di
Apache multithread. Nel caso, PHP può essere compilato con Zend Thread
Safety (ZTS). Con questa configurazione, non tutte le estensioni sono
disponibili. Si raccomanda di compilare Apache usando l'MPM-Module
<filename>prefork</filename> come di default.
</para>
</note>
</sect1>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

0 comments on commit 31bc6c8

Please sign in to comment.