web-dev-qa-db-ja.com

MacOS Mojaveへのアップデート後にPHPIZEを使用できません

PHPIZEを実行して以下のエラーが発生した場合、どうすればよいですか?私はすでに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

より良い解決策の可能性-ヘッダーファイルを強制的に再インストールします。私にとってシステム全体の多くの問題を修正しました。

次のコマンドを実行すると、開発者ツールのヘッダーファイルが再インストールされ、問題が修正されます。

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

何らかの理由で、Xcode command line toolsがMacに完全にインストールされていないことがわかりました。最後に、次のようにしてこの問題を解決しました。

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

注:手順2を実行した後、ディレクトリに.pkgファイルがない場合。たぶん、この解決策はあなたを助けません。

3
jankergg

phpizeを見つけて編集し、

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

私のphpizeスクリプトでは、それはそのようなものです

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//'`
}

ヘッダーファイルがあることを確認したが、phpizeスクリプトのconfigureが間違っている場合、行を編集できます

prefix='/usr/local/php7'

およびphp.h

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

そうでない場合は、自分でPHPをコンパイルできます

2
Mattia Dinosaur