Come aggiorno PHP in Mac OS X?


99

Credo che questa sia una domanda tremendamente ottusa da porre, ma stranamente, questo problema è scarsamente documentato.

Vorrei aggiornare PHP, ma ci sono diversi problemi:

  • Non esiste un gestore di pacchetti integrato. MacPorts non riconosce php come pacchetto installato perché non ha installato PHP stesso.
  • L'esecuzione locate phpindica che probabilmente ci sono molte dipendenze.
  • Non so COME sia stato installato php, dato che era incluso nel sistema operativo, quindi non so se dovrei installare dal sorgente o scaricare i binari. Inoltre non conosco il modo corretto per disinstallare la versione precedente senza interrompere le dipendenze.

Sto correndo su Leopard. Ho la sensazione che Apple non voglia che tu esegua l'aggiornamento. L'acquisto di Snow Leopard e l'aggiornamento risolveranno questo problema (e quelli futuri come questo)?


Risposte:


90

Potresti voler controllare il pacchetto PHP di Marc Liyanage. Viene fornito in un bel pacchetto di installazione di Mac OS X su cui puoi fare doppio clic. Lo tiene abbastanza aggiornato.

http://php-osx.liip.ch/

Inoltre, sebbene l'aggiornamento a Snow Leopard non ti aiuterà a fare gli aggiornamenti di PHP in futuro, probabilmente ti darà una versione più recente di PHP. Uso OS X 10.6.2 e ha PHP 5.3.0.


Grazie!! Ero nervoso che questo processo sarebbe stato più difficile.
Gavin

10
Nota che questo pacchetto non sovrascrive la versione PHP originale su Mac, quindi non funziona immediatamente, devi aggiungere la nuova directory al file PATH. Le istruzioni per farlo funzionare sono su quella pagina (sono stato così stupido da non vederlo la prima volta).
Scimmia

1
Wow! Dopo aver passato ore a cercare di far funzionare il processo di installazione tramite Homebrew, ho provato questo. Super veloce, super facile e in realtà ha funzionato immediatamente! Grazie!
Magnus W

Sicuramente l'opzione migliore. Così indolore (a patto che ti ricordi di assicurarti che $PATHsia corretto come sottolineato da @CodedMonkey)
Darragh Enright

2
Inoltre, vale la pena ricordare che, nonostante l'installazione in una directory separata, il programma di installazione configura Apache in modo che tutte le applicazioni Web utilizzino la versione php appena installata. Quindi, il trucco PATH è utile solo se esegui php dalla riga di comando. Se vuoi eseguire applicazioni web, il programma di installazione si occupa di tutto.
fiacobelli

51

Uso questo: https://github.com/Homebrew/homebrew-php

Il comando è:

$ xcode-select --install

$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/homebrew-php

$ brew options php56
$ brew install php56

Quindi configura nel tuo .bash_profileo.bashrc

# Homebrew PHP CLI
export PATH="$(brew --prefix homebrew/php/php56)/bin:$PATH"

Nota che questo non aggiornerà il PHP incorporato, ma ne installerà uno nuovo. Ho avuto seri problemi con l'installazione di due versioni, nonostante la confusione ...
Julian F. Weinert

Ho provato questo e ho avuto anche molti problemi, come il crash di bash all'avvio, ho dovuto reinstallarlo. Fai attenzione quando provi questi comandi e fai attenzione a ciò che Brew suggerisce di fare durante l'elaborazione di queste righe.
Brac

Nota che homebrew / dupes e homebrew / versioni sono ora deprecate.
medinasod

14

Penso che un modo semplice per farlo sia:

1 - Controlla dove si trova il tuo attuale PHP:

$ which php
$ /usr/local/bin/php

Vedi? Di solito, i nostri comandi che eseguiamo sono un collegamento in / usr / local / bin quindi ...

2 - Scollega questo collegamento corrente di PHP

unlink /usr/local/bin/php

Se preferisci, prima di scollegarlo, controlla il percorso e quindi rimuovi i file php (fai ls -al /usr/local/bin| grep php e poi rm -rfnel percorso desiderato)

3 - Installa PHP 7.1

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1

4 - Crea un nuovo collegamento (usando php 7.1 bin che hai installato)

ln /usr/local/php5-7.1.9-20170914-100859/bin/php /usr/local/bin/php

Come ho detto, penso sia un modo semplice.


8

Non esiste un gestore di pacchetti integrato. MacPorts non riconosce php come pacchetto installato perché non ha installato PHP stesso.

Puoi ancora installarlo con MacPorts. sudo port install php52(o qualsiasi versione tu voglia) installerà PHP.

Non sovrascriverà la versione fornita da Apple. Lo installerà sotto /opt/local. Puoi aggiungere /opt/localall'inizio del tuo $PATHe utilizzare la versione MacPorts nella tua configurazione di Apache.


come si fa a capire il nome del pacchetto della versione php?
David

6

Opzione 1

Come consigliato qui , questo sito fornisce una linea comoda e aggiornata.

Questo non sovrascrive la versione base di PHP sul tuo sistema, ma invece la installa in modo pulito in / usr / local / php5.

Opzione 2

Il mio metodo preferito è semplicemente installare tramite Homebrew .


1
Intendi questo ? Idealmente dovresti riassumere tutto qui, sai, per ridondanza in caso di interruzioni del collegamento e per semplicità! Vale anche la pena notare che non sostituirà nemmeno il php di apple. ; P
cregox

3

Prima di andare avanti, ho l'ultima versione (v5.0.15) di OS X Server (sì, orribile, lo so ... tuttavia, il server web sembra funzionare A-OK) . Ho cercato in alto e in basso per giorni cercando di aggiornare (o almeno di far puntare Apache) una nuova versione di PHP. Il mio mcryptnon funzionava, insieme ad altre estensioni e ho installato e reinstallato PHP innumerevoli volte da http://php-osx.liip.ch/ e altri tutorial finché non ho finalmente notato un po 'di informazioni scritte in un commento in uno dei i molti .conffile diversi che OS X Server conserva, ovvero OS X Server carica il proprio .conffile personalizzato prima di caricare Apache httpd.conf (situato in /etc/apache2/httpd.conf) . Il file del server si trova:

/Library/Server/Web/Config/apache2/httpd_server_app.conf

Quando apri questo file, devi commentare questa riga in questo modo:

#LoadModule php5_module libexec/apache2/libphp5.so

Quindi aggiungi il percorso corretto (che dovrebbe essere già installato se lo hai installato tramite il link http://php-osx.liip.ch/ ) :

LoadModule php5_module /usr/local/php5/libphp5.so

Dopo questa modifica, il mio PHP ha finalmente caricato la corretta installazione di PHP. Detto questo, se le cose vanno male, potrebbe essere perché OS X è fatto per funzionare con l'installazione nativa di PHP al momento dell'installazione di OS X. Per ripristinare, è sufficiente annullare la modifica sopra.

Ad ogni modo, si spera che questo sia utile per chiunque altro trascorra innumerevoli ore su questo.


1
Questo commento mi ha fatto risparmiare molto tempo!
GuyGizmo

2

L'aggiornamento a Snow Leopard non risolverà il problema principale di mantenere aggiornato PHP. Apple non sempre mantiene aggiornato il software di terze parti che raggruppa con gli aggiornamenti del sistema operativo. E affidarsi ad Apple per ottenere la correzione dei bug / l'aggiornamento di sicurezza di cui hai bisogno è in cerca di problemi.

Inoltre, consiglierei di installare tramite MacPorts (e di eseguire la configurazione necessaria per usarlo al posto del PHP di Apple) piuttosto che provare ad aggiornare il PHP fornito da Apple sul posto. Tutto ciò che fai /usr/binrischia di essere sovrascritto da qualche futuro aggiornamento Apple.


L'aggiornamento di sicurezza 2010-002 di Apple aggiorna il PHP di Leopard alla versione 5.2.12.
Dave Bacher

PHP 5.3.1 viene fornito con Snow Leopard.
JAL

2

Risparmiando sulle sequenze di tasti, questo ha funzionato su MacOS Sierra:

$ brew install homebrew/php/php71

$ /usr/local/opt/php71/bin/php -v
PHP 7.1.4 (cli) (built: Apr 14 2017 15:02:16) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

2

Controlla la tua attuale versione di php nel terminale con il seguente comando,

$ php -v

Vedi la versione corrente di php nel terminale e il prossimo comando viene eseguito nel terminale se vuoi aggiornare la tua versione di php con php concat con la versione piaciuta come,

$ brew install homebrew/php/php71

Riavvia il terminale se hai terminato l'aggiornamento della versione php installato ed esegui il comando.

$ php -v

Ora vedi la versione corrente di php nel terminale .... grazie


0

Usa questo comando:

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.0

0

Puoi usare curl per aggiornare la versione php.

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.3

Ultimo passo:

export PATH=/usr/local/php5/bin:$PATH

Controlla la versione aggiornata

php -v


-2

per aggiornare php7 all'ultima versione stabile brew upgrade php7 o per php5.X all'ultima versione stabile

brew upgrade php56

utilizzare brew listper verificare la versione installata

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.