Phpbrewでphpのバージョン管理をしているのですが、もろもろコンパイルに苦労したときの話。
私のmacの環境
- homebrewにてmysql5.7と8.0がインストールされており稼働中。
- PHP7.4とPHP8.0が必要
phpとmysqlの対応表
PHP | mysql |
---|---|
7.4 | 5.7 |
8.0 | 8.0 |
phpbrewでphpのインストール
8.0に関してはあんまり苦労しなかった。
phpbrew install 8.1.0
+mysql="$(brew --prefix mysql)"
+pdo= +gd="$(brew --prefix gd)"
+bz2="$(brew --prefix bzip2)" +apxs2= +json= +phar=
+xml= +curl="$(brew --prefix curl)" +zip=
-- --with-mysqli=/usr/local/opt/mysql/bin/mysql_config
--with-openssl-dir=/usr/local/Cellar/openssl@1.1
--with-zlib-dir=/usr/local/opt/zlib
これでなんとなく入った
7.4.2をインストールしようとして、mysqlのインストールディレクトリの指定などを変更して
sockをmysql5.7が動いているものを指定。あとは8.0とほぼおんなじ。
phpbrew install 7.4.2
+mysql="$(brew --prefix mysql@5.7)" +pdo=
+gd="$(brew --prefix gd)"
+bz2="$(brew --prefix bzip2)" +apxs2= +json= +phar= +xml=
+curl="$(brew --prefix curl)" +zip=
-- --with-mysqli=/usr/local/opt/mysql@5.7/bin/mysql_config
--with-openssl-dir=/usr/local/Cellar/openssl@1.1
--with-mysql-sock=/tmp/mysql2.sock
--with-zlib-dir=/usr/local/opt/zlib
エラー発生
なんでよ。
発生したエラーはmysqlのライブラリーがちがいますよとのこと。
configure: error: wrong mysql library version or lib not found. Check config.log for more information.
いろいろ調べた結果
phpbrew install 7.4.2
+mysql="$(brew --prefix mysql@5.7)" +pdo=
+gd="$(brew --prefix gd)"
+bz2="$(brew --prefix bzip2)"
+apxs2= +json= +phar= +xml= +curl="$(brew --prefix curl)"
+zip= -- --with-mysqli=mysqlnd
--with-openssl-dir=/usr/local/Cellar/openssl@1.1
--with-mysql-sock=/tmp/mysql2.sock --with-zlib-dir=/usr/local/opt/zlib
--with-mysqliにmysql_configを指定していたのをmysqlndに変更したら入りました。
理由はよくわかりません。8.0のときはmysql_configを設定していても問題なかったのに
5.7を指定してphpをコンパイルしようとするとエラーが出る謎。
誰かの参考になれば