いよいよMySQL編、ソースからビルドすべきか?:仕事で使える魔法のLAMP(44)
今回から、オープンソースのRDBMSである「MySQL」の環境構築に話題を移します。まずはソースコードを探して入手と行きたいところですが、MySQLの場合はソースコードからのビルドが最善の策かどうかを考える必要があります(編集部)
まずはソースコードを探そう
LAMP環境をビルドして構築するというテーマで始まった本連載ですが、今回からはLAMPの「M」、MySQLについての解説に入ります。ソフトウェアのビルドという行為の基本から始まって、Apache HTTP Server(以下Apache)、PHPと進んできましたが、MySQLの環境を整えるとようやくLAMP環境が完成します。
MySQLは皆さんご存じの通り、リレーショナルデータベース管理システム(RDBMS)というカテゴリに入るデータベース管理システムです。Webアプリケーションも、ちょっと規模が大きくなればRDBMSが欠かせません。そして、Webアプリケーションの世界では、MySQLが定番のRDBMSとなっていましたし、今でもそれは変わりません。
日本ではMySQLよりも日本語情報が豊富で、RDBMSとしての完成度が高かったPostgreSQLを利用する人の多かった時期が長く続いていました。しかしIPAの調査によると、2009年にはビジネスの現場での利用率でMySQLがPostgreSQLを上回っています。
MySQLはGPL(GNU General Public License)に基づくフリーソフトウェアです。一方で開発元のオラクルはGPL適用外となる有償版も提供しています。GPLライセンスに従うと、MySQLを利用した派生物を第三者に引き渡す場合、そのソースコードも求められれば引き渡さなければなりません。しかし、これは企業活動では受け入れられないこともあります。そのようなときは有償版を使うわけです。有償版には、サポートが受けられる、バックアップなどの関連製品が利用できるなどの利点もあります。
本連載ではもちろんフリーソフトウェアのMySQLを利用します。MySQLの公式Webサイトのトップページを開くと、有償版であるEnterprise Editionが前面に出ていて、あたかも有償データベースであるかのような雰囲気です(図1)。取りあえずビルドしてみるために、ソースコードをダウンロードしたいのですが、どこにあるのかがちょっと分かりにくくなっています。
ソースコードをダウンロードするには、図1のページの上部にある「ダウンロード(GA)」というタブをクリックしてください。MySQLのオープンソース版である、Community Serverのダウンロードページへのリンクが見つかります(図2)。
図2のWebページの右側を見ると、最近リリースされたソフトウェアのバージョンが表示されています。図2を見ると、Community Serverは5.5と5.0の2つのメジャーバージョンのリリースのお知らせがあります。つまり、以前のバージョンのメンテナンスも続いているわけです。本稿執筆時点では、最新バージョンは5.5で、5.0と5.1のメンテナンスも続いています。本連載では基本的に最新のものを使うことにしていますので、5.5を使うことを前提に話を進めます。
MySQLのサイトは、ある程度は日本語化が進んでいますが、完全ではありません。実際、図2のWebページの表記も英語です。ドキュメントを探すと、1つ前のメジャーリリースである5.1系向けのものには日本語版があるものの、5.5系に向けたものには日本語版がありません。とはいえ、5.1と5.5は多くの部分が共通しています。英語が苦手な方は5.1の日本語版を参照しつつ、5.5の英語ドキュメントを読む、というようなやり方で問題ないと思います。
それではソースコードをダウンロードしましょう。図2左側にあるメニューから「MySQL Community Server」をクリックします。すると最新バージョン(本稿執筆時は5.5.21)のダウンロードページが表示されます(図3)。Generally Available(GA)という表記がありますが、これは開発版ではなく、広く一般に公開した安定版という意味です。
「Select Platform」の下にあるドロップダウンリストをクリックすると、OSを選択できます。OSごとにダウンロードするファイルを別々に用意しているということは、ビルド済みのバイナリも提供しているということです。これはApacheやPHPではなかったことです。Linux向けのMySQLであれば、主要ディストリビューションに向けたパッケージがそろっていますし、ディストリビューションに依存しない汎用のバイナリもあります。
目当てのソースコードのダウンロードページを開くには、ドロップダウンリストの一番下にある「Source Code」をクリックします。クリックすると、たくさんのダウンロードリンクが出てきますが、これはLinuxの各種ディストリビューションに向けたパッケージをビルドするためのソースコードです。汎用的に使えるソースコードをダウンロードするには、末尾にある「Generic Linux(Architecture Independent), Compressed TAR Archive」という欄の「Download」ボタンをクリックします(図4)。
ダウンロードボタンを押すと、ユーザー登録か、ログインを求める画面になります(図5)。もちろん登録しても良いですが、面倒であれば下にある「No thanks, just take me to the downloads!」というリンクをクリックします。その後は、各国のミラーサイト並ぶページが現れますので、任意のサイトを選んでリンクをクリックすればダウンロードできます。ソースコードを入手したら、第10回で紹介した手順で、中身が真正であるかどうかを忘れずに確認しましょう。
MySQLはビルドするのが最善の策か?
ソースコードを入手したものの、MySQLの場合は果たしてビルドするのが良いのかどうか検討すべきでしょう。と言っても、Linuxのパッケージ管理システムを使ってインストールすることを考えるという意味ではありません。
ビルドする理由の1つとして、最新のリリースを使いたいが、正体の分からないバイナリパッケージはインストールしたくない、ということが挙げられます。パッケージ管理システムを使うときは、このようなことを心配しなければならないかもしれませんが、MySQLの場合はApacheやPHPとは違い、最新のソースコードだけでなく、「公式バイナリ」もダウンロード可能になっています。公式バイナリであれば、信頼性もソースコードとほぼ同等と考えられるので、ビルドする理由が弱くなります。
OSやディストリビューションに依存しない構築手順を確立したいという目的も考えられますが、MySQLの公式バイナリは、Linuxの主要ディストリビューションだけでなく、Mac OS X、FreeBSD、Solarisなど多様なOSに向けて、それぞれ準備しています。Linux向けのバイナリにも、ディストリビューション非依存の単なるアーカイブのバイナリがあります。依存する外部ソフトウェアもわずかで、環境に合わせてビルドしたいというようなこともあまりありません。
というわけで、公式バイナリのおかげで、ApacheやPHPよりも環境を作りやすいというのも事実です。ここまで状況が整っているのに、ビルドしなければならないという状況は、ビルド時にしかできない設定を制御したいという場合です。このときばかりはビルドしなければなりません。使いたいモジュールや、バイナリに埋め込むデフォルト値などはビルド時にしか指定できません。
以上で解説した事情を踏まえて、ビルドするか否かを決定すると良いでしょう。
Apacheのメジャーバージョンアップ
最後に、がらっと話題が変わりますが、Apacheの次のメジャーバージョンである2.4.1がついに登場しました。2.3が飛んでいますが、これは、2.3が開発バージョンという位置付けになっているためです。奇数が開発版、偶数が安定版という、ほかのソフトウェアでも見られるリリース手法です。
2.4では、これまでの連載で解説した内容のいくつかが通用しなくなります。これらの変更点については、MySQL編が終了した後に解説したいと思います。それまで、Apacheは2.2系列のまま進めることにします。なお、2.2系も先月末に2.2.22がリリースされています。改良内容の中には、脆弱性への対応もあります。速やかにアップデートしましょう。
次回は、MySQLをビルドする環境の整備について解説します。
- CMakeでMySQLをビルドしてみる
- MySQLのビルドに欠かせないCMakeを準備する
- いよいよMySQL編、ソースからビルドすべきか?
- PHPでセッションを利用するための設定
- クライアントがアクセスできる範囲を制限する
- エラーメッセージをどう扱うか?
- ファイルのアップロードを制限する
- リクエストデータを受け取る変数の扱い
- マジッククオート機能には頼らない
- 安全を考えてPHPの実行時設定を調整する
- Apacheの設定ファイルでPHPの設定を変える
- PHPの設定ファイルを作って配置してみる
- PHPスクリプトを実行できるようにする準備
- PHPエクステンション組み込みの仕上げ
- 単純なデータを管理するDBMを使えるようにする
- エクステンションの組み込み状況を確認する
- PHPでデータベースを使う準備をする
- XMLを処理できるようにする
- エクステンションを有効にしてビルドに挑戦!
- PHPテスト失敗の原因を追究する
- 早速PHPをビルド! そしてテスト!
- PHP編に突入! まずはソースをダウンロード
- 設定ファイルを作成してApacheを動作させる
- 設定ファイルや公開ドキュメントの配置を考える
- 1つのサーバに複数の仮想サーバ?
- Apacheの設定ファイルを記述する前に
- サードパーティのApacheモジュールをビルドする
- 認証DBにアクセスするライブラリを組み込む
- Apache同梱ソフトウェアに引数を渡してビルド
- OpenSSLをビルドしてApacheで利用する
- proxyやsslのモジュールを使ってみる
- ライブラリが足りなくてビルドできないときは?
- Apache HTTP Serverのビルドを始めよう
- configureでソフトウェア固有の設定を変更してみる
- configureの設定を変更してみる
- 配布パッケージの中身と、configureの役目を知る
- ダウンロードファイルが真正なものであるかを確認
- Makefileをいろいろ書き換えながらビルドしてみよう
- makeを使ってソフトウェアをビルドしてみよう
- ダイナミックリンクとスタティックリンク
- 「ビルド」という作業は何を指しているのか
- 公開鍵認証でsshを安全に使う
- sshを便利にする公開鍵暗号
- アクセス制限の設定とCentOSのアップデート
- サーバに接続して、一般ユーザーのアカウントを作る
- LAMP環境、自分で作りませんか?
Copyright © ITmedia, Inc. All Rights Reserved.