Como atualizar a versão do PHP no Mac OSX Mountain Lion

Olá, pessoal Venho usando o Vagrant (oficial, tradução e meu github) faz um tempo, para diminuir o número de coisas instaladas no meu notebook[bb], mas precisava atualizar a versão do PHP que tinha instalado por padrão no meu Mac OSX.

Participando do projeto do iMasters, oPHPortunidades (veja os hangouts), precisei rodar alguns comandos básicos no console, usando o excelente Composer, mas por não ter a última versão do PHP ficava difícil acompanhar o pessoal. Principalmente pela funcionalidade do servidor web embutido no PHP 5.4, que economiza bastante tempo para não precisar de configurar um Apache apenas para teste de uma aplicação.

É fato que usando o Vagrant poderíamos deixar preparado algumas receitas básicas, Puppet ou Chef, para deixar subir uma máquina com a última versão do PHP, mas a possibilidade abrir um terminal em um diretório com um projeto mínimo rodando apenas um php -S localhost:8080 em vez de um vagrant init, subl Vagrantfile, vagrant up, vagrant ssh etc etc era interessante.

Foi nesse momento que fui procurar uma opção de atualizar a minha versão global do PHP, do 5.3.15 que é a que vem instalada no Mac OSX Mountain Lion, para a versão mais nova estável, 5.4.8 quando esse artigo foi escrito. Quando comecei a usar o Mac, em agosto 2011, procurei uma solução parecida com a que usava no Windows, o XAMPP, e tinha encontrado o MAMP e o próprio XAMPP (que eu tinha usado no meu tempo de Ubuntu também também tem versão Mac). Mas não queria mais utilizar uma opção desse tipo. Queria ter a última versão realmente instalada e acessível a partir da linha de comando.

O primeiro lugar onde fui olhar foi o manual do PHP, que agora está um pouco mais atualizado, mas até quando eu vi (setembro 2012) só tinha uma sugestão: compile o PHP usando as instruções para UNIX. Escolhi não usar essa opção.

Um tempo atrás o Fábio Ribeiro perguntou no Twitter como o pessoal estava montando o ambiente PHP no OSX, e na época ele recebeu a indicação do Homebrew. Essa seria uma opção interessante.

Enquanto estava ajudando na tradução do PHP The Right Way, o PHP Do Jeito Certo, verifiquei que já existia uma pacote binário da versão mais nova do PHP 5.4, a http://php-osx.liip.ch/, que era até a versão recomendada pelos criadores do site. Mais uma boa opção para escolher.

Enfim, fui procurar um maior embasamento para minha escolha final: perguntar no Facebook, no grupo PHP Brasil. Lá vários caras que entendem do assunto deram suas opiniões e o mais legal: me deixaram com mais dúvidas ainda!!! Isso porque surgiram mais umas opções lá ainda não conhecia: o php-build e o phpenv.

O php-build é uma cara para compilar o php automaticamente a partir do repositório oficial do PHP, e o phpenv é uma ferramenta para definir qual versão do PHP você irá utilizar no caso de você ter instalado várias opções paralelamente. No fim, foi essas duas opções juntas que escolhi usar e vou mostrar aqui como fiz:

  1. Instalar o wget, usando o homebrew (ele é usado pelo php-build, mas você pode escolher outra forma de instalar o wget)
  2. Executar o brew install pkg-config curl freetype gettext jpeg libpng mcrypt zlib re2c tidy openssl pcre libxslt xmlrpc-c regex-opt exif json-c gd libiconv base64 icu4c lemon gmp t1utils mhash expat, usando o homebrew (pelo menos na versão do PHP 5.4.8 pelo php-build ele pediu algumas dependências, depois que instalei esses pacotes o problema parou de acontecer aqui)
  3. Instalar o php-build (usando a instalação padrão com o git, http://chh.github.com/php-build/)
  4. Instalar o phpenv (seguir o caminho que foi feito para instalar o php-build, depois na pasta bin, executar o phpenv-install.sh)
  5. Atualizar o seu PATH seguindo as orientações da saída do comando phpenv
  6. Instalar a versão que você quer do PHP, seguindo a instrução daqui: https://github.com/CHH/phpenv#description
  7. Rodar o phpenv rehash, o phpenv global com a versão escolhida e pronto!

Se você executar um php -v antes de fazer todos os comandos, você deve ver a sua versão do PHP como 5.3.15. Depois dos comandos acima, se executar um php -v deve ver a versão do PHP mais nova que você instalou (no meu caso ficou o PHP 5.4.8).

É isso aí pessoal, quem ficar com dúvidas pode perguntar nos comentários.

Até a próxima.

Este artigo foi publicado originalmente em RogerioPradoJ.com.

  • Daniel Costa

    Pra mim foi bem simples, bastou instalar essa formula do brew: https://github.com/josegonzalez/homebrew-php

    • http://rogeriopradoj.com/ Rogerio Prado de Jesus

      Legal, Daniel.

      Minha opção pelo PHP Build com o PHPEnv foi mais por poder escolher a versão do PHP no nível X.Y.Z (na formula do Brew é normal escolher apenas a versão 5.4 ou 5.3).

      Depois vi que poderia instalar tanto o PHP Build quanto o PHPEnv via Brew também, isso seria interessante. No entanto, para mim é mais “camada” de pessoas que precisam atualizar o repositório para ter a versão estável mais recente das ferramentas. Exemplo:

      # Usando o Brew do josegonzalez:

      - PHP 5.3 -> versão 5.3.18
      - PHP 5.4 -> versão 5.4.9 (ok, última estável, meu Pull Request)
      - PHP-Build -> versão 0.8.0 (só tem PHP até 5.4.5 e 5.3.15)

      # Usando o PHP-BUILD + PHP-ENV

      - PHP 5.3 -> versão 5.3.19, além da 5.3.20RC1
      - PHP 5.4 -> versão 5.4.9, além da 5.4.10RC1
      - PHP-Build -> versão dev, tem todas as versões acima disponíveis

      Mas cara, é isso aí, acredito que o importante é termos opções (e boas opções nesse caso) para que possamos escolher a melhor em cada caso.

      Valeu!

  • Fabiano Shingai

    Olá Rogério, saberia dizer como atualizar o php 5.4 para o MAMP? Estou com este problema, pois precisava rodar a versão atualizada do joomla que só aceita o php 5.4 e meu MAMP só roda até a versão 5.2 Obrigado

    • http://rogeriopradoj.com/ Rogerio Prado de Jesus

      Olá, Fabiano.

      Qual versão do MAMP você está usando? Verifiquei hoje, 25/01/2013 no site http://www.mamp.info/en/mamp/index.html e a versão atual, 2.1.1 já vem com o PHP 5.4.4. Talvez você precise baixar a última versão da ferramenta.

    • http://rogeriopradoj.com/ Rogerio Prado de Jesus

      Que tal dar uma olhada nas outras opções:
      - php-build + php-env, ou
      - homebrew,
      - compilar você mesmo

      - virtualização
      - vagrant…

      Hoje você está trabalhando só com o MAMP mesmo?

  • Pingback: ROGERIO PRADO J | rogeriopradoj.com » Como atualizar a versão do Openssl no Mac OSX Mountain Lion

  • Pingback: ROGERIO PRADO J | rogeriopradoj.com » Plugin Composer para o PHP-Build

  • Pingback: Plugin PHP Coding Standards Fixer (php-cs-fixer) para o PHP-Build | ROGERIO PRADO J | rogeriopradoj.com