User Tools

Site Tools


doc:appunti:linux:sa:apache

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:linux:sa:apache [2017/09/28 11:28] – [PHP_AUTH_USER e PHP_AUTH_PW] niccolodoc:appunti:linux:sa:apache [2021/07/07 11:57] – [Autenticazione Base] niccolo
Line 134: Line 134:
 AuthType Basic AuthType Basic
 AuthName "Area protetta" AuthName "Area protetta"
 +AuthBasicProvider file
 AuthUserFile /etc/apache2/htpasswd AuthUserFile /etc/apache2/htpasswd
 +#Require user username1 username2
 Require valid-user Require valid-user
 </file> </file>
Line 167: Line 169:
 </FilesMatch> </FilesMatch>
 </file> </file>
 +
 +È possibile creare una **eccezione all'autenticazione** in una sottodirectory, creando un file **.htaccess** del tipo:
 +
 +<file>
 +# Allows any user to see this directory without authentication.
 +Require all granted
 +
 +# For Apache < 2.4
 +#Satisfy any
 +</file>
 +
 ===== Autenticazione Digest ===== ===== Autenticazione Digest =====
  
Line 277: Line 290:
      AuthBasicAuthoritative Off      AuthBasicAuthoritative Off
      AuthUserFile /dev/null      AuthUserFile /dev/null
-     Require user niccolo angela+     Require user niccolo mario
 </Directory> </Directory>
 </file> </file>
Line 289: Line 302:
 ===== Controllo di accesso su indirizzo IP ===== ===== Controllo di accesso su indirizzo IP =====
  
-FIXME La sintassi per Apache 2.4 con il modulo **mod_authz_core** è cambiata! Vedere **[[http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html|Apache Module mod_authz_core]]**+==== Apache 2.4 ==== 
 + 
 +La sintassi per Apache 2.4 con il modulo **mod_authz_core** è cambiata! Vedere **[[http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html|Apache Module mod_authz_core]]**. Un esempio base: 
 + 
 +<file> 
 +<Directory /var/www/private_dir> 
 +Require ip 185.32.54.97 185.12.76.143 
 +</Directory> 
 +</file> 
 + 
 +==== Apache 2.2 ====
  
 Per consentire l'accesso ad una directory solo a determinati indirizzi IP: Per consentire l'accesso ad una directory solo a determinati indirizzi IP:
Line 308: Line 331:
 ^ Allow from 10.1.0.0/255.255.0.0         | Network/netmask pair  | ^ Allow from 10.1.0.0/255.255.0.0         | Network/netmask pair  |
 ^ Allow from 10.1.0.0/16                  | Network/nnn CIDR specification  | ^ Allow from 10.1.0.0/16                  | Network/nnn CIDR specification  |
 +
 +===== Verifica combinata username o indirizzo IP =====
 +
 +Con questa configurazione di **Apache 2.4** si consente l'accesso a determinati **indirizzi IP** oppure con **autenticazione** su htpasswd. Le clausole **Require** possono essere combinate anche in altro modo, ad esempio **%%<RequireAll>%%** se si desidera che siano vere entrambe. Il **SSLRequireSSL** evita che la pagina sia richiesta via HTTP con possibilità di sniffing della password:
 +
 +<file>
 +<Directory "/privatedir">
 +    SSLRequireSSL
 +    # Athenticate on htpasswd file.
 +    AuthType Basic
 +    AuthName "Area privata"
 +    AuthBasicProvider file
 +    AuthUserFile /etc/apache2/htpasswd
 +    <RequireAny>
 +        Require user niccolo
 +        Require ip 127.0.0.0/8 ::1 192.168.3.2
 +    </RequireAny>
 +</Directory>
 +</file>
 +
 +Se si opta per la configurazione tramite file **.htaccess**, la sintassi da utilizzare è la stessa, ma si deve dare l'opportuno **AllowOverride**:
 +
 +<file>
 +<Directory "/var/www/html/privatedi">
 +    AllowOverride AuthConfig Limit
 +</Directory>
 +</file>
  
 ===== Logging degli errori PHP ===== ===== Logging degli errori PHP =====
Line 370: Line 420:
 Il flag **''[NC]''** significa //no case sensitive//, il flag **''[L]''** significa //last rule// (non se ne applicano altre), il flag **''[R]''** indica di effettuare un redirect con status code **301 Moved Permanently**. Il flag **''[NC]''** significa //no case sensitive//, il flag **''[L]''** significa //last rule// (non se ne applicano altre), il flag **''[R]''** indica di effettuare un redirect con status code **301 Moved Permanently**.
  
-Per vedere quali regole di rewrite vengono appicalte si abilita temporaneamente nella sezione VirtualHost:+Per vedere quali regole di rewrite vengono applicate si deve abilitare **nella sezione VirtualHost** (per Apache **2.2**):
  
 <file> <file>
Line 377: Line 427:
 </file> </file>
  
 +con Apache **2.4** la sintassi è diversa:
 +
 +<file>
 +LogLevel info rewrite:trace2
 +</file>
 =====  Certificato SSL ===== =====  Certificato SSL =====
  
Line 455: Line 510:
  
 Non sono necessari (vanno rimossi) tutti i pacchetti utilizzati per soluzioni analoghe nelle vecchie distribuzioni: **libapache2-mod-fastcgi**, **libapache2-mod-fcgid**, **libapache2-mod-php**, **libapache2-mod-php7.0**, **apache2-suexec-custom**. Non sono necessari (vanno rimossi) tutti i pacchetti utilizzati per soluzioni analoghe nelle vecchie distribuzioni: **libapache2-mod-fastcgi**, **libapache2-mod-fcgid**, **libapache2-mod-php**, **libapache2-mod-php7.0**, **apache2-suexec-custom**.
 +
 +Assicurarsi di aver abilitato il modulo **proxy_fcgi** e aver attivato la configurazione di **php7.0-fpm**:
 +
 +<code>
 +a2enmod proxy_fcgi
 +a2enconf php7.0-fpm
 +</code>
  
 Il funzionamento è il seguente: Il funzionamento è il seguente:
Line 481: Line 543:
 pm.min_spare_servers = 1 pm.min_spare_servers = 1
 pm.max_spare_servers = 3 pm.max_spare_servers = 3
 +
 +;php_admin_flag[display_errors] = off
 +;php_admin_flag[log_errors] = on
 +;php_admin_value[error_log] = /var/log/php/www.virtualhost.it/php_error.log
 </file> </file>
 +
 +Nell'esempio sopra ci sono tre righe (commentate) con **impostazioni PHP** specifiche **solo per questo VirtualHost**. Attenzione che la directory dove creare il file di log deve essere scrivibile dall'utente e/o dal gruppo con cui viene eseguito il pool (nell'esempio sopra sono **vh-user** e **vh-group** rispettivamente).
  
 Nella configurazione del VirtualHost si dichiara quale pool sarà usato: Nella configurazione del VirtualHost si dichiara quale pool sarà usato:
Line 500: Line 568:
 ===== Apache 2.2 VirtualHost con PHP5 FastCGI e suEXEC ===== ===== Apache 2.2 VirtualHost con PHP5 FastCGI e suEXEC =====
  
-FIXME Questa configurazione è obsoleta per **Debian 9 Stretch**, dove conviene usare il pacchetto **php-fpm**.+FIXME Questa configurazione è obsoleta per **Debian 9 Stretch**, dove conviene usare il pacchetto **php-fpm** (vedi sopra).
  
 Caratteristiche richieste: Caratteristiche richieste:
doc/appunti/linux/sa/apache.txt · Last modified: 2021/12/03 10:08 by niccolo