phpizeを使ってphpの再コンパイルをすることなくmysqliを追加する
mysqliを使ったソースをサーバー上で動かそうとしたときに以下のエラーが出た
Fatal error: Class 'mysqli' not found in /var/www/login.php on line 101
mysqliが使えるかどうかはphp -mで確認する。
php -m
mysqliを使う場合、本来phpをコンパイルする際に--width-mysqliオプションをつけないといけない。
でもphpizeコマンドを使うと、わざわざphpを再コンパイルすることなく拡張モジュールの追加が可能となる。
$ cd "phpのソースがあるディレクトリ" $ cd ext/mysqli $ phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 $ ./configure $ make $ make test $ make install Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20090626/ Installing header files: /usr/local/include/php/
インストール後、php.iniの最後に以下を追加すればok
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626/" extension=mysqli.so
参考サイト
PHP: phpize で共有 PECL 拡張モジュールをコンパイルする方法 - Manual
ソースコードをbuildしてインストールしたPHPにmysqliが入っていない時の対処法 - Qiita