今から始める MySQL入門

今から始める MySQL入門(1)

MySQL+Apache+PHPをインストールしよう



鶴長 鎮一(book@tsurunaga.jp)
2007/1/27

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

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

関連リンク:
連載 快速MySQLでデータベースアプリ!
http://www.atmarkit.co.jp/flinux/index/indexfiles/mysqlindex.html

今から始める MySQL入門 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

今から始める MySQL入門 ソフトウェア構成とバージョン

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

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

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

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

今から始める MySQL入門 インストールと設定(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」からダウンロードしてください。

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

各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のバージョンなど自分の環境に合ったものを選択してください。

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

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


# 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/3

Index
今から始める MySQL入門(1)
 MySQL+Apache+PHPをインストールしよう
Page 1
 PHPとMySQL
 ソフトウェア構成とバージョン
 インストールと設定(1)
   MySQLのインストール
  Page 2
 インストールと設定(2)
   Apacheのインストール
   PHPのインストール
   Apacheの設定と起動
  Page 3
 動作確認用PHPスクリプトの作成
   PHPインストール環境の表示
   MySQLサーバへの接続確認

連載 今から始める MySQL入門


 Linux Squareフォーラム データベース関連記事
連載:快速MySQLでデータベースアプリ!(全11回)
軽快な動作で知られるRDBMS、MySQLでDBアプリの構築を行う。MySQLのインストールに始まり、PerlやRubyなどのスクリプトでデータベースを操作する方法までを完全解説
連載:今から始める MySQL入門(連載中)
定番のLAMP(Linux+Apache+MySQL+PHP)構成でWebアプリケーション開発に挑戦! サンプルアプリの構築を進めながら、基礎知識や操作方法について詳しく解説する
連載:Oracleマイスター養成講座(全6回)
本連載では、Oracleの管理・チューニング方法を紹介していく。これからOracleを始める人、そしてOracleをより深く理解したい人のための、一歩踏み込んだ実用講座
連載:DB2マイスター養成講座(全7回)
本連載では、DB2 UDBの実践的な運用・管理方法を紹介していく。DB2を利用するうえで必要な知識を、実運用を前提にDB2のプロが解説
特集:エンタープライズ市場に向かうMySQL 5.0[前編]
MySQL 5.0の新機能をアルファ版でチェック
1月に公開された5.0アルファ版は大幅に拡張されており、エンタープライズ市場への進出を予感させる
特集:Linuxで動くリレーショナルデータベース・カタログ
データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

TechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ



- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH