さくらのVPS

最新のMySQL5.5をPHPから利用するために、PHPの「php-mysql」(mysql拡張モジュール)をインストールしようとしたところ、依存するパッケージが無いというエラーメッセージが出て、インストールに失敗しました。
その解決方法をまとめました。

対処方法

依存しているパッケージ、libmysqlclient.so.16(libmysqlclient_16)(64bit)を手動で追加する。

参考

以下の記事を参考にしました。

CentOS 5でPHP 5.2.10 + MySQLを使う | wdsdx.com
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でサーバ上に直接取得できました。

# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-shared-compat-5.1.37-0.rhel5.i386.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/

2. MySQL-shared-compatのインストール

rpmなので何も考えずインストールするだけです。

# rpm -Uvh MySQL-shared-compat-5.1.37-0.rhel5.i386.rpm

libmysqlclient.soが何種類かインストールされて、PHPの最新版をインストールできるようになります。

サードパーティは最新バージョンがあって、使い勝手はいいのですが、業務的に考えると信頼性やサポートがなかったり、運用保守フェーズで非常に障害になります。担当が替わることも考えて、できるだけRPMを使うという方針を持ってサーバ構築の勉強をした方がいいと思ってます。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-05-02 (月) 14:14:07 (4743d)