User Tools

Site Tools


doc:appunti:linux:sa:apache_php_optimization

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
doc:appunti:linux:sa:apache_php_optimization [2025/03/31 10:40] – [Metodo open_basedir] niccolodoc:appunti:linux:sa:apache_php_optimization [2026/10/26 14:56] (current) – [Configurazione differenziata per VirtualHost] niccolo
Line 39: Line 39:
 I pacchetti Debian 12 da installare sono: I pacchetti Debian 12 da installare sono:
  
-  * **libapache2-mod-fcgid** 
   * **php-fpm** che dipende dalla specifica versione **php8.2-fpm**   * **php-fpm** che dipende dalla specifica versione **php8.2-fpm**
  
-Il modulo **fcgid** dovrebbe essere attivato automaticamente durante l'installazione del pacchetto, verificare che esistano i link simbolici:+Il modulo **fcgid** fornito dal pacchetto non è strettamente necessario per l'esecuzione del codice PHP con FPM, quindi è possibile disabilitare il modulo **fcgid** o disinstallare del tutto il pacchetto **libapache2-mod-fcgid**. Tale modulo serve solo nel caso si voglia eseguire script **FastCGI** (scritti in C, Perl, Python, ecc.) direttamente da Apache, non passando per FPM. FPM sta per //FastCGI Process Manager//, in quanto il modulo si occupa della gestione del pool di processi PHP attivati, proprietari dei processi, ecc.
  
-  * **/etc/apache2/mods-enabled/fcgid.conf** +Il modulo **proxy_fcgi** va attivato manualmente:
-  * **/etc/apache2/mods-enabled/fcgid.load** +
- +
-Il modulo **proxy_fcgi** invece va attivato manualmente:+
  
 <code> <code>
Line 164: Line 160:
     </FilesMatch>     </FilesMatch>
   </IfModule>   </IfModule>
 +</file>
 +
 +In alternativa è possibile includere la configurazione FPM **/etc/apache2/conf-available/php7.0-fpm.conf** che ha alcune impostazioni predefinite per file .php, .phps, ecc. nonché alcune impostazoini per trasferire al PHP le informazioni sull'autenticazione base HTTP:
 +
 +<file>
 +<IfModule proxy_fcgi_module>
 +    # Enable http authorization headers
 +    <IfModule setenvif_module>
 +        SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
 +    </IfModule>
 +    <FilesMatch ".+\.ph(?:ar|p|tml)$">
 +        SetHandler "proxy:unix:/run/php/php8.4-fpm.sock|fcgi://localhost"
 +    </FilesMatch>
 +    <FilesMatch ".+\.phps$">
 +        # Deny access to raw php sources by default
 +        # To re-enable it's recommended to enable access to the files
 +        # only in specific virtual host or directory
 +        Require all denied
 +    </FilesMatch>
 +    # Deny access to files without filename (e.g. '.php')
 +    <FilesMatch "^\.ph(?:ar|p|ps|tml)$">
 +        Require all denied
 +    </FilesMatch>
 +</IfModule>
 </file> </file>
  
Line 178: Line 198:
 ==== Metodo chroot ==== ==== Metodo chroot ====
  
-Supponiamo che la DocumentRoot di un sito sia **/var/www/html/site.example.org/www/**, queste sono le direttive da aggiungere al file di configurazione **/root/pool.d.include/site.example.org.conf**:+Supponiamo che la DocumentRoot di un sito sia **/var/www/html/site.example.org/www/**, queste sono le direttive da aggiungere al file di configurazione **/etc/php/7.4/fpm/pool.d/pool.d.include/site.example.org.conf**:
  
 <file> <file>
Line 200: Line 220:
 Purtroppo questa soluzione impedisce il corretto funzionamento delle librerie PHP, ad esempio il pacchetto **php-mail** installa i propri file in **/usr/share/php/** ed è impossibile eseguire il comando ''require_once "Mail.php";''. Purtroppo questa soluzione impedisce il corretto funzionamento delle librerie PHP, ad esempio il pacchetto **php-mail** installa i propri file in **/usr/share/php/** ed è impossibile eseguire il comando ''require_once "Mail.php";''.
  
 +Vedere la discussione **[[https://serverfault.com/questions/733230/apache-file-not-found-after-setting-up-php-fpm-chroot|Apache: "File Not Found" after setting up php-fpm chroot]]**.
  
 ==== Metodo open_basedir ==== ==== Metodo open_basedir ====
Line 211: Line 232:
 user = site-example-org user = site-example-org
 group = site-example-org group = site-example-org
-php_admin_value[open_basedir] = /home/www/html/site.example.org:/usr/share/phpmyadmin/:/usr/share/doc/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/:/usr/share/javascript/:/tmp+php_admin_value[open_basedir] = /var/www/html/site.example.org:/usr/share/phpmyadmin:/usr/share/doc/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin:/usr/share/php:/usr/share/javascript:/tmp
 </file> </file>
  
doc/appunti/linux/sa/apache_php_optimization.1743410425.txt.gz · Last modified: by niccolo