連載
» 2007年01月27日 00時00分 UPDATE

今から始める MySQL入門(1):MySQL+Apache+PHPをインストールしよう (1/3)

本連載は、これからWebアプリケーション開発を習得しようとする方や本格的なプログラミング経験の少ない方を対象にしています。連載途中から始まるサンプルWebアプリケーション(簡単なショッピングサイト)開発を進めていきながら、基本事項や注意点などについて詳しく解説していきます。

[鶴長鎮一,@IT]

 連載第1回目では、MySQL+PHP+Apacheのインストールと動作確認までを解説します。

関連リンク:

連載 快速MySQLでデータベースアプリ!

http://www.atmarkit.co.jp/flinux/index/indexfiles/mysqlindex.html


PHPとMySQL

 はじめに、PHP(Personal Home Page tool)について簡単に紹介します(注)。ご存じのように、PHPはWebアプリケーションの定番として定着しています。また、Strutsのような大規模開発向けフレームワークがもてはやされる一方で、PHPをはじめPerlやRuby、Pythonといったスクリプト系言語に代表される「Lightweight Language」が手軽さと機能の豊富さから近年再注目されています。特にDBやWebとの相性がいいPHPは、初歩的なWebアプリケーションから本格的な用途まで幅広く利用されています。

注:快速MySQLでデータベースアプリ! 第5回 PHPで実用アプリケーションを作ろう(前編)でPHP4までの歴史を紹介していますので、ここではそれ以降の動きについて説明します。


 PHP 4.1まではおおむね順調にリリースされていたのですが、PHP 4.2で「register_globals問題」が大きく取りざたされました(コラム1)。ちなみに、快速MySQLでデータベースアプリ!の第5、6回で紹介しているPHPサンプルもこの被害を受けています。こうした混乱の後に発表されたのが、PHP 5.0です。PHP 5.0にはZend Engine 2.0が採用され、オブジェクト指向やWebサービス機能を強めるなど時勢が強く反映されています。

 また、現在ではMySQL、PostgreSQL、Oracle、Microsoft SQL Serverなど対応するDBMSも多くなり、PHP 5.0においては軽量データベースSQLiteをアプリケーションに組み込むことができます。特にMySQLに関しては、PHP/FIのころからかかわりが深く、MySQL 4.1で可能になったトランザクション機能にも拡張ライブラリでいち早く対応しています(コラム2)

コラム1 register_globals問題

「register_globals問題」とは、セキュリティ上の観点からPHPの動作設定項目の1つ「register_globals」のデフォルト値を「On(PHP 4.1まで)」から「Off(PHP 4.2以降)」に変更したことによる一連のトラブルを指します。デフォルト値が変更になったためコードの互換性が損なわれ、意図的に「register_globals=On」とするか、コードの修正が必要になりました。

コラム2 MySQLネイティブライブラリと抽象化ライブラリ

PHPは、MySQLネイティブAPI以外にもPEAR::DBやPDO(PHP Database Object)といった抽象化レイヤを使用できます。抽象化レイヤを利用することでDBMS製品による機能差をAPIで吸収し、DBMSに依存するコードを極力排除できます。その一方「多くの抽象化レイヤが存在する」「パフォーマンスで劣る場合がある」などの点を考慮して、本連載では普遍的な操作が可能なMySQLネイティブAPIを使って解説します。

関連リンク:

PHP4で作るWeb-DBシステム
http://www.atmarkit.co.jp/flinux/php4/php4_1/php1.html

オブジェクト指向言語に生まれ変わるPHP5[前編]
http://www.atmarkit.co.jp/flinux/special/php5/php5a.html

オブジェクト指向言語に生まれ変わるPHP5[後編]
http://www.atmarkit.co.jp/flinux/special/php5/php5c.html


ソフトウェア構成とバージョン

 多くのディストリビューションではApache、MySQL、PHPをほぼ標準で用意しています。こうした構成は「LAMP(Linux+Apache+MySQL+PHP)」といわれ、高い人気を集めています。また、最近では「LAPP(Linux+Apache+PostgreSQL+PHP)」のような組み合わせも見られます。ちなみに、Windows環境でもXAMPPを利用すれば、各ソフトウェアを一括でインストールできます。

 表1に、本連載で使用するソフトウェア構成を示します(注)

Linuxプラットフォーム Fedora Core 6(以下、FC6)
DBMS MySQL 5.0
httpdデーモン PHP 5.1を組み込んだApache HTTPD 2.2
表1 本連載で使用するソフトウェア構成

注:本連載では、すべてのサービスを1台のサーバにインストールしています。また、インストールに関しては極力提供されているRPMパッケージを利用しています。


インストールと設定(1)

 インストールは1.MySQL2.Apache3.PHPの順で行います(注)。また、以降の作業はすべてrootユーザーで行ってください。ちなみに、Fedora Core以外のディストリビューションでも利用できるようにバイナリアーカイブやソースファイルからのインストールについてもコラム形式で紹介していきます。

注:Apache、PHPをインストールする際に、MySQLのパッケージに含まれるクライアントライブラリが必要になるので、この順番でインストールしてください。


MySQLのインストール

 MySQLとは、MySQL ABが開発・サポートするGPLなリレーショナルデータベース管理システム(RDBMS)です。MySQL 4.1で採用されたトランザクションに加えて、MySQL 5.0以降ではビューやストアドプロシージャが使用できるようになり、従来の高速動作に加えエンタープライズ色がさらに強調されています。

 MySQLをインストールする前に、念のためMySQLがインストール済みかどうかをrpmコマンドで確認します。

# rpm -qa mysql*
mysql-server-5.0.27-1.fc6
mysql-5.0.27-1.fc6
mysql-devel-5.0.27-1.fc6
(省略)
MySQLがすでにインストールされている場合

 MySQLの新規インストールや関連パッケージの追加インストールは、以下のようにyumコマンドで実行します。

# yum install mysql*

 サービスの起動/停止は、以下のようにinitスクリプトを利用します。

# /etc/init.d/mysql start
MySQLの起動
# /etc/init.d/mysql stop
MySQLの停止

 MySQL ABが提供しているRPMファイルやtarバイナリアーカイブからインストールする場合は コラム3、4を参考にしてください。

コラム3 MySQL ABのRPMパッケージをインストールするには

RPMファイルは、MySQL ABのWebサイトhttp://dev.mysql.com/downloads/mysql/5.0.html#downloadsにあります。CPUタイプ、ディストリビューションなど自分の環境に合ったものをダウンロードしてください(注)。また、必要なファイルは単一ではないので、表2を参考に、それぞれ取得してください。

注:もし、該当するものがない場合は「Linux x86 generic RPM」からダウンロードしてください。


Server MySQLサーバの本体
Client クライアントプログラム
Shared libraries 共有ライブラリ
Headers and libraries ライブラリやインクルードファイル
表2 インストールするファイル

各RPMファイルが用意できたら、rpmコマンドに「-ivh」オプションを指定してそれぞれインストールします(注)。ちなみに「-i」はインストールの実行、「-v」はインストール過程の詳細情報を表示、「-h」はインストールの進行状況を出力します。

注:すでにMySQLがインストールされている場合は、「-Uvh」オプションでアップデートをするか、既存パッケージを削除してからインストールしてください。


# rpm -ivh MySQL-server-5.0.27-0.i386.rpm
# rpm -ivh MySQL-client-5.0.27-0.i386.rpm
# rpm -ivh MySQL-devel-5.0.27-0.i386.rpm
# rpm -ivh MySQL-shared-5.0.27-0.i386.rpm
RPMパッケージのインストール(「Linux x86 generic RPM (dynamically linked) downloads」の場合)
# /usr/bin/mysqld_safe --user=mysql &
コマンドラインからMySQLを起動する場合

コラム4 MySQL ABのtar.gzバイナリアーカイブをインストールするには

各プラットフォームに合わせて最適化されたビルド済みtar.gzバイナリアーカイブファイルが、MySQL ABから提供されており、RPMを利用できないディストリビューションでもインストールできます。

tar.gzバイナリアーカイブは、http://dev.mysql.com/downloads/mysql/5.0.html#downloadsにある「Linux (non RPM packages) downloads」からダウンロードできます。CPUタイプやglibcのバージョンなど自分の環境に合ったものを選択してください。

Standard 標準的なパッケージ
Max NDBクラスタや多くのストレージエンジンに対応したパッケージ
Debug デバッグ用途向けパッケージ
表3 パッケージの種類

ダウンロードしたら、下記の手順でインストールします。

# tar xvfz mysql-standard-5.0.27-linux-i686.tar.gz ←tar.gzの展開
# mv mysql-standard-5.0.27-linux-i686 /usr/local/mysql ←/usr/localへ移動
# groupadd mysql ←グループの追加
# adduser -g mysql -d /usr/local/mysql/data mysql ←ユーザーを追加
# cd /usr/local/mysql ←ディレクトリの移動
# ./scripts/mysql_install_db --user=mysql ←初期データベースの作成
tar.gzバイナリアーカイブのインストール
# /usr/bin/mysqld_safe --user=mysql &
コマンドラインからMySQLを起動する場合

関連リンク:

MySQL AB
http://www.mysql.com/

エンタープライズ市場に向かうMySQL 5.0[前編]
http://www.atmarkit.co.jp/flinux/special/mysql5/mysql5a.html

エンタープライズ市場に向かうMySQL 5.0[後編]
http://www.atmarkit.co.jp/flinux/special/mysql5/mysql5d.html


       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。