Impossible de compiler PHP 5.6.1 à partir des sources


1

J'essaie de compiler PHP 5.6.1 sur mon MacBook Pro mais je n'arrive pas à résoudre tous les problèmes.

Je suis coincé 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 du source avec les options de configuration suivantes:

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 ne peux pas passer le processus de fabrication. J'ai tout essayé: sudo make cleança n'aide pas. J'ai réinstallé Xcode et CommandLineTools. Et j'ai essayé tout ce que je pouvais trouver en cherchant sur le Web, mais sans succès.

Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas?

Mon dernier recours serait de réinstaller des francs-tireurs (si quelque chose était écrasé ou cassé), mais c’est le dernier recours que je souhaite reprendre et tout recommencer à zéro.

Merci pour votre aide.

Dans l’attente de mes recherches: PHP ne renvoie que l’erreur lorsque vous essayez 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?


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

Bonjour, c’est la seule erreur que j’obtiens. Mais je dois utiliser opcache = no lors de la configuration ou cela échoue car il ne peut pas lier l’architecture BSD. Je ne veux pas utiliser de la bière ou des macports. Seulement des sources.
nvukovic

clang a trouvé une erreur et l’a signalée dans un journal - sans quoi nous ne pourrons pas vous aider (si vous ne voulez que des sources, vous devez être en mesure de résoudre ce type de problème)
Mark

Réponses:


1

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

Supprimez l'installation précédente, puis:

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

Donc, lorsque vous oubliez d’ajouter un module à votre compilation initiale et que vous êtes bloqué par une sorte d’erreur bizarre, supprimez l’ancienne instance qui a été installée avec succès et faites le ./configure ; make clean ; make ; make installjuste pour être sûr :)

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

Merci David.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.