• Super User

    Run PHP as CGI

    ciao

    sul mio server ho l'opzione Run PHP as CGI abilitata, cosa accade se la deseleziono?
    quali sono le differenze tra le 2 modalità?

    l'unica cosa che ho notato per ora è che **$_SERVER["SCRIPT_NAME"] **restiuisce **/cgi-system/php.cgi ** al posto di pagina.php

    🙂


  • Super User

    mi sono quasi risposto da solo

    [url=http://www.latoserver.it/php/install/tipi-di-installazione.php3]tratto da latoserver.it

    PHP come applicazione CGI
    Nell'installazione di tipo CGI, l'interprete PHP verrà invocato dal server web come qualsiasi altra applicazione in grado di comunicare con esso attraverso la Common Gateway Interface. L'interprete PHP, dunque, sarà un programma esterno al server web.

    In questa situazione, l'esecuzione di uno script PHP consiste in una invocazione dell'interprete, al quale viene passato il percorso del file da eseguire tramite la variabile d'ambiente PATH_INFO.

    Questo tipo di installazione è il più semplice ma comporta alcuni svantaggi, sia in termini di prestazioni che in termini di funzionalità. Le prestazioni vengono influenzate negativamente dalla necessità di creare un nuovo processo ogni volta che viene invocato uno script PHP, con un considerevole aggravio del carico di lavoro della macchina server. Inoltre, alcune funzionalità del linguaggio, in particolare quelle che richiedono una interazione più profonda con il server web, sono disponibili solo quando PHP viene utilizzato come modulo.

    PHP come modulo del server web
    L'interprete PHP può essere integrato nel server web sotto forma di modulo statico o dinamico. Nel primo caso (modulo statico) sarà necessario effettuare la ricompilazione del server web ed il risultato ottenuto sarà un nuovo eseguibile, completo di supporto PHP. Nel secondo caso (modulo dinamico) l'interprete PHP verrà compilato come libreria a caricamento dinamico: DSO (Dynamic Shared Object) su piattaforme Unix e DLL (Dynamic Link Library) su piattaforme Windows.

    Non è il caso di spaventarsi se non si è capito di cosa stiamo parlando. L'importante è comprendere la più diretta conseguenza dell'integrazione di PHP all'interno del server web, e cioè che l'esecuzione di uno script PHP **non richiede l'invocazione di un programma esterno **(e quindi la creazione di un nuovo processo, come avveniva nell'ipotesi di installazione CGI) in quanto viene effettuata all'interno del server web.

    L'installazione di PHP sotto forma di modulo del server web è quella che fornisce le prestazioni più elevate, peraltro senza rinunce in termini di funzionalità disponibili; tale approccio sarà quindi da preferire in contesti applicativi reali.

    a questo punto non capisco perchè di default l'integrazione con CGI è selezionata visto che è meno performante...

    che ne dite?

    p.s.: per ora l'ho disabilitata 😉


  • Super User

    :mmm: :mmm:
    stai parlando di linux o windows?
    se windows di IIS o apache?

    i server dove ho installato php l'ho sempre fatto come cgi ma si tratta di intranet e quindi... un potenziale di 10-100 utenti (i dipendenti di un'azienda) e non mi sono mai posto il problema di studiare altre strade (pigrizia :D).
    però mi interesserebbe scoprire qualcosa di più aggratis 😛 visto che c'è qualcuno che ha già studiato ed è così gentile da elargire info :D:D:D