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:30] – [Configurazione differenziata per VirtualHost] niccolodoc:appunti:linux:sa:apache_php_optimization [2025/03/31 10:42] (current) – [Metodo chroot] niccolo
Line 178: Line 178:
 ==== 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 200:
 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 ====
 +
 +Con la direttiva PHP **open_basedir** si pone un limite a tutte le funzioni PHP che aprono file dal filesystem (ad esempio ''include'' o ''fopen()''). Il manuale PHP tuttavia avverte: //**Caution** open_basedir is just an extra safety net, that is in no way comprehensive, and can therefore not be relied upon when security is needed//.
 +
 +Ecco quindi come configurare l'istanza PHP-FPM di un VirtualHost nel file **/etc/php/7.4/fpm/pool.d/site.example.org.conf**:
 +
 +<file>
 +[site.example.org]
 +user = site-example-org
 +group = site-example-org
 +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>
 +
 +Come si vede è necessario avere l'accortezza di includere tutte le directory delle estensioni installate a livello di sistema. Nell'esempio sopra è compreso il pacchetto **phpMyAdmin**, le varie **librerie PHP** e **JavaScript**. Anche la directory **/tmp** potrebbe essere utilizzata per la creazione di file temporanei, ecc.
 +
 ===== Web Resources ===== ===== Web Resources =====
  
doc/appunti/linux/sa/apache_php_optimization.1743409835.txt.gz · Last modified: 2025/03/31 10:30 by niccolo