web-dev-qa-db-fra.com

Avoir des problèmes en essayant d’installer OAUTH avec PECL dans MAMP sous mac OS lion

je suis nouveau dans la configuration des serveurs php, et j’y suis allé si d’autres articles connexes, semble que personne n’a la même erreur que j’ai… .. Je me sers de MAMP 2.0.2 et d’exécuter PHP 5.3.6, et j’essayais d’installer oAuth sur mon MAMP local à l’aide des commandes suivantes:

$ cd /Applications/MAMP/bin/php/php5.3.6/bin
$ ./pecl install oauth

cependant, cela retourne une telle erreur:

Notice: unserialize(): Error at offset 276 of 1133 bytes in Config.php on line 1050
ERROR: The default config file is not a valid config file or is corrupted.

Qu'est-ce qui se passe? PECL est intégré à MAMP, qui devrait fonctionner immédiatement. ...

Mettre à jour:

J'ai lu un article ailleurs qui suggère que les données du fichier de configuration, qui contient les chemins d'installation, sont incorrectes. J'ai donc modifié une valeur dans le fichier suivant:

/Applications/MAMP/bin/php/php5.3.6/conf/pear.conf

Ensuite, j'utilise la commande:

$ ./pecl install oauth

Ce qui commence à télécharger et décompresser, mais quand il essaie d’installer, il donne:

creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
running: make
/bin/sh /private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/libtool --mode=compile cc  -I. -I/private/tmp/pear/temp/oauth -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/include -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/main -I/private/tmp/pear/temp/oauth -I/Applications/MAMP/bin/php/php5.3.6/include/php -I/Applications/MAMP/bin/php/php5.3.6/include/php/main -I/Applications/MAMP/bin/php/php5.3.6/include/php/TSRM -I/Applications/MAMP/bin/php/php5.3.6/include/php/Zend -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2 -Wall -g   -c /private/tmp/pear/temp/oauth/oauth.c -o oauth.lo
mkdir .libs
cc -I. -I/private/tmp/pear/temp/oauth -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/include -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/main -I/private/tmp/pear/temp/oauth -I/Applications/MAMP/bin/php/php5.3.6/include/php -I/Applications/MAMP/bin/php/php5.3.6/include/php/main -I/Applications/MAMP/bin/php/php5.3.6/include/php/TSRM -I/Applications/MAMP/bin/php/php5.3.6/include/php/Zend -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -Wall -g -c /private/tmp/pear/temp/oauth/oauth.c  -fno-common -DPIC -o .libs/oauth.o
In file included from /private/tmp/pear/temp/oauth/oauth.c:14:
/private/tmp/pear/temp/oauth/php_oauth.h:20:10: 

fatal error: 'php.h' file not found

include "php.h"
     ^

1 error generated.

make: *** [oauth.lo] Error 1

ERROR: `make' failed

Encore une fois, que se passe-t-il?

27
David Chen

Je sais que c'est vieux, mais j'ai trouvé cette question tout en ayant un problème similaire.

MAMP n'est pas livré avec un tas des sources PHP 

  • Télécharger les composants MAMP et configurer
  • URL: http://www.mamp.info/en/downloads/index.html (i.e. MAMP_components_2.0.2.Zip)
  • Décompressez votre MAMP_components_2.0.2.Zip
  • Identifiez votre fichier php-5.x.x.tar.gz (où 5.x.x est votre version de PHP)
  • Si vous utilisez php> 5.4.10, téléchargez les sources de http://php.net/releases car elles ne figurent pas dans le téléchargement des composants MAMP (crédit pulkitsinghal dans les commentaires).
  • Créez un répertoire pour vos sources PHP: 

    mkdir -vp /Applications/MAMP/bin/php5/include

  • Décompressez php-5.x.x.tar.gz dans /Applications/MAMP/bin/php/php5.*/include ou dans/Applications/MAMP/bin/php5/include:

    tar zxvf php-5.x.x.tar.gz -C /Applications/MAMP/bin/php/php5.?.??/include

  • Renommez votre répertoire php-5.x.x en php (sans la numérotation des versions):

    mv /Applications/MAMP/bin/php/php5.2.17/include/php-5.?.?? /Applications/ MAMP/bin/php/php5.2.17/include/php

  • Configurez les sources PHP (cela créera les fichiers nécessaires, par exemple zend_config.h, tsrm_config.h, etc.):

    cd /Applications/MAMP/bin/php/php5.?.??/include/php

    ./configure

Le processus était pour un autre correctif mais cela a résolu les problèmes avec php.h non trouvé

Crédit à l'endroit où j'ai trouvé les réponses -:

Blog de Thomas Hunter

Processus de détail Google Doc

64
Stephen

J'ai eu le même problème en essayant de pecl install -f ssh2 avec MAMP. 

Voici comment je l'ai corrigé:

  1. MAMP ne fournit pas l’archive de code source pour PHP 5.4.10, donc téléchargez-la à partir de php.net
  2. Extrayez l’archive de code source dans /Applications/MAMP/bin/php/php5.4.10/include/php
  3. Exécutez ./configure pour configurer le code source de votre plate-forme (sans cette étape, l'installation de pecl échouera à la recherche d'un ensemble de fichiers d'en-tête).
  4. Réessayez votre installation pecl

(merci beaucoup à la réponse de Stephen qui est à peu près la même chose)

29
James Newell

Ceci est un complément à la réponse de Stephen et au commentaire de Greg

Lors de la compilation de xdebug 2.3.2 pour php 5.6.2 sur OSX 10.10.2, je n’ai pas pu me débarrasser de la 

Fichier 'zend_config.h' introuvable

erreur jusqu'à ce que j'ai ajouté l'option suivante à ./configure dans le dossier php:

./configure --without-iconv

Crédits à Cameron Browning

6
beniguet

Les modules PECL sont des modules compilés. Pour les installer, vous avez besoin des en-têtes PHP. Vous pouvez trouver les en-têtes sur php.net/downloads.php en vous assurant de télécharger une version qui correspond à votre version PHP. Ensuite, vous pouvez suivre ceci: Installer PHP OAuth dans l’environnement MAMP

1
sonique