¿Cómo actualizo PHP en Mac OS X?

99

Siento que esta es una pregunta terriblemente obtusa, pero extrañamente, este problema está mal documentado.

Me gustaría actualizar PHP, pero hay varios problemas:

  • No hay un administrador de paquetes integrado. MacPorts no reconoce php como un paquete instalado porque no instaló PHP en sí.
  • La ejecución locate phpindica que probablemente haya muchas dependencias.
  • No sé CÓMO se instaló php, ya que estaba incluido con el sistema operativo, por lo que no sé si debería instalarlo desde la fuente o descargar binarios. Tampoco conozco la forma correcta de desinstalar la versión anterior sin romper las dependencias.

Estoy corriendo en Leopard. Tengo la sensación de que Apple no quiere que actualices. ¿Comprar Snow Leopard y actualizar resolvería este problema (y otros similares en el futuro)?

thebossman
fuente

Respuestas:

90

Es posible que desee consultar el paquete PHP de Marc Liyanage. Viene en un agradable paquete de instalación de Mac OS X en el que puede hacer doble clic. Lo mantiene bastante actualizado.

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

Además, aunque actualizar a Snow Leopard no le ayudará a realizar actualizaciones de PHP en el futuro, probablemente le proporcione una versión más nueva de PHP. Estoy ejecutando OS X 10.6.2 y tiene PHP 5.3.0.

Scott Saunders
fuente
¡¡Gracias!! Estaba nervioso que este proceso fuera a ser más difícil.
Gavin
10
Tenga en cuenta que este paquete no anula la versión original de PHP en Mac, por lo que no funciona de inmediato, debe agregar el nuevo directorio al archivo PATH. Las instrucciones para que funcione están en esa página (fui lo suficientemente estúpido como para perderme eso la primera vez).
Coded Monkey
1
¡Guauu! Después de pasar horas intentando que el proceso de instalación a través de Homebrew funcionara, probé esto. ¡Súper rápido, súper fácil y realmente funcionó directamente desde el primer momento! ¡Gracias!
Magnus W
Definitivamente la mejor opción. Tan indoloro (siempre que recuerde asegurarse de que $PATHsea ​​correcto como lo señaló @CodedMonkey)
Darragh Enright
2
Además, vale la pena mencionar que a pesar de instalarlo en un directorio separado, el instalador configura Apache para que todas sus aplicaciones web usen la versión php recién instalada. Entonces, el truco PATH es útil solo si ejecuta php desde la línea de comando. Si desea ejecutar aplicaciones web, el instalador se encarga de todo.
fiacobelli
51

Yo uso esto: https://github.com/Homebrew/homebrew-php

El comando es:

$ xcode-select --install

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

$ brew options php56
$ brew install php56

Luego config en tu .bash_profileo.bashrc

# Homebrew PHP CLI
export PATH="$(brew --prefix homebrew/php/php56)/bin:$PATH"
Taro Alan
fuente
Tenga en cuenta que esto no actualizará el PHP incrustado, pero instalará uno nuevo. Me encontré con serios problemas al tener dos versiones instaladas, a pesar de la confusión ...
Julian F. Weinert
Intenté esto y también tuve muchos problemas, como que bash se bloqueara al iniciarse, tuve que reinstalarlo. Tenga cuidado cuando pruebe estos comandos y tenga cuidado con lo que Brew sugiere que debe hacer mientras procesa estas líneas.
Brac
Tenga en cuenta que las versiones homebrew / dupes y homebrew / ahora están en desuso.
medinasod
14

Creo que una forma sencilla de hacerlo es:

1 - Comprueba dónde está tu PHP actual:

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

¿Lo ves? Por lo general, nuestros comandos que ejecutamos son un enlace en / usr / local / bin, así que ...

2 - Desvincular este enlace actual de PHP

unlink /usr/local/bin/php

Si lo prefiere, antes de desvincularlo, verifique la ruta y luego elimine los archivos php (haga ls -al /usr/local/bin| grep php y luego rm -rfen la ruta deseada)

3 - Instale PHP 7.1

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

4 - Cree un nuevo enlace (usando php 7.1 bin que ha instalado)

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

Como dije, es una forma simple, creo.

Paulo Victor
fuente
8

No hay un administrador de paquetes integrado. MacPorts no reconoce php como un paquete instalado porque no instaló PHP en sí.

Aún puede instalarlo con MacPorts. sudo port install php52(o la versión que desee) instalará PHP.

No sobrescribirá la versión proporcionada por Apple. Lo instalará debajo /opt/local. Puede agregar /opt/localal principio de su $PATHy usar la versión MacPorts en su configuración de Apache.

mipadi
fuente
¿Cómo averiguas el nombre del paquete de la versión php?
David
6

Opción 1

Como se recomienda aquí , este sitio proporciona un revestimiento único conveniente y actualizado.

Esto no sobrescribe la versión base de PHP en su sistema, sino que la instala limpiamente en / usr / local / php5.

Opcion 2

Mi método preferido es instalarlo a través de Homebrew .

usuario456584
fuente
1
¿Te refieres a esto ? Lo ideal sería resumir todo aquí, ya sabes, por redundancia en caso de que se rompa el enlace y por simplicidad. También vale la pena señalar que tampoco reemplazará al php de Apple. ; P
cregox
3

Antes de continuar, tengo la última versión (v5.0.15) de OS X Server (sí, horrible, lo sé ... sin embargo, el servidor web parece funcionar A-OK) . Busqué alto y bajo durante días tratando de actualizar (o al menos hacer que Apache apunte) una nueva versión de PHP. Mi mcryptno funcionó, junto con otras extensiones e instalé y reinstalé PHP innumerables veces desde http://php-osx.liip.ch/ y otros tutoriales hasta que finalmente noté un poco de información escrita en un comentario en uno de los muchos .confarchivos diferentes que guarda OS X Server, que fue que OS X Server carga su propio .confarchivo personalizado antes de cargar Apache httpd.conf (ubicado en /etc/apache2/httpd.conf) . El archivo del servidor se encuentra:

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

Cuando abre este archivo, debe comentar esta línea así:

#LoadModule php5_module libexec/apache2/libphp5.so

Luego agregue la ruta correcta (que ya debería estar instalada si lo ha instalado a través del enlace http://php-osx.liip.ch/ ) :

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

Después de esta modificación, mi PHP finalmente cargó la instalación correcta de PHP. Dicho esto, si las cosas salen mal, puede ser porque OS X está hecho para funcionar con la instalación nativa de PHP en el momento de la instalación de OS X. Para revertir, deshaga el cambio anterior.

De todos modos, espero que esto sea útil para cualquier otra persona que dedique incontables horas a esto.

Rasclatt
fuente
1
¡Este comentario me ahorró mucho tiempo!
GuyGizmo
2

La actualización a Snow Leopard no resolverá el problema principal de mantener actualizado PHP. Apple no siempre mantiene actualizado el software de terceros que incluye con las actualizaciones del sistema operativo. Y confiar en Apple para que le proporcione la corrección de errores / actualización de seguridad que necesita es buscar problemas.

Además, recomendaría instalar a través de MacPorts (y hacer la configuración necesaria para usarlo en lugar del PHP de Apple) en lugar de intentar actualizar el PHP proporcionado por Apple en su lugar. Todo lo que hagas /usr/bincorre el riesgo de ser sobrescrito por alguna futura actualización de Apple.

Dave Bacher
fuente
La Actualización de seguridad 2010-002 de Apple actualiza el PHP de Leopard a 5.2.12.
Dave Bacher
PHP 5.3.1 viene con Snow Leopard.
JAL
2

Ahorrando en pulsaciones de teclas, esto funcionó en 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
Cees Timmerman
fuente
2

Verifique su versión actual de php en la terminal con el siguiente comando,

$ php -v

Verá la versión actual de php en la terminal, y el siguiente comando se ejecutará en la terminal si desea actualizar su versión de php con php concat con la versión que le gusta como,

$ brew install homebrew/php/php71

Reinicie el terminal si terminó la actualización de la versión php instalada y ejecute el comando.

$ php -v

Ahora ves la versión actual de php en la terminal ... gracias

yekyawaung
fuente
0

Utilice este comando:

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

Puede usar curl para actualizar la versión de php.

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

Último paso:

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

Verifique la versión mejorada

php -v
Shuvo Habib
fuente
-2

para actualizar php7 a la última versión estable brew upgrade php7 o para php5.X a la última versión estable

brew upgrade php56

utilizar brew listpara comprobar la versión instalada

Saurabh Chandra Patel
fuente