Como posso instalar o PHP 5.6.14 no Mac OS X 10.11 (El Capitan)?

Como posso instalar o PHP 5.6.14 no Mac OS X 10.11 (El Capitan)?

Recentemente atualizei do OS X Yosemite para o El Capitan e precisei reinstalar o PHP. Então, baixei o php (versão 5.6.14), executei o ./configurearquivo e depois executei o sudo make. No entanto, ao fazer isso, a compilação falha com as seguintes mensagens finais:

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [sapi/cli/php] Error 1

Nunca encontrei esta mensagem no Mac OS X 10.9.5 (Yosemite).

Como eu resolveria essa mensagem? Tentei desativar o System Integrity Protection (SIP) sem sucesso.

Responder1

De acordo com este relatório de problema do GitHub relacionado à construção do PHP 5.6.11 beta no Mac OS X 10.11 (El Capitan), o principal problema conectado ao libxml2. A recomendação deles no caso do Homebrew é executar este brew linkcomando:

brew link libxml2 --force

Mas se você estiver compilando a partir de código-fonte puro, não tenho 100% de certeza de como isso seria tratado.

Dito isto, encontrei um problema semelhante discutido nesteEssência de Nokogiri— hilariantemente intitulado “O que fazer se a libxml2 estiver sendo um idiota” — e as pistas apontam para apontar explicitamente para o material da LibXML2 como este:

--with-xml2-include=/usr/local/include/libxml2

Mas – é claro – isso seria para as opções de configuração do Nokogiri. Mas olhando paraa documentação oficial do PHPexplica o seguinte:

O opcional--with-libxml-dirdiretiva é usada para especificar a localização delibxmlno sistema em que o PHP está sendo compilado, caso contrário, apenas os locais padrão serão verificados.

Portanto, saber que parece adicionar algo --with-libxml-dirao seu ./configurecomando - algo com um caminho definido como abaixo - deve funcionar:

--with-libxml-dir=/usr/local/include/libxml2

Dito isto,o site dessa pessoa tem um tutorial legalsobre como compilar o PHP 5.5.24 no Mac OS X que foi atualizado para lidar com o Mac OS X 10.10.5 e também com o Mac OS X 10.11. E se você olhar o ./configurecomando, verá que essa pessoa está usando o --with-libxml-dir=/usr. Embora as informações sejam apresentadas como sendo do PHP 5.5.24, imagino que o processo para o PHP 5.6.14 deva ser semelhante, senão igual. Aqui está o ./configurecomando completo para referência:

./configure '--prefix=/usr' \
  '--mandir=/usr/share/man' \
  '--infodir=/usr/share/info' \
  '--sysconfdir=/private/etc' \
  '--with-apxs2=/usr/sbin/apxs' \
  '--enable-cli' \
  '--with-config-file-path=/etc' \
  '--with-config-file-scan-dir=/Library/Server/Web/Config/php' \
  '--with-libxml-dir=/usr' \
  '--with-openssl=/usr' \
  '--with-kerberos=/usr' \
  '--with-zlib=/usr' \
  '--enable-bcmath' \
  '--with-bz2=/usr' \
  '--enable-calendar' \
  '--disable-cgi' \
  '--with-curl=/usr' \
  '--enable-dba' \
  '--with-ndbm=/usr' \
  '--enable-exif' \
  '--enable-fpm' \
  '--enable-ftp' \
  '--with-icu-dir=/usr' \
  '--with-ldap=/usr' \
  '--with-ldap-sasl=/usr' \
  '--with-libedit=/usr' \
  '--enable-mbstring' \
  '--enable-mbregex' \
  '--with-mysql=mysqlnd' \
  '--with-mysqli=mysqlnd' \
  '--without-pear' \
  '--with-pear=no' \
  '--with-pdo-mysql=mysqlnd' \
  '--with-mysql-sock=/var/mysql/mysql.sock' \
  '--with-readline=/usr' \
  '--enable-shmop' \
  '--with-snmp=/usr' \
  '--enable-soap' \
  '--enable-sockets' \
  '--enable-sysvmsg' \
  '--enable-sysvsem' \
  '--enable-sysvshm' \
  '--with-tidy' \
  '--enable-wddx' \
  '--with-xmlrpc' \
  '--with-iconv-dir=/usr' \
  '--with-xsl=/usr' \
  '--enable-zip'

Responder2

A menos que você precise especificamente de uma versão mais recente, o PHP 5.5.27 vem com o OS X El Capitan.

Você pode descomentar (remover #) antes da linha LoadModule php5_module libexec/apache2/libphp5.sodentro do httpd.conf (use sudo nano /etc/apache2/httpd.confpara acessar).

informação relacionada