web-dev-qa-db-fra.com

"Impossible de trouver config.m4." lors de l'exécution de phpize dans l'installation de apd en utilisant pecl

J'essaie d'avoir accès à rename_function en PHP, et pour cela j'ai besoin de PECL APD. J'utilise Ubuntu 14.04 LTS.

J'essaie de lancer Sudo pecl install apd, mais j'obtiens:

 téléchargement de apd-1.0.1.tgz ... 
 Démarrage du téléchargement de apd-1.0.1.tgz (36,643 octets) 
 .......... done: 36 643 octets 
 15 fichiers sources, générant 
 en cours d'exécution: phpize 
 Impossible de trouver config.m4. 
 Assurez-vous que vous exécutez/usr/bin/phpize 'dans le répertoire source de niveau supérieur de 
 le module 
 
 Si la commande échouait avec' phpize: not found ', vous devez installer le paquet php5-dev. Vous pouvez le faire en lançant 'apt-get install php5-dev' en tant qu'utilisateur root ERROR: `phpize 'a échoué 

Devrais-je exécuter cette commande à partir d'un certain répertoire?

Cette fois, j'ai essayé avec les options verbeuses activées, au cas où il y aurait un indice dans les journaux:

 Sudo/usr/bin/pecl -vvvvvv install apd 
 Avertissement: file_exists (): Impossible de trouver le wrapper "channel" - avez-vous oublié de l'activer lors de la configuration de PHP? dans PEAR/Downloader/Package.php à la ligne 1518 
 
 Avertissement: is_file (): Impossible de trouver le "canal" du wrapper - avez-vous oublié de l'activer lors de la configuration de PHP? dans PEAR/Downloader/Package.php à la ligne 1528 
 
 Avertissement: is_file (): Impossible de trouver le "canal" du wrapper - avez-vous oublié de l'activer lors de la configuration de PHP? dans PEAR/Downloader/Package.php à la ligne 1528 
 Téléchargement "http://pecl.php.net/get/apd-1.0.1.tgz"
downloading apd-1.0.1. tgz ... 
 Démarrage du téléchargement de apd-1.0.1.tgz (36,643 octets) 
 .......... done: 36,643 octets 
 + cp/tmp/pear/temp/tmpNUpEpz/apd-1.0.1/LICENCE /usr/share/php/doc/apd/.tmpLICENSE[.____.¹.addition à la transaction: chmod 664/usr/share/php/doc/apd/.tmpLICENSE 
 ajout à la transaction: renommez /usr/share/php/doc/apd/.tmpLICENSE /usr/share/php/dp/apd/LICENSE[.____. dépendance à la transaction: installed_as LICENSE/usr/share/php/doc/apd/LICENCE/usr/share/php/doc /apd
+ cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/README/usr/share/php/doc/apd/.tmpREADME 
 ajout à la transaction: chmod 664 /usr/share/php/doc/apd/.tmpREADME
adding à la transaction: renommer/usr/share/php/doc/apd /.tmpREADME /usr/share/php/doc/apd/README
adding à la transaction: installed_as README/usr/share/php/doc/apd/README/usr/share/php/doc /apd
+ cp/tmp/pois r/temp/tmpNUpEpz/apd-1.0.1/pprofp /usr/bin/.tmppprofp[.____.hner+ chmod + x /usr/bin/.tmppprofp[.____.¹additionner à la transaction: chmod 775/usr/bin/.tmppprofp 
 en ajoutant à la transaction: renommez /usr/bin/.tmppprofp /usr/bin/pprofp
adding à la transaction: installed_as pprofp/usr/bin/pprofp/usr/bin/
 + cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/pprof2calltree /usr/bin/.tmppprof2calltree[.____.hner+ chmod + x /usr/bin/.tmppprof2calltree
 ajout à la transaction: chmod 775 /usr/bin/.tmppprof2calltree
adding à la transaction: renommer /usr/bin/.tmppprof2calltree /usr/bin/pprof2calltree[.____.TERNadding à la transaction: installed_as pprof2calltree/usr/bin/pprof2calltree/usr/bin /
15 fichiers sources, bâtiment 
 en cours de construction dans /tmp/pear/temp/pearf7LGca
running: phpize 
 Impossible de trouver config. m4. 
 Assurez-vous que vous exécutez '/ usr/bin/phpize' dans le répertoire source de niveau supérieur du module 
 
 Si la commande a échoué avec 'phpize: not found' alors vous devez installer l Paquet php5-devVous pouvez le faire en lançant 'apt-get install php5-dev' en tant qu'utilisateur racine après 12 opérations de fichiers 
 + rm /usr/share/php/doc/apd/.tmpLICENSE
 + rm /usr/share/php/doc/apd/.tmpREADME[.____. 311++ rm /usr/bin/.tmppprofp
+ rm /usr/bin/.tmppprof2calltree
 ERREUR: échec de phpize 
 
 Avertissement: unlink (/ tmp/glibctestRdKE0K): Aucun fichier ou répertoire de ce type dans System.php à la ligne 214 
 
 Avertissement: unlink (/ tmp/pear/temp/pearf7LGca): aucun fichier ou répertoire de ce type dans System.php à la ligne 214 
12
Anthony

Ceci sera un bref résumé de tout ce qui est nécessaire pour utiliser APD en tant que profileur PHP. J'espère que cela répondra à vos besoins. Ce résumé s’applique à PHP 5.6.2 APD 1.0.1 et peut être incorrect pour d’autres versions.

Tout d’abord, ne le démarrez pas si vous ne vous êtes pas assuré de ces deux choses:

  • Désactivez la plate-forme Zend ou tout autre optimiseur PHP. En général, vous devez désactiver toutes les extensions Zend.
  • Installez une version compatible avec le débogage de PHP (--enable-debug)

Si vous avez une configuration PEAR fonctionnelle, vous devez configurer APD comme dans this article. N'oubliez pas d'essayer les packages de distribution non plus. Sinon, APD construit comme suit:

  • Extraire l'archive.
  • Changer de répertoire dans tarball.
  • Exécuter <Apache root>/bin/phpsize
  • Exécutez ./configure (ajoutez --with-php-config=<Apache root>/bin/php-config si la configuration échoue.)
  • Compilez et installez le tout en utilisant
     fabrique 
     fabrique installe 
    
  • Éditez php.ini et ajoutez au moins
     zend_extension =/apd.so 
     apd.statement = 1 
     apd.tracedir =/tmp/apd-traces 
    
  • Créez le répertoire de sortie spécifié dans php.ini

Vous devez maintenant redémarrer Apache, mais avant cela, vérifiez que l'extension APD fonctionne correctement. Pour faire simplement courir PHP

/bin/php 

Aucun avertissement ne doit être donné si l'extension est chargée correctement. Si vous obtenez un message d'erreur, quelque chose comme l'extension "apd.so" ne peut pas être chargée, il y a un problème. Vérifiez si vous avez compilé avec la version correcte d'Apache/PHP et si vous utilisez la même chose maintenant.

Si PHP ne se plaint de rien, entrez:

<?php phpinfo(); ?>

et vérifiez quelques lignes sur APD. Si vous les trouvez, vous avez terminé.

Vous aurez également besoin de traces pour pouvoir commencer à suivre votre Apache afin de permettre au module PHP de charger APD. Ensuite, vous devrez identifier le script à suivre. Ajoutez l'appel APD en haut du script:

apd_set_pprof_trace();

Ensuite, faites quelques demandes et supprimez à nouveau l'instruction pour éviter de causer davantage de tort. Maintenant, jetez un coup d'œil au répertoire de trace. Vous devriez trouver les fichiers avec un schéma de nommage de pprof[0-9]*.[0-9] ici. Décodez-les à l'aide de l'outil pprofp à partir de votre archive source APD. Exemple:

/bin/php/pprofp -u 

Rediriger stdout si nécessaire. Utilisez -t au lieu de -u (sortie récapitulative) pour obtenir des arbres d’appel. Lorsque vous créez des traces avec -t, vous obtenez également une sortie récapitulative, mais elle ne contient pas les durées par appel. Je suggère de toujours créer à la fois un arbre d’appel et une trace récapitulative.

J'espère que cela aide, Je vous recommande peine de lire le lien mentionné ci-dessus .

MODIFIER:

La commande phpize est destinée à être exécutée au plus haut niveau d'un répertoire source d'extension (ce répertoire source doit contenir un nom de fichier config.m4). Voir this pour plus d'informations.

16
balintpekker

Comme par erreur:

Si la commande a échoué avec phpize: not found, vous devez installer le paquet php5-dev.

Vous pouvez le faire en exécutant apt-get install php5-dev en tant qu'utilisateur root

Je pense que vous devriez installer le développement de module pour PHP via:

Sudo apt-get install php5-dev

Cela devrait vous fournir le binaire phpize nécessaire à la compilation des sources d’extension Pecl. Et assurez-vous que cela est dans votre PATH.

0
kenorb