LoginSignup
6
4

More than 5 years have passed since last update.

phpbrewでmysqlndをインストールする

Posted at

問題

phpbrewは,php拡張をインストール・管理する機能を提供しており,以下のようにphp拡張を追加することができます.

phpbrew ext install mysqlnd

しかし,macOS Sierra(10.12.6)にて,以下のようなエラーが出てしまい,インストールできない問題に遭遇しました.

configure: error: Cannot find OpenSSL's <evp.h>

この解決方法を書きます.

opensslをインストールする

まず,mysqlndの依存ライブラリであるOpenSSLをインストールしておいてください.

brew install openssl

Mac OS XからOpenSSLのヘッダを提供しなくなったようです.
詳しい話はこちらを.

Mac OS X El CapitanからOpenSSLのヘッダファイルが消えた話

pkg-configのパスを設定する

以下のように,mysqlndをビルドする時に,brew経由でインストールしたOpenSSLを見つけられるように,PKG_CONFIG_PATHを指定しておいてください.

export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig

mysqlndをインストールする

以下のコマンドで,mysqlndをインストールしてください.

PHP_OPENSSL_DIR=yes phpbrew ext install mysqlnd

PHP_OPENSSL_DIR=yesについて,
PHP :: Bug #72363 :: Cannot find OpenSSL evp.h

によれば,

The cause of this is because after running the command 'phpize' the configure script has a variable (PHP_OPENSSL_DIR) that is not set "yes"

訳) この問題の原因は,phpizeコマンドが走った後に,configureスクリプトが持つPHP_OPENSSL_DIRが"yes"に設定されていないことだ.

とあります.
PHP_OPENSSL_DIRが"yes"に設定されていないと,pkg-configを利用した探索が行われません.

このバグを回避するために,PHP_OPENSSL_DIRを自分で設定しています.

なお,場当たり的な対処であるため,何かもっと良い解決法をご存じの方がいらっしゃいましたらご教授いただければと思います.

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4