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

1

Eu recentemente atualizei do OS X Yosemite para o El Capitan, e eu precisei reinstalar o PHP. Então, eu fiz o download do php (versão 5.6.14), executei o arquivo ./configure e, em seguida, executei sudo make . No entanto, ao fazer isso, a compilação falha com as seguintes mensagens:

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 essa mensagem enquanto estava no Mac OS X 10.9.5 (Yosemite).

Como resolvo esta mensagem? Eu tentei desativar a proteção de integridade do sistema (SIP) sem sucesso.

    
por Leo Galleguillos 10.10.2015 / 22:14

2 respostas

2

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

brew link libxml2 --force

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

Dito isto, encontrei um problema semelhante discutido neste Nokogiri Gist - hilariamente intitulado" O que fazer se a libxml2 estiver sendo um idiota "- e as dicas apontam para apontar explicitamente para o material LibXML2 assim:

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

Mas, claro, isso seria para as opções de configuração do Nokogiri. Mas olhar para a documentação oficial do PHP explica o seguinte:

The optional --with-libxml-dir directive is used to specify the location of libxml on the system that PHP is being compiled on, otherwise only the default locations are scanned.

Portanto, saber que parece adicionar --with-libxml-dir ao seu comando ./configure - algo com um caminho definido como abaixo - deve funcionar:

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

Dito isto, o site dessa pessoa tem um bom tutorial sobre 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ê examinar o comando ./configure , verá que essa pessoa está usando --with-libxml-dir=/usr . Enquanto a informação é apresentada como sendo para o PHP 5.5.24, imagino que ele processe para o PHP 5.6.14 deve ser semelhante se não for o mesmo. Aqui está o comando ./configure 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'
    
por 15.10.2015 / 07:36
1

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

Você pode remover o comentário (remover #) antes da linha LoadModule php5_module libexec/apache2/libphp5.so dentro do httpd.conf (use sudo nano /etc/apache2/httpd.conf para acessar).

    
por 10.10.2015 / 22:36