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.