Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1

    [Pillola] installazione di php5 e convivenza con php 4 [moduli di apache su windows]

    Per quanto i passi per l'installazione di php5 siamo molto simili a quelli del php4, immagino che molti di voi gradiranno un paio di linee guida sintetiche e già testate.

    In più potreste voler fare convivere il vostro caro e sicuro php4, con il nuovo e potenzialmente instabile e buggato php5 in modo da poter fare esperimenti con quest'ultimo ma poter ritornare tra le forti e sicure braccia di php4 in caso di problemi di qualsiasi natura.

    Questo propone la pillolina:
    1) Dei passi preliminari da compiere se volete far convivere php4 con php5.
    2) Installazione di php5 come modulo di Apache in pochi semplici passi.
    3) Aggiunta del supporto a mysql [che non è built-in come nella versione 4]

    La guida si riferisce alla RC2 di PHP5 per windows [testato su win xp con apache 1.3.29], rilasciata qualche giorno fa. Se saranno necessari aggiornamenti con le prossime relase provvederò

    Prerequisiti
    Ovviamente do per scontato che abbiate installato già un webserver apache della serie 1.3.x.
    Se non avete già installato Apache procuratevi l'ultima versione della serie 1.3.x ed installatela seguendo ad esempio la guida di freephp.it.
    La versione 2 di Apache risulta ancora troppo instabile nel supporto di PHP quindi ve la sconsiglio a meno che non abbiate voglia/bisogno di testarla


    Convivenza di php4 e php5
    Questa sezione si rivolge a chi, avendo già installato una versione di php4, volesse provare la 5 senza eliminare la versione 4, e avendo la possibilità di alternare facilmente le due versioni.
    Chi non avesse questa necessità può saltare questa parte e passare all'installazione di PHP5.

    I passi da compiere sono davvero pochi:
    1) Rinominare il proprio "httpd.conf" [il file di configurazione di apache che si trova appunto nella directory "conf" all'interno della directory di apache] come "httpd.conf.4"... in questo modo avremo una sorta di backup del file di configurazione di apache già configurato per php4.

    2) Nell'installare php4 avrete messo nella vostra directory "windows" o "winNT" un file "php.ini".. fate un backup anche di questo rinominandolo in "php.ini.4"

    3) Seguire le istruzioni per l'intallazione di php5, avendo però cura di installarlo in una directory diversa da quella di php4 [ad esempio se php4 si trovava in "C:/php", php5 potreste installarlo in "C:/php5" come ho fatto io]

    Una volta installato php5 avremo un "php.ini" e un "httpd.conf" configurati per PHP5, per passare al PHP4 basterà semplicemente:
    1) rinominare questi file in "php.ini.5" e "httpd.conf.5" per backupparli
    2) ripristinare le versioni per php 4 che avevamo precedentemente backuppato [quindi rinominare "httpd.conf.4" in "httpd.conf" e "php.ini.4" in "php.ini"]
    3) riavviare apache.

    Con questo gioco di semplice rinomina dei due file possiamo dunque passare da php4 a 5 e viceversa ogni volta che vogliamo con molta semplicità

    Dopo aver quindi backuppato i files passiamo ad installare php5 in un directory diversa da php4.

    Installazione di PHP5 come modulo di apache 1.3.x su windows
    Scaricate php5 da www.php.net [da qui scaricate la RC2 , ultima versione disponibile al momento], e scompattatela in una directory a scelta, ad esmepio in "C:/php5".

    Entrate nella directory di PHP5 appena creata, copiate il file "php.ini-recommended" nella directory di windows [generalmente "C:\windows" o "C:\winnt"] e rinominatelo in "php.ini".
    Editiamo il file con wordpad o qualsiasi altro editor per cambiare due impostazioni:

    1) Cercate con l'apposita funzione del vostro editor la direttiva "display_errors", ed impostatela su "On". Questo farà sì che gli errori vengano visualizzati in output sulla vostra pagina, esattamente come eravate abituati con php4.

    2) Adesso cercate, qualche riga sotto, la direttiva "log_errors", ed impostatela su "Off" a meno che non vogliate avere un log degli errori che però nella maggior parte dei casi sarà inutile.

    Altre direttive potete cambiarle in un secondo momento a seconda delle esigenze, a tale scopo consiglio una sempre utile lettura dei commenti inseriti all'interno del file php.ini e che ne spiegano appunto le direttive.

    Adesso andiamo nella directory "conf" contenuta all'interno della directory di apache, individuiamo il file httpd.conf ed editiamolo sempre con il ostro editor preferito [wordpad va benissimo ].

    A questo punto ci sono due possibilità:
    Se l'httpd.conf risale ad una precedente installazione di apache con PHP4 bisogna fare due mofdifiche solamente:

    1) individuate la riga "#LoadModule unique_id_module modules/mod_unique_id.so" sotto la quale avrete probabilmente una cosa tipo "LoadModule php4_module C:/PHP/sapi/php4apache.dll" che si riferisce alla vecchia installazione di php4... cancellate questa riga e sostituitela con la seguente:

    LoadModule php5_module C:/PHP5/php5apache.dll

    dove a "C:/PHP5" sostituirete eventualmente il percorso della directory in cui avete scompattato i files di php5.

    2) Individuate la riga "AddModule mod_setenvif.c", subito sotto dovreste avere qualcosa come "AddModule mod_php4.c" che si riferisce anche in questo caso alla precedente installazione di php4.. quindi sostituitela con "AddModule mod_php4.c"
    Salvate e chiudete il file.

    Se invece avete appena installato apache e il vostro httpd.conf è "vergine" dovrete fare le seguenti modifiche:
    1) individuate la riga "#LoadModule unique_id_module modules/mod_unique_id.so" sotto la quale aggiungerete la seguente:

    LoadModule php5_module C:/PHP5/php5apache.dll

    dove a "C:/PHP5" sostituirete eventualmente il percorso della directory in cui avete scompattato i files di php5.

    2) Individuate la riga "AddModule mod_setenvif.c", subito sotto aggiungete
    "AddModule mod_php4.c"

    3) Individuate la riga "AddType application/x-tar .tgz" e subito sotto aggiungete:

    AddType application/x-httpd-php .php

    4) Individuate la riga "<IfModule mod_dir.c>", nella riga successiva troverete qualcosa come "DirectoryIndex index.html index.htm". Questa istruzione indica ad apache quali files cercare quando l'utente non esplicita il file richiesto, ma solo un path, e l'ordine in cui questi files vanno cercati. Sarebbe quindi buona norma avere la seguente riga:

    DirectoryIndex index.php index.html index.htm

    Salvate e chiudete il file.



    A questo punto avviando apache dovrebbe comparire qualcosa come "PHP/5.0.0RC2 running", e potrete sorridere perchè significherà che è andato tutto bene.
    Se invece vi viene riportato qualche errore rileggete un po'.. e se qualcosa non è chiaro chiedete.


    Aggiungere il suppporto a MySql
    PHP5 a questo punto funziona, ma non riuscirete ad usare MYSQl in quanto il supporto non è built-in come per PHP4.

    Se avete quindi necessità di usare MYSQL, sono necessari tre ulteriori passi:

    1) tornate nuovamente al file php.ini che avevamo lasciato nella directory di windows, editatelo, ed individuate la seguente riga che si riferisce all'estensione di mysql:

    ;extension=php_mysql.dll

    per attivare l'estensione dovremo decommentare la riga, ovvero eliminare il punto e virgola iniziale.

    2) Questo non basta: dobbiamo anche impostare il percorso della directory delle estensioni, quindi cerchiamo la riga:

    extension_dir = "./"

    e modifichiamola in:

    extension_dir = "C:\php5\ext"

    dove a "C:\PHP5" sostituirete eventualmente il percorso della directory in cui avete scompattato i files di php5.

    3) Chiudiamo il php.ini, andiamo nella directory del PHP5, copiamo il file "libmysql.dll" nella directory di sistema ["system32" se l'avete, altrimenti "system"] sovrascrivendo il vecchio file con lo stesso nome che dovrebbe essere presente [penso sia installato dall'installazione di mysql.. quindi se non avete ancora installato mysql, fatelo, e successivamente ricordatevi di aggiornare la dll].



    A questo punto avviate apache... e buon PHP5

    Vi prego di segnalare qualsiasi migloria o precuisazione riguardo la pillolina, tnx.


  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Ottimo guido.. questa pillola cade proprio, come si sul dire "a fagiuolo". Proprio ieri sera ho installato php5 (con l'ultima versione di apache e l'ultima di mysql) su Windows Xp.
    Se permetti aggiungerei una cosa perchè ieri sera m'è capitato che, tentando di connettermi a mysql mi diceva "Errore non trovata libreria php_mysql.dll", nonostante avessi messo libmysql.dll nella cartella C:\windows\system32...
    Ebbene non so se è una procedura canonica e/o richiesta, ma ho dovuto copiare la php_mysql.dll nella cartella C:\windows e dopo è andato tutto liscio come l'olio.

    Cmq ottimo

  3. #3
    molto scomoda come situazione di produzione, ma e' gia' qualcosa per chi volesse installare php5 come modulo

    [ qualcuno puo' fare un caffe' al Caccavella ??? ]
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Originariamente inviato da VaLvOnAuTa
    Ebbene non so se è una procedura canonica e/o richiesta, ma ho dovuto copiare la php_mysql.dll nella cartella C:\windows e dopo è andato tutto liscio come l'olio.
    è strano.. avendo impostato l'extension dir doveva andare... boh.. cmq fai bene a segnalarlo


  5. #5
    Utente bannato
    Registrato dal
    Aug 2001
    Messaggi
    696
    fatto :metallica

  6. #6
    Originariamente inviato da bubu sette sette
    fatto :metallica
    tu sì che sei un moderatopre serio

  7. #7
    Originariamente inviato da andr3a
    molto scomoda come situazione di produzione, ma e' gia' qualcosa per chi volesse installare php5 come modulo

    [ qualcuno puo' fare un caffe' al Caccavella ??? ]
    ho installato php 5 e php 4 nel modo di guidoz , e proprio per evitare il problema che descrivi tu ho provato a fare uno script, un po idiota ma puo servire (almeno credo :stordita)

    Codice PHP:
    <?PHP

    /*******************************
    +-------------------------------
    | script by frontmedia.it
    +-------------------------------
    ********************************/

    /* INFO UTILI */
    /****************************************************************************************************************** 
    *  Per utilizzare questo script il safe_mode deve essere disabilitato.
    *  Per disattivare il safe mode:
    *   - aprire il file php.ini e cercare la riga: ; Safe Mode due righe piu sotto dovrebbe esserci: safe_mode = Off
    *   - Modificare safe_mode = Off in safe_mode = On
    *   - Eseguire la stessa operazione con i php.ini sia di PHP4 che PHP5
    ******************************************************************************************************************/

    #[CONFIG]

    // Root Apache Dir
    $CONFIG['apache_conf_path'] = "C:/Programmi/Apache Group/Apache/";

    // Config Apache Dir
    $CONFIG['apache_conf_path'] = "C:/Programmi/Apache Group/Apache/conf/";

    // Directory della cartella Windows (per il php.ini)
    $CONFIG['phpini_conf_path'] = "C:/Windows/";

    // > Nome per rinominare il config di php 4 (cartella di apache)
    $CONFIG['apache_php4']      = "httpd4.conf";

    // > Nome per rinominare il config di php 5 (cartella di apache)
    $CONFIG['apache_php5']      = "httpd5.conf";

    // > Nome per rinominare il php.ini per php 4 (cartella di windows)
    $CONFIG['phpini_php4']      = "php4.ini";

    // > Nome per rinominare il php.ini per php 5 (cartella di windows)
    $CONFIG['phpini_php5']      = "php5.ini";

    // > Nome originale del file di configurazione di apache
    $CONFIG['apahce_conf']     = "httpd.conf";

    // > Nome originale del php.ini
    $CONFIG['phpini_conf']         = "php.ini";

    #[FUNCTION]

    // > Rename File

    function php_swith ( ) 
    {
        global 
    $CONFIG ;
        
        
    $return = array ( ) ;

        if ( 
    file_exists $CONFIG['apache_conf_path'] . $CONFIG['apache_php4'] ) ) 
        {
        
            
    $return['convert_a']    = rename $CONFIG['apache_conf_path'] . $CONFIG['apahce_conf'] , $CONFIG['apache_conf_path'] . $CONFIG['apache_php5'] ) ;
            
    $return['convert_b']    = rename $CONFIG['apache_conf_path'] . $CONFIG['apache_php4'] , $CONFIG['apache_conf_path'] . $CONFIG['apahce_conf'] ) ;
            
    $return['phpconvert_a'] = rename $CONFIG['phpini_conf_path'] . $CONFIG['phpini_conf'] , $CONFIG['phpini_conf_path'] . $CONFIG['phpini_php5'] ) ;
            
    $return['phpconvert_b'] = rename $CONFIG['phpini_conf_path'] . $CONFIG['phpini_php4'] , $CONFIG['phpini_conf_path'] . $CONFIG['phpini_conf'] ) ;
            
    $return['new_php']   = 'php4';
        
        } else if ( 
    file_exists $CONFIG['apache_conf_path'] . $CONFIG['apache_php5'] ) ) 
        {
            
            
    $return['convert_a']    = rename $CONFIG['apache_conf_path'] . $CONFIG['apahce_conf'] , $CONFIG['apache_conf_path'] . $CONFIG['apache_php4'] ) ;
            
    $return['convert_b']    = rename $CONFIG['apache_conf_path'] . $CONFIG['apache_php5'] , $CONFIG['apache_conf_path'] . $CONFIG['apahce_conf'] ) ;
            
    $return['phpconvert_a'] = rename $CONFIG['phpini_conf_path'] . $CONFIG['phpini_conf'] , $CONFIG['phpini_conf_path'] . $CONFIG['phpini_php4'] ) ;
            
    $return['phpconvert_b'] = rename $CONFIG['phpini_conf_path'] . $CONFIG['phpini_php5'] , $CONFIG['phpini_conf_path'] . $CONFIG['phpini_conf'] ) ;
            
    $return['new_php']   = 'php5';
            
        }else{
            
            
    $return['error'] = "ERROR_404" ;
            
        }

        return 
    $return;
        
    }

    // > Apache Restart

    function apache_restart $apache_dir 
    {

        return 
    exec("C:/Programmi/Apache Group/Apache/Apache.exe -k restart");

    }

    # [CONTROLLO]

    $swt php_swith ( ) ;

    if ( 
    $swt['error'] == "ERROR_404" )
    {

        die ( 
    "I FILE SELEZIONATI NON ESISTONO ! " ) ;

    }else 
    {

        
    $return "<span class='title'>Attivazione di ".$swt['new_php']."</span>

    \n" 
    ;

        if ( 
    $swt['convert_a'] == TRUE AND $swt['convert_b'] == TRUE )
        {

            
    $return .= "<span class='file_ok'>Rinominazione dei file di configurazione di Apache ... OK</span>
    \n"
    ;
        
        }else{
        
            
    $return .= "<span class='failed'>Rinominazione dei file php.ini ... Fallita</span>
    \n"
    ;
            
    $error TRUE;
        
        }
        
        if ( 
    $swt['phpconvert_a'] == TRUE AND $swt['phpconvert_b'] == TRUE )
        {

            
    $return .= "<span class='file_ok'>Rinominazione dei file php.ini ... OK</span>
    \n"
    ;
        
        }else{
        
            
    $return .= "<span class='failed'>Rinominazione dei file php.ini ... Fallita</span>
    \n"
    ;
            
    $error TRUE;
        
        }
        
        if ( ! 
    $error 
        {
            
    $return .= "<span class='apache_restart'>Restart di Apache ...</span>
    \n" 
    ;
            echo 
    apache_restart $CONFIG['apache_conf_path'] ) ;
        }

    }

    $css  "<style type='text/css'>\n";
    $css .= "body\n{\n";
    $css .= "font-family: verdana,arial;\n";
    $css .= "font-size: 12px;\n";
    $css .= "}\n";
    $css .= ".file_ok\n{\n";
    $css .= "    color: green;\n";
    $css .= "}\n";
    $css .= ".failed\n{\n";
    $css .= "    color: red;\n";
    $css .= "}\n";
    $css .= ".title\n{\n";
    $css .= "    color: black;\n";
    $css .= "    font-weight: bold;\n";
    $css .= "}\n";
    $css .= ".apache_restart\n{\n";
    $css .= "    color: darkblue;\n";
    $css .= "}\n";
    $css .= "</style>\n";

    echo 
    "<html>\n <head>\n  <title>PHP Switch Version</title>\n".$css." </head>\n\n <body>\n".$return."\n </body>\n</html>";

    ?>
    l'unico bug e che nn riesco a far resettare apahce
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  8. #8
    leggiti l' articolo per windows
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9

    Re: [Pillola] installazione di php5 e convivenza con php 4 [moduli di apache su windows]

    Originariamente inviato da }gu|do[z]{®©

    2) Individuate la riga "AddModule mod_setenvif.c", subito sotto dovreste avere qualcosa come "AddModule mod_php4.c" che si riferisce anche in questo caso alla precedente installazione di php4.. quindi sostituitela con "AddModule mod_php4.c"
    Salvate e chiudete il file.
    nelle due versioni di apache che ho scaricato, il file .conf non presentava nessuna direttiva AddModule mod_setenvif.c


    Originariamente inviato da }gu|do[z]{®©

    Se invece avete appena installato apache e il vostro httpd.conf è "vergine" dovrete fare le seguenti modifiche:
    1) individuate la riga "#LoadModule unique_id_module modules/mod_unique_id.so" sotto la quale aggiungerete la seguente:

    LoadModule php5_module C:/PHP5/php5apache.dll

    dove a "C:/PHP5" sostituirete eventualmente il percorso della directory in cui avete scompattato i files di php5.
    giusto. questo vale però - è bene ricordarlo - solo per le versioni di apache 1.3.x La versione 2 deve caricare il modulo php5apache2.dll


    Originariamente inviato da }gu|do[z]{®©

    A questo punto avviando apache dovrebbe comparire qualcosa come "PHP/5.0.0RC2 running", e potrete sorridere perchè significherà che è andato tutto bene.
    non è detto. a me compare la scritta che apache corre, ma non tutto va bene. per esempio: IE non riconosce i tag php; e ancora apache non riesce a caricare i moduli - pur avendo seguito le istruzioni di questa pillola e i successivi commenti -

    E a questo momento il problema non è ancora risolto. Perchè?

    quiz

  10. #10
    se non ti interpreta i file .php hai fatto qualche errore nella configurazione ^^

    tipo hai scordato questo:
    AddType application/x-httpd-php .php

    se compare quella scritta, PHP è stato correttamente caricato ed avviato...se non ti esegue codice PHP hai sbagliato qualcosa prima ^^

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.