User Tools

Site Tools


doc:appunti:prog:note_di_programmazione_in_php

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:prog:note_di_programmazione_in_php [2012/05/21 22:27] – [Moduli PEAR non pacchettizzati] niccolodoc:appunti:prog:note_di_programmazione_in_php [2013/04/16 11:33] (current) – [Personalizzare php.ini in esecuzione CGI o FastCGI] niccolo
Line 39: Line 39:
 L'opzione **-f** forza l'installazione anche in caso di versioni beta, ecc. I pacchetti Pear vengono salvati in ''**/usr/share/php/**''. L'opzione **-f** forza l'installazione anche in caso di versioni beta, ecc. I pacchetti Pear vengono salvati in ''**/usr/share/php/**''.
  
-===== Personalizzare php.ini in esecuzione cgi-bin =====+===== Personalizzare php.ini in esecuzione CGI o FastCGI =====
  
 Se il PHP viene eseguito come [[wp>Common_Gateway_Interface|CGI]] oppure come [[wp>FastCGI]] le impostazioni tradizionali di php.ini oppure del VirtualHost di Apache non sono prese in considerazione. Se il PHP viene eseguito come [[wp>Common_Gateway_Interface|CGI]] oppure come [[wp>FastCGI]] le impostazioni tradizionali di php.ini oppure del VirtualHost di Apache non sono prese in considerazione.
Line 45: Line 45:
 Una soluzione è quella di creare un wrapper che faccia puntare ad una directory con il **''php.ini''** personalizzato ed eventualmente settare le necessarie variabili di ambiente. Una soluzione è quella di creare un wrapper che faccia puntare ad una directory con il **''php.ini''** personalizzato ed eventualmente settare le necessarie variabili di ambiente.
  
-Ecco un esempio per impostare la **Default timezone** e la **date.timezone**, si crea un file **''php-fcgi-wrapper''**:+Ecco un esempio per impostare la **Default timezone** e la **date.timezone**. Si crea un file **''php-fcgi-wrapper''**:
  
 <code bash> <code bash>
Line 70: Line 70:
     </Directory>     </Directory>
 </file> </file>
 +
 +Nel php.ini personalizzato si può mettere ovviamente:
 +
 +<file>
 +[Date]
 +date.timezone = Europe/Rome
 +</file>
 +
 +Dopo aver modificato il wrapper - se si usa FastCGI - bisogna riavviare Apache in modo da ricaricarlo in memoria.
 +
 +===== Gestione degli errori =====
 +
 +Con alcuni software (CMS tipo Joomla, ecc.) è facile incappare in errori del tipo:
 +
 +<code>
 +Strict Standards: Non-static method xxx should not be called statically in xxx/joomla/import.php on line 29
 +</code>
 +
 +questo specialmente dopo l'aggiornamento a versioni superiori del PHP, che sono più rigide sulla sintassi del linguaggio.
 +
 +Intanto può essere utile avere un pezzo di codice che genera un errore **''E_STRICT''**, in quanto tale errore non può essere generato dalla funzione **''trigger_error()''**, ecco un esempio:
 +
 +<code php>
 +class A           { function toto(  ) {} }
 +class B extends A { function toto($a) {} }
 +</code>
 +
 +Quindi in php.ini si verifica che gli errori E_STRICT siano disabilitati:
 +
 +<file>
 +error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
 +</file>
 +
 +Attenzione che Joomla tiene in cache le pagine generate, dopo aver modificato la configurazione del PHP è necessario svuotare la cache per vedere il risultato.
doc/appunti/prog/note_di_programmazione_in_php.1337632035.txt.gz · Last modified: 2012/05/21 22:27 by niccolo