最新のMySQL5.5をPHPから利用するために、PHPの「php-mysql」(mysql拡張モジュール)をインストールしようとしたところ、依存するパッケージが無いというエラーメッセージが出て、インストールに失敗しました。
その解決方法をまとめました。
依存しているパッケージ、libmysqlclient.so.16(libmysqlclient_16)(64bit)を手動で追加する。
以下の記事を参考にしました。
CentOS 5でPHP 5.2.10 + MySQLを使う | wdsdx.com
http://www.wdsdx.com/centos_php_mysql2
2009/08/11(火) 21:14 - saboten-dx
RHEL(CentOS) 5でPHP 5.2.10を使う
以前ですね、「CentOS 5 で PHP 5.2.8 以上を使う」でlibmysqlclient.so.16ライブラリ(MySQL 5.1系クライアント)がRHEL5系のOSにはないので、下記のようなエラーが出たり、インストールできなかったりという時の解決方法を紹介しました。
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/mysql/mysql.so' - libmysqlclient.so.16: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/zend/lib/php_extensions/mysqli.so' - libmysqlclient.so.16: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/zend/lib/php_extensions/pdo_mysql.so' - libmysqlclient.so.16: cannot open shared object file: No such file or directory in Unknown on line 0
サードパーティのyumリポジトリ「remi」を使って、mysql-serverを5.1にアップグレードする方法でした。
ところが時間がたって、サードパーティリポジトリよりもう少し信頼性の高い解決方法ができました。
1つ目は、Zend Serverを導入する方法。Zend ServerはPHPのアプリケーションサーバでVer.4では、PHP5.2.10を含んでいます。
2つ目は、MySQLの公式サイトでRHEL5用のRPMを配っています。その中のShared compatibility librariesという、libmysql.soのコンパチパッケージをインストール方法です。
今回は、こちらの方法を紹介します。
MySQLのダウンロードはユーザ登録(無料)が必要なせいか、リポジトリがありませんのでダウンロードします。
もう一点、注意事項ですがリポジトリがないので、バージョンアップの監視も更新も毎回手作業です!
MySQLサイトのアカウントを取って、ログインしておいてください。
1. MySQL-shared-compatのRPMダウンロード
MySQL公式サイトからで、「ダウンロード」をクリックして、開きます。
MySQL Community Serverの5.1の「Download」をクリックして、Red Hat Enterprise Linux 5 RPM (x86)をクリックしてください。
アーキティクチャやRHELのバージョンが違う人は、自分に合わせたものを選びます。
Shared compatibility libraries(3.23, 4.x, 5.x libs in same package)のPick a mirrorをクリックし、ミラーサイトの一覧から適当なのを選んでください。
MySQL-shared-compat-5.1.37-0.rhel5.i386.rpm
をダウンロードします。
URLさえわかれば認証は関係なさそうなのです。wgetでサーバ上に直接取得できました。
2. MySQL-shared-compatのインストール
rpmなので何も考えずインストールするだけです。
# rpm -Uvh MySQL-shared-compat-5.1.37-0.rhel5.i386.rpm
libmysqlclient.soが何種類かインストールされて、PHPの最新版をインストールできるようになります。
サードパーティは最新バージョンがあって、使い勝手はいいのですが、業務的に考えると信頼性やサポートがなかったり、運用保守フェーズで非常に障害になります。担当が替わることも考えて、できるだけRPMを使うという方針を持ってサーバ構築の勉強をした方がいいと思ってます。