スポンサーリンク

[Mac/Mojave] phpbrewでPHP7.4がインストールできないときの対処法

環境

  • Mac Mojave
  • phpbrewインストール済み

試したこと

利用可能なバージョンを確認

$ phpbrew known
Warning! The usage of PHP older than 7.2.0 as the interpreter is deprecated.
Please set the system interpreter using 'phpbrew system <version>'.
See https://github.com/phpbrew/phpbrew/wiki/System-Interpreter for details.
Read local release list (last update: 2020-02-14 10:08:01 UTC).
You can run `phpbrew update` or `phpbrew known --update` to get a newer release list.
7.4: 7.4.2, 7.4.1, 7.4.0 ...
7.3: 7.3.14, 7.3.13, 7.3.12, 7.3.11, 7.3.10, 7.3.9, 7.3.8, 7.3.7 ...
7.2: 7.2.27, 7.2.26, 7.2.25, 7.2.24, 7.2.23, 7.2.22, 7.2.21, 7.2.20 ...
7.1: 7.1.33, 7.1.32, 7.1.31, 7.1.30, 7.1.29, 7.1.28, 7.1.27, 7.1.26 ...
7.0: 7.0.33, 7.0.32, 7.0.31, 7.0.30, 7.0.29, 7.0.28, 7.0.27, 7.0.26 ...
5.6: 5.6.40, 5.6.39, 5.6.38, 5.6.37, 5.6.36, 5.6.35, 5.6.34, 5.6.33 ...
5.5: 5.5.38, 5.5.37, 5.5.36, 5.5.35, 5.5.34, 5.5.33, 5.5.32, 5.5.31 ...
5.4: 5.4.45, 5.4.44, 5.4.43, 5.4.42, 5.4.41, 5.4.40, 5.4.39, 5.4.38 ...

インストールしてみる

phpbrew install 7.4.2 +default

エラーになりました。後半のログ抜粋

===> Checking patches...
Checking patch for php5.3.29 multi-sapi
Checking patch for php5.3.x on 64bit machine when intl is enabled.
Checking patch for openssl dso linking patch
4 changes patched.
Checking patch for php5.6 with openssl 1.1.x patch.
===> Building...
Error: Make failed:
The last 5 lines in the log file:
      _zif_openssl_x509_parse in openssl.o

      _zif_openssl_csr_sign in openssl.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: *** [sapi/cli/php] Error 1

解決策

以下のコマンドでインストールしてみてください。

phpbrew install 7.4.2 +default +mysql +pdo \
+bz2="$(brew --prefix bzip2)" +zlib="$(brew --prefix zlib)" \
+curl="$(brew --prefix curl)" +iconv="$(brew --prefix libiconv)" +openssl="$(brew --prefix openssl)"

やったね!

(省略)
To use the newly built PHP, try the line(s) below:

    $ phpbrew use php-7.4.2

Or you can use switch command to switch your default php to php-7.4.2:

    $ phpbrew switch php-7.4.2

Enjoy!

インストールされていることを確認

$ phpbrew list
* (system)
  php-7.4.2
よろこぶ人

PHPのバージョンを変更

さあ、あとは変更するだけ、と思いきや

$ phpbrew switch php-7.4.2
Invalid argument php-7.4.2

あれれー?エラーですね。設定が足りないようです。

私はzshを使っているので.zshrcに以下で設定を追加。(bashの人は.bashrcに適宜やってください)

echo "source ~/.phpbrew/bashrc" >> ~/.zshrc

そしたら、もう一度、phpのバージョンを変更をトライ。

phpbrew switch php-7.4.2

できた!確認してみましょう。

$ php -v
PHP 7.4.2 (cli) (built: Feb 18 2020 16:41:36) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

無事、PHP7.4にできました!めでたしめでたし。

コメント

タイトルとURLをコピーしました