Como faço para atualizar o PHP no Mac OS X?

99

Acho que essa é uma pergunta terrivelmente obtusa de se fazer, mas, estranhamente, esse problema está mal documentado.

Eu gostaria de atualizar o PHP, mas existem vários problemas:

  • Não há gerenciador de pacotes embutido. MacPorts não reconhece php como um pacote instalado porque ele não instalou o próprio PHP.
  • Em execução locate phpindica que provavelmente há muitas dependências.
  • Não sei COMO o php foi instalado, visto que foi incluído no sistema operacional, então não sei se devo instalar a partir do código-fonte ou baixar os binários. Também não sei como desinstalar a versão anterior sem quebrar as dependências.

Estou rodando no Leopard. Tenho a sensação de que a Apple não quer que você atualize. A compra do Snow Leopard e a atualização resolveriam esse problema (e outros como ele)?

thebossman
fonte

Respostas:

90

Você pode querer verificar o pacote PHP de Marc Liyanage. Ele vem em um bom pacote de instalação do Mac OS X no qual você pode clicar duas vezes. Ele o mantém bem atualizado.

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

Além disso, embora a atualização para o Snow Leopard não ajude você a fazer atualizações do PHP no futuro, provavelmente fornecerá uma versão mais recente do PHP. Estou executando o OS X 10.6.2 e ele tem o PHP 5.3.0.

Scott Saunders
fonte
Obrigado!! Eu estava nervoso porque esse processo seria mais difícil.
Gavin
10
Observe que este pacote não sobrescreve a versão original do PHP no Mac, então não funciona imediatamente, você precisa adicionar o novo diretório ao PATH. As instruções para fazer funcionar estão nessa página (fui estúpido o suficiente para perder isso da primeira vez).
Macaco codificado de
1
Uau! Depois de passar horas tentando fazer o processo de instalação via Homebrew funcionar, tentei fazer isso. Super rápido, super fácil e realmente funcionou direto da caixa! Obrigado!
Magnus W
Definitivamente, a melhor opção. Tão indolor (contanto que você se lembre de ter certeza de que $PATHestá correto, conforme apontado por @CodedMonkey)
Darragh Enright
2
Além disso, vale a pena mencionar que, apesar de instalar em um diretório separado, o instalador configura o Apache para que todos os seus aplicativos da web usem a versão php recém-instalada. Portanto, o truque do PATH é útil apenas se você executar o php na linha de comando. Se você deseja executar aplicativos da web, o instalador cuida de tudo.
fiacobelli
51

Eu uso isso: https://github.com/Homebrew/homebrew-php

O comando é:

$ xcode-select --install

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

$ brew options php56
$ brew install php56

Em seguida, configure em seu .bash_profileou.bashrc

# Homebrew PHP CLI
export PATH="$(brew --prefix homebrew/php/php56)/bin:$PATH"
Taro Alan
fonte
Observe que isso não atualizará o PHP embutido, mas instalará um novo. Tive sérios problemas com duas versões instaladas, apesar da confusão ...
Julian F. Weinert
Tentei fazer isso e também tive muitos problemas, como o bash travando na inicialização, tive que reinstalá-lo. Tenha cuidado ao tentar esses comandos e preste atenção ao que Brew sugere que você deve fazer ao processar essas linhas.
Brac
Observe que homebrew / dupes e homebrew / versões agora estão obsoletos.
medinasod
14

Acho que uma maneira simples de fazer isso é:

1 - Verifique onde está seu PHP atual:

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

Entende? Normalmente, nossos comandos que executamos são um link em / usr / local / bin então ...

2 - Desvincular este link atual do PHP

unlink /usr/local/bin/php

Se preferir, antes de desvinculá-lo, verifique o caminho e remova os arquivos php (faça ls -al /usr/local/bin| grep php e depois rm -rfno caminho desejado)

3 - Instale o PHP 7.1

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

4 - Crie um novo link (usando php 7.1 bin que você instalou)

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

Como eu disse, acho que é uma maneira simples.

Paulo vitor
fonte
8

Não há gerenciador de pacotes embutido. MacPorts não reconhece php como um pacote instalado porque ele não instalou o próprio PHP.

Você ainda pode instalá-lo com MacPorts. sudo port install php52(ou a versão que você quiser) instalará o PHP.

Ele não substituirá a versão fornecida pela Apple. Ele vai instalar em /opt/local. Você pode adicionar /opt/localao início do seu $PATHe usar a versão MacPorts em sua configuração do Apache.

mipadi
fonte
como você descobre o nome do pacote da versão php?
David
6

Opção 1

Conforme recomendado aqui , este site fornece um revestimento único conveniente e atualizado.

Isso não sobrescreve a versão base do PHP em seu sistema, mas a instala de forma limpa em / usr / local / php5.

Opção 2

Meu método preferido é apenas instalar via Homebrew .

user456584
fonte
1
Você quer dizer isso ? Idealmente, você resumiria tudo aqui, sabe, por redundância no caso de quebra de link e por simplicidade! Também vale a pena notar que também não substituirá o apple php. ; P
cregox
3

Antes de continuar, tenho a versão mais recente (v5.0.15) do OS X Server (sim, horrível, eu sei ... no entanto, o servidor da web parece funcionar A-OK) . Eu pesquisei por toda parte por dias tentando atualizar (ou pelo menos fazer o Apache apontar para) uma nova versão do PHP. Meu mcryptnão funcionou, junto com outras extensões e instalei e reinstalei o PHP inúmeras vezes de http://php-osx.liip.ch/ e outros tutoriais até que finalmente notei uma pequena informação escrita em um comentário em um dos os muitos .confarquivos diferentes que o OS X Server mantém, o que significa que o OS X Server carrega seu próprio .confarquivo personalizado antes de carregar o Apache httpd.conf (localizado em /etc/apache2/httpd.conf) . O arquivo do servidor está localizado:

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

Ao abrir este arquivo, você deve comentar esta linha assim:

#LoadModule php5_module libexec/apache2/libphp5.so

Em seguida, adicione o caminho correto (que já deve estar instalado se você instalou através do link http://php-osx.liip.ch/ ) :

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

Após essa modificação, meu PHP finalmente carregou a instalação correta do PHP. Dito isso, se as coisas derem errado, pode ser porque o OS X foi feito para funcionar com a instalação nativa do PHP no momento da instalação do OS X. Para reverter, basta desfazer a alteração acima.

De qualquer forma, espero que isso seja útil para qualquer pessoa que passe incontáveis ​​horas nisso.

Rasclatt
fonte
1
Esse comentário me economizou muito tempo!
GuyGizmo,
2

Atualizar para o Snow Leopard não resolverá o seu principal problema de manter o PHP atualizado. A Apple nem sempre mantém o software de terceiros que inclui em dia com as atualizações do sistema operacional. E contar com a Apple para obter a correção de bug / atualização de segurança de que você precisa está pedindo problemas.

Além disso, eu recomendaria instalar por meio de MacPorts (e fazer a configuração necessária para usá-lo em vez do PHP da Apple) em vez de tentar atualizar o PHP fornecido pela Apple no local. Qualquer coisa que você fizer /usr/bincorre o risco de ser sobrescrito por alguma atualização futura da Apple.

Dave Bacher
fonte
A atualização de segurança 2010-002 da Apple atualiza o PHP do Leopard para 5.2.12.
Dave Bacher
O PHP 5.3.1 vem com o Snow Leopard.
JAL
2

Economizando no pressionamento de teclas, isso funcionou no 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
fonte
2

Verifique sua versão atual do php no terminal com o seguinte comando,

$ php -v

Você vê a versão atual do php no terminal, e o próximo comando executado no terminal se você deseja atualizar sua versão do php com concat do php com a versão como,

$ brew install homebrew/php/php71

Reinicie o terminal se você concluiu a atualização da versão php instalada e execute o comando.

$ php -v

Agora você vê a versão atual do php no terminal .... obrigado

Yekyawaung
fonte
0

Use este comando:

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

Você pode usar o curl para atualizar a versão php.

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

Último passo:

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

Verifique a versão atualizada

php -v
Shuvo Habib
fonte
-1

melhor maneira de atualizar é compilá-lo a partir do código-fonte

veja este tutorial que pode ser útil para você

http://www.computersnyou.com/2012/09/how-to-upgrade-php-in-mac-osx-compiling.html

riyush
fonte
21
Você deve evitar simplesmente vincular a um recurso sem resumir seu conteúdo aqui. Quando o link quebrar, sua resposta não será mais relevante.
Scott,
1
E sim ... o link está quebrado! :-D
emale
-2

para atualizar php7 para a última versão estável brew upgrade php7 ou para php5.X para a última versão estável

brew upgrade php56

use brew listpara verificar a versão instalada

Saurabh Chandra Patel
fonte