[[さくらのVPS]]

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

*対処方法 [#xfd660d3]
依存しているパッケージ、libmysqlclient.so.16(libmysqlclient_16)(64bit)を手動で追加する。

*参考 [#oa15ad2f]
以下の記事を参考にしました。

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でサーバ上に直接取得できました。

# 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