Blog.resende.biz

Como instalar o PHP 7.2 com xdebug no MacOS

Cover Image for Como instalar o PHP 7.2 com xdebug no MacOS
Pedro Resende
Pedro Resende

Hoje deixo-vos aqui as instruções, de como instalarem a versão de PHP 7.2 com o xdebug.

Como sabem o MacOs é um sistemas operativos mais estáveis, contudo sofre de alguns males, nomeadamente actualizações específicas de certas aplicações, como por exemplo o PHP.

Para isso, existe um gestor de pacotes, mantido pela comunidade, que poderá ser instalado, chamado de brew.

Vamos então começar por instalar o brew, para isso será necessário correr o seguinte comando:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Quando terminar, é necessário adicionar os pacotes relativos ao PHP:

$ brew tap homebrew/php

e por fim, para instalar a versão 7.2 do PHP e do xdebug, terão de correr as seguintes linhas:

$ brew install php72 php72-xdebug

e vão receber a seguinte mensagem

Error: No available formula with the name "php72-xdebug"
Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
git -C "$(brew --repo homebrew/core)" fetch --unshallow

Error: No previously deleted formula found.
Searching for similarly named formulae...
Searching local taps...
Error: No similarly named formulae found.
Searching taps...
Searching taps on GitHub...
Error: No formulae found in taps.

Neste momento devem-se estar a questionar o que se passou, mas a realidade é que desde a versão 7.1 do PHP o xdebug custa um bocadinho mais a instalar. Para isso necessitamos agora de instalar o PECL (PHP Extension Community Library).

$ curl -O http://pear.php.net/go-pear.phar
$ sudo php -d detect_unicode=0 go-pear.phar

Na configuração comecem por escolher 1 e carreguem na tecla Enter. Insiram

/usr/local/pear

Carreguem uma vez mais em enter e quando voltar a perguntar, escolha 4 e Enter. Por fim, insiram

/usr/local/bin

e enter.

Neste momento já temos o PHP 7.2 e o PECL instalados, só nos falta o Xdebug. Para isso, vamos executar os seguintes comandos:

$ sudo pecl update-channels 
$ sudo pecl list-all
$ sudo pecl install xdebug

Quando a instalação terminar, deverá aparecer o seguinte

Build process completed successfully

Installing '/usr/local/Cellar/php/7.2.7/pecl/20170718/xdebug.so'

install ok: channel://pecl.php.net/xdebug-2.6.0

Extension xdebug enabled in php.ini

por fim, para validarem que têm a versão correcta, corram

$ php -v

Caso vos apareça o seguinte erro

PHP Warning: Failed loading Zend extension 'xdebug.so' (tried: /usr/local/Cellar/php/7.2.7/lib/php/20170718/xdebug.so (dlopen(/usr/local/Cellar/php/7.2.7/lib/php/20170718/xdebug.so, 9): image not found), /usr/local/Cellar/php/7.2.7/lib/php/20170718/xdebug.so.so (dlopen(/usr/local/Cellar/php/7.2.7/lib/php/20170718/xdebug.so.so, 9): image not found)) in Unknown on line 0

Warning: Failed loading Zend extension 'xdebug.so' (tried: /usr/local/Cellar/php/7.2.7/lib/php/20170718/xdebug.so (dlopen(/usr/local/Cellar/php/7.2.7/lib/php/20170718/xdebug.so, 9): image not found), /usr/local/Cellar/php/7.2.7/lib/php/20170718/xdebug.so.so (dlopen(/usr/local/Cellar/php/7.2.7/lib/php/20170718/xdebug.so.so, 9): image not found)) in Unknown on line 0

Failed loading /usr/local/php/modules/xdebug.so: dlopen(/usr/local/php/modules/xdebug.so, 9): image not found

PHP 7.2.7 (cli) (built: Jun 22 2018 06:27:50) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

with Zend OPcache v7.2.7, Copyright (c) 1999-2018, by Zend Technologies

Terão de editar o ficheiro /usr/local/etc/php/7.2/php.ini e onde está

zend_extension="..."

substituam por

zend_extension="/usr/local/Cellar/php/7.2.7/pecl/20170718/xdebug.so"

corram agora

php -v

Neste momento deverão ter a seguinte mensagem

PHP 7.2.7 (cli) (built: Jun 22 2018 06:27:50) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

with Zend OPcache v7.2.7, Copyright (c) 1999-2018, by Zend Technologies

Se por algum motivo, tiverem dúvidas ou acontecer algum erro num dos comandos acima, não hesitem a deixar um comentário.