2014-08-30 18 views
12

Sono fondamentalmente uno sviluppatore PHP. Attualmente sto usando Ubuntu Linux 12.04 LTS sul mio computer locale.Posso migrare da PHP 5.3.10 a PHP 5.6.0?

Sto utilizzando la versione PHP seguente per sviluppare il mio progetto PHP:

php -v //command run at terminal to know the `PHP` version installed 

PHP 5.3.10-1ubuntu3.13 with Suhosin-Patch (cli) (built: Jul 7 2014 18:54:55) 
Copyright (c) 1997-2012 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies 

Ora un paio di giorni indietro un nuovo ultimo rilascio stabile di PHP versione (PHP 5.6.0) è stato rilasciato dal team di sviluppo PHP.

La mia domanda è, come io sto usando una versione PHP sulla mia macchina locale, che è troppo vecchio, e anche tutti PHP versioni inferiori 5.4 sono ufficialmente non supportato o annunciato di fine vita, dovrei andare per PHP 5.6.0?

Se la tua risposta è sì, spiegami come si fa? Il codice che ho scritto nel mio progetto funzionerà correttamente dopo questa migrazione? Quali cambiamenti dovrò fare?

Se la risposta è no, spiegami in dettaglio perché?

Prima di porre questa domanda ho ricevuto la documentazione Google e PHP. Lì ho trovato note di migrazione per i seguenti migrazioni Versione:

**5.3.x->5.4.x 
    5.4.x->5.5.x 
    5.5.x->5.6.x** 

non siamo riusciti ad avere come migrare da PHP 5.3.10 a PHP 5.6.0.

Quindi qualcuno può aiutarmi in questo senso?

Se avete bisogno di ulteriori informazioni riguardanti il ​​mio problema, fatemelo sapere.

+1

È consigliabile utilizzare sempre il gestore pacchetti per l'aggiornamento del software. Aggiornare manualmente solo quando assolutamente necessario, quindi quando il pacchetto è mancante dai repositori ufficiali, e non si desidera utilizzare repositori di terze parti. – Luka

+0

@Luka: Che cosa significa mean package manager e quale gestore di pacchetti dovrei usare? – user2839497

+1

Un gestore pacchetti è un programma che viene utilizzato per cercare e installare automaticamente i pacchetti e le relative dipendenze. 'apt' è un esempio di un gestore di pacchetti. Tutte le distribuzioni basate su Debian (quindi anche Ubuntu) lo hanno per impostazione predefinita. Le distribuzioni basate su RedHat, ad esempio, hanno 'yum'. Quindi dovresti sempre installare gli aggiornamenti usando 'apt-get install php'. Nel caso in cui il pacchetto sia già installato e ci siano nuovi aggiornamenti disponibili, verranno installati. Se il pacchetto non è installato, verrà installato pochi istanti dopo l'esecuzione di 'apt-get install'. Guarda la risposta di DevilishDB. – Luka

risposta

8

TL; DR PHP 5.3.x sarà ancora ottenere gli aggiornamenti di sicurezza per Ubuntu, ma l'aggiornamento a 14.04.1 per una versione più recente

Potreste scaricare e costruire/installare la fonte per PHP 5.6 dal sito web, ma don Poiché ciò significa che rischi di perdere stabilità con il tuo sistema perché altri pacchetti sul tuo sistema non saranno progettati per questa versione e dovrai aggiornarlo manualmente ogni volta che esce una nuova versione, rischiando la stabilità se tali aggiornamenti sono legati alla sicurezza in quanto non li aggiornerai rapidamente come faresti con un gestore di pacchetti.

Invece, suggerisco di aggiornare la distribuzione a Ubuntu 14.04.1, che contiene PHP 5.5.9; molto più recente di 5.3.10. Naturalmente, 5.3.x continuerà a ricevere aggiornamenti di sicurezza fino al momento in cui Ubuntu 12.04 raggiungerà EOL, ma se si desidera disporre delle funzionalità più recenti è necessario eseguire il dist-upgrade. Puoi farlo graficamente nel programma di aggiornamento del software Ubuntu o eseguire apt-get dist-upgrade come root (ad esempio con sudo) nel TTY se stai utilizzando la versione del server. Aggiornamento : utilizzare invece sudo do-release-upgrade.

Modifica: solo per chiarire, apt-get è il gestore di pacchetti. Se di solito usi strumenti grafici per installare e aggiornare pacchetti (ubuntu software center, synaptic, ecc.), Ecco alcuni semplici comandi. # indica che deve essere eseguito come root (ad esempio sudo apt-get install <package>), $ indica che non è necessario sudo. Sostituisci le cose con la cosa che desideri utilizzare (ad es.apt-get install chromium-browser)

#apt-get update aggiorna i repository
#apt-get upgrade aggiorna i ai pacchetti più recenti (eseguite il primo di cui sopra!)
#apt-get upgrade <package> è come sopra, ma gli aggiornamenti solo un singolo pacchetto di (non che utile se non si dispone di un specifica ragione)
#apt-get install <package> installa un pacchetto di
#apt-get remove <package> rimuove un pacchetto
#apt-get autoremove rimuove automaticamente i pacchetti che sono stati installati dalle dipendenze e non è più necessario
$apt-cache search <query> ricerche per la query che hai dato
$apt-cache show <package> mostra informazioni per un pacchetto
#yes "" | apt-get install <package> installa un pacchetto di rispondere alla risposta predefinita a tutto (è possibile utilizzare yes con molti comandi)
#apt-get dist-upgrade aggiorna tutto (e rimuove alcuni pacchetti) quando di solito può essere trattenuto.

+0

Ho trovato un redditor. Lo ammalo –

5

Aggiornamento a Ubuntu 14.04.1 per ottenere PHP 5.5.9 come pacchetto e beneficiare degli aggiornamenti di Ubuntu. Non andrei comunque per 5.6.0 in un ambiente di produzione.

Da this PHP page è possibile ottenere informazioni sulle migrazioni da 5.3 a 5.4 e da 5.4 a 5.5.

Oltre ai cambiamenti e alle nuove funzionalità menzionate, i team di PHP hanno lavorato sulla gestione della memoria e l'ottimizzazione tra 5.3 e 5.5.9. Questi miglioramenti motivano da soli la migrazione.

pezzi di consulenza per la migrazione

  • APC: PHP ora incorpora OPCache in sostituzione di APC. Se si sono utilizzate variabili APC, sono disponibili alcune informazioni su OPCache: nel mio caso, utilizzando il vecchio APC tramite il nuovo modulo (modifica del nome), php5-apcu (notare la 'u'), era l'alternativa migliore.

  • I moduli sono stati installati in una directory diversa. Se avete intenzione di mantenere il vostro php.ini il extension_dir potrebbero dover essere regolato

  • Inoltre, il dir /etc/php5 è più esigente in termini di struttura: in basso che dir è mods-available (à la nginx) che contiene l'elenco delle moduli ini file. Quindi in cli, fpm, apache2 ... dirs è una directory conf.d che ha collegamenti simbolici ai file ini principali di mods-available moduli; aggiungi un link solo se intendi utilizzare quel modulo per quella configurazione PHP (ad es. mysqli potrebbe non essere necessario per cli).

  • JSON: il modulo php5-json deve essere installato (apt-get install php5-json) al fine di ottenere le funzioni PHP JSON (json_encode, decode ...)

  • notare che sembra che ci sia un problema di collegamento /etc/php5/MODE/php.ini (modalità dell'essere cli, ...) a un principale php.ini da qualche parte (ad esempio in fpm) - durante gli aggiornamenti di Ubuntu, un errore impedisce l'installazione - Ho appena copiato il php.ini dato che sono uguali per tutte le modalità nel mio caso.

Inoltre, la migrazione è andata regolarmente.