3 581
contributi
m (compatibilità per Stretch) |
|||
(12 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili|Stretch}} | {{Versioni compatibili|ONLY|Stretch}} | ||
== Introduzione == | == Introduzione == | ||
'''LAMP''' è un acronimo che indica un ambiente server in cui siano installati '''L'''inux, '''A'''pache, '''M'''ySQL e '''P'''HP. In questa guida vedremo come installare un server Apache2 su Debian Lenny, come configurare il modulo SSL e come fornire supporto per il linguaggio di scripting PHP5 e i database basati su MySQL. | '''LAMP''' è un acronimo che indica un ambiente server in cui siano installati '''L'''inux, '''A'''pache, '''M'''ySQL e '''P'''HP. In questa guida vedremo come installare un server Apache2 su Debian Lenny, come configurare il modulo SSL e come fornire supporto per il linguaggio di scripting PHP5 e i database basati su MySQL. | ||
Riga 193: | Riga 193: | ||
Per avere il supporto a PHP7 è sufficiente installare il linguaggio di scripting e il relativo modulo di supporto ad Apache2: | Per avere il supporto a PHP7 è sufficiente installare il linguaggio di scripting e il relativo modulo di supporto ad Apache2: | ||
<pre> | <pre> | ||
# apt install php libapache2-mod-php php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap php7.0-cli php7.0-cgi php-pear php7.0-mcrypt imagemagick php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php-memcache php-imagick php-gettext php7.0-zip php7.0-mbstring php7.0-soap php7.0-fpm php7.0-opcache php-apcu | # apt install php libapache2-mod-php php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap php7.0-cli php7.0-cgi php-pear php7.0-mcrypt imagemagick php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php-memcache php-imagick php-gettext php7.0-zip php7.0-mbstring php7.0-soap php7.0-fpm php7.0-opcache php-apcu php-bcmath | ||
</pre> | </pre> | ||
PHP 7.0 è ormai fuori supporto, e il team di sviluppo consiglia di passare alla versione LTS 7.2 di PHP. I pacchetti per Debian Stretch di PHP 7.2 sono disponibili solo tramite un repository esterno. Per chi volesse installare PHP 7.2 su Debian Stretch consigliamo di seguire la guida apposita: [[Installare PHP 7.2 su Debian Stretch]] . | |||
A questo punto un riavvio di Apache è sufficiente: | A questo punto un riavvio di Apache è sufficiente: | ||
<pre> | <pre> | ||
Riga 281: | Riga 283: | ||
</html> | </html> | ||
</pre> | </pre> | ||
salviamo il file e richiamiamolo nel nostro browser: '''http://123.45.67.890/test.php'''. Se tutto è andato per il verso giusto vi troverete davanti a una schermata di riepilogo delle funzionalità abilitate di | salviamo il file e richiamiamolo nel nostro browser: '''http://123.45.67.890/test.php'''. Se tutto è andato per il verso giusto vi troverete davanti a una schermata di riepilogo delle funzionalità abilitate di PHP7. | ||
==Installazione di PHP 5.6== | ==Installazione di PHP 5.6== | ||
Riga 290: | Riga 292: | ||
Aggiungiamo il suo repository al nostro sources.list: | Aggiungiamo il suo repository al nostro sources.list: | ||
<pre> | <pre> | ||
# apt-get install apt-transport-https | # apt-get install apt-transport-https curl | ||
#curl https://packages.sury.org/php/apt.gpg | apt-key add - | # curl https://packages.sury.org/php/apt.gpg | apt-key add - | ||
#echo 'deb https://packages.sury.org/php/ stretch main' > /etc/apt/sources.list.d/deb.sury.org.list | # echo 'deb https://packages.sury.org/php/ stretch main' > /etc/apt/sources.list.d/deb.sury.org.list | ||
#apt-get update | # apt-get update | ||
</pre> | </pre> | ||
E installiamo PHP 5.6: | E installiamo PHP 5.6: | ||
<pre> | <pre> | ||
# apt-get install php5.6-cli php5.6-fpm | # apt-get install php5.6-cli php5.6-fpm libapache2-mod-php5.6 | ||
</pre> | |||
<pre> | |||
# apt install dh-php5.6 libapache2-mod-php5.6filter libexpect-php5.6 libgv-php5.6 libow-php5.6 libphp5.6-embed php5.6-adodb php5.6-apcu php5.6-cgi php5.6-curl php5.6-dbg php5.6-enchant php5.6-exactimage php5.6-ffmpeg php5.6-fpm php5.6-gd php5.6-gdcm php5.6-geoip php5.6-gmp php5.6-imagick php5.6-idn php5.6-imap php5.6-interbase php5.6-intl php5.6-json php5.6-ldap php5.6-librdf php5.6-mapscript php5.6-mcrypt php5.6-memcache php5.6-memcached php5.6-mhash php5.6-ming php5.6-mongo php5.6-mssql php5.6-mysql php5.6-odbc php5.6-pgsql php5.6-ps php5.6-pspell php5.6-radius php5.6-recode php5.6-remctl php5.6-rrd php5.6-sasl php5.6-snmp php5.6-sqlite php5.6-svn php5.6-sybase php5.6-tidy php5.6-xcache php5.6-xmlrpc php5.6-xsl | |||
</pre> | </pre> | ||
Verifichiamo che tutto sia a posto: | Verifichiamo che tutto sia a posto: | ||
Riga 403: | Riga 408: | ||
* Individuare gli script PHP che inviano SPAM: [[http://guide.debianizzati.org/index.php/Individuare_gli_script_PHP_che_inviano_SPAM Script PHP che inviano SPAM]] | * Individuare gli script PHP che inviano SPAM: [[http://guide.debianizzati.org/index.php/Individuare_gli_script_PHP_che_inviano_SPAM Script PHP che inviano SPAM]] | ||
Non sono impostazioni necessarie per il corretto funzionamento di Apache, ma sono '''fortemente consigliate'''. | Non sono impostazioni necessarie per il corretto funzionamento di Apache, ma sono '''fortemente consigliate'''. | ||
==Note e changelog== | |||
Da Debian Jessie è stato introdotto Apache 2.4 al posto del 2.2, e anche il sistema di configurazione è cambiato leggermente. | |||
<br/> | |||
Invece della directory <code>/etc/apache2/conf.d/</code> abbiamo <code>/etc/apache2/conf-enabled/</code> che contiene dei link a <code>/etc/apache2/conf-available/</code>. | |||
<br/> | |||
I file di configurazione in <code>/etc/apache2/sites-enabled</code>/ devono terminare con l'estensione <code>.conf</code>. | |||
<br/> | |||
La direttiva <code>NameVirtualHost *:80</code> e analoga per la porta 443 non serve più. | |||
<br/> | |||
Una directory pubblicata tramite Alias deve avere l'opzione <code>Require all granted</code> altrimenti ogni tentativo di accedere al suo contenuto risulta in un errore <code>AH01630: client denied by server configuration</code>. | |||
<br/><br/> | |||
Una delle modifiche classiche da fare è la seguente: | |||
<pre> | |||
# Configuration for Apache 2.2 | |||
Order allow,deny | |||
Allow from all | |||
# Configuration for Apache 2.4 with mod_authz_host. | |||
Require all granted | |||
</pre> | |||
In maniera analoga per negare ogni richiesta: | |||
<pre> | |||
# Configuration for Apache 2.2 | |||
Order deny,allow | |||
Deny from all | |||
# Configuration for Apache 2.4 with mod_authz_host. | |||
Require all denied | |||
</pre> | |||
Un controllo di accesso basato sull'indirizzo IP è fatto in questo modo: | |||
<pre> | |||
Require local | |||
Require ip 127.0.0.0/8 ::1 185.21.73.97 10.0.1.0/24 | |||
</pre> | |||
Un'altro cambiamento non da poco è la direttiva <code>AllowOverride</code>, che adesso ha valore predefinito <code>None</code>. Questo significa ad esempio che tutti i file .htaccess smettono di funzionare! | |||
== Apache2: layout di configurazione == | == Apache2: layout di configurazione == | ||
Riga 512: | Riga 550: | ||
</pre> | </pre> | ||
Descrive il tempo in secondi in cui ogni connessione persistente attiva aspetta per la prossima richiesta, prima di chiudersi definitivamente. | Descrive il tempo in secondi in cui ogni connessione persistente attiva aspetta per la prossima richiesta, prima di chiudersi definitivamente. | ||
==== ServerName ==== | ==== ServerName ==== | ||
Default: Non impostato | Default: Non impostato |
contributi