1 votes

Impossible de compiler PHP 5.6.1 à partir des sources

J'essaie de compiler PHP 5.6.1 sur mon MacBook Pro, mais je ne parviens pas à surmonter tous les problèmes.

Je suis bloqué avec le message d'erreur à make :

clang: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:138: recipe for target 'libs/libphp5.bundle' failed
make: *** [libs/libphp5.bundle] Error 1

J'ai compilé Apache v. 2.4.10 à partir des sources avec les options configure :

sudo ./configure --prefi=/usr/local/apache2 --enable-so --enable-modules=most

Apache fonctionne normalement.

Mes options de configuration pour PHP :

sudo ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --disable-ipv6 --enable-dtrace --with-zlib --with-curl=/usr/local/cURL --enable-ftp --enable-mbstring --with-mcrypt=/usr/local/libmcrypt --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-opcache=no

Je n'arrive pas à passer le processus de fabrication. J'ai tout essayé : sudo make clean n'aide pas. J'ai réinstallé Xcode et CommandLineTools. Et essayé tout ce que j'ai pu trouver en cherchant sur le web mais sans succès.

Quelqu'un sait-il pourquoi ça ne marche pas ?

Mon dernier recours serait de réinstaller mavericks (si quelque chose a été écrasé ou cassé) mais c'est le dernier recours que je veux prendre et recommencer sur une nouvelle copie.

Merci pour votre aide.

En attendant mes recherches : PHP ne lance l'erreur que lorsqu'on essaie de le configurer avec mysqli.

Undefined symbols for architecture x86_64:
  "_dns_free", referenced from:
      _zif_dns_check_record in dns.o
      _zif_dns_get_record in dns.o
      _zif_dns_get_mx in dns.o
  "_dns_open", referenced from:
      _zif_dns_check_record in dns.o
      _zif_dns_get_record in dns.o
      _zif_dns_get_mx in dns.o
  "_dns_search", referenced from:
      _zif_dns_check_record in dns.o
      _zif_dns_get_record in dns.o
      _zif_dns_get_mx in dns.o
  "_res_9_dn_expand", referenced from:
      _php_parserr in dns.o
      _zif_dns_get_mx in dns.o
  "_res_9_dn_skipname", referenced from:
      _zif_dns_get_record in dns.o
      _zif_dns_get_mx in dns.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libs/libphp5.bundle] Error 1

Qu'est-ce que je rate ?

0 votes

Cette erreur est à la fin de la construction, nous devons connaître la première erreur. J'utiliserais un système de paquets lié à macports ou home-brew - ou pour PHP, regardez MAMP, etc.

0 votes

Bonjour, c'est la seule erreur que j'obtiens à make. Mais je dois utiliser opcache=no à configure ou il échoue parce qu'il ne peut pas lier l'architecture BSD. Je ne veux pas utiliser brew ou macports. Seulement les sources.

0 votes

Clang a trouvé une erreur et l'a signalée dans un journal - sans cela, nous ne pouvons pas vous aider (si vous ne voulez que les sources, vous devez être capable de déboguer ce genre de problème).

1voto

nvukovic Points 41

J'ai réussi à trouver le problème.

Supprimez l'installation précédente et ensuite :

--with-mysqli : J'ai utilisé le pilote MySql natif ( j'ai omis le chemin du dossier )

Ainsi, lorsque vous oubliez d'ajouter un module à votre compilation initiale et que vous êtes bloqué par une erreur bizarre, supprimez l'ancienne instance qui a été installée avec succès et effectuez l'opération suivante ./configure ; make clean ; make ; make install juste pour être sûr :)

Merci à David Parker de m'avoir aidé à résoudre ce problème.

Merci David.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X