web-dev-qa-db-fra.com

Impossible d'utiliser PHPIZE après la mise à jour vers MacOS Mojave

Que dois-je faire lorsque j'exécute PHPIZE et que j'obtiens l'erreur ci-dessous? J'ai déjà installé les outils de ligne de commande xcode.

grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:        
Zend Module Api No:     
Zend Extension Api No:
18
delphirules

Meilleure solution potentielle - forcez la réinstallation des fichiers d'en-tête. Correction d'une tonne de problèmes pour moi à l'échelle du système.

L'exécution de la commande suivante réinstalle les fichiers d'en-tête des outils de développement et devrait résoudre le problème.

$ Sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
60
donatJ

Pour une raison quelconque, j'ai trouvé Xcode command line tools n'était pas complètement installé sur mon Mac, enfin j'ai résolu ce problème comme suit:

 1. xcode-select --install
 2. cd /Library/Developer/CommandLineTools/Packages/ 
 3. open macOS_SDK_headers_for_macOS_10.14.pkg

Remarque: après avoir effectué l'étape 2, s'il n'y a pas de .pkg fichier dans le répertoire. peut-être que cette solution ne vous aidera pas.

3
jankergg

trouver le phpize et le modifier,

~$ whereis phpize
phpize: /usr/local/bin/phpize
~$ vim  /usr/local/bin/phpize

dans mon script phpize c'est comme ça

prefix='/usr/local/php7'   ## where you should edit
datarootdir='/usr/local/php7/php'
exec_prefix="`eval echo ${prefix}`"
phpdir="`eval echo ${exec_prefix}/lib/php`/build"
includedir="`eval echo ${prefix}/include`/php"
...

phpize_get_api_numbers()
{
  # extracting API NOs:
  PHP_API_VERSION=`grep '#define PHP_API_VERSION' $includedir/main/php.h|$SED 's/#define PHP_API_VERSION//'`
  ZEND_MODULE_API_NO=`grep '#define ZEND_MODULE_API_NO' $includedir/Zend/zend_modules.h|$SED 's/#define ZEND_MODULE_API_NO//'`
  ZEND_EXTENSION_API_NO=`grep '#define ZEND_EXTENSION_API_NO' $includedir/Zend/zend_extensions.h|$SED 's/#define ZEND_EXTENSION_API_NO//'`
}

si vous confirmez que vous disposez du fichier d'en-tête mais que le script phpize configure est incorrect, vous pouvez modifier la ligne

prefix='/usr/local/php7'

et php.h est dans

$ pwd
/usr/local/php7/include/php/main
$ ls  php.*
php.h

sinon, vous pouvez compiler php par vous-même

2
Mattia Dinosaur