第5回 PHPで実用アプリケーションを作ろう(前編)
PHPはMySQLとの親和性が高いスクリプト言語の1つだ。今回はこのPHPを利用して、実用に耐えるアプリケーションを作成しよう。前編では、その基礎となるPHPのインストールや、PHPでMySQLを操作する方法を紹介する。
鶴長 鎮一
MySQLユーザ会
2001/4/3
| 関連リンク: | |
| New! 連載:今から始める MySQL入門 http://www.atmarkit.co.jp/flinux/rensai/mysql5_01/mysql5_01a.html |
|
PHPとMySQL
PHP(Personal Home Page tool)は、Webアプリケーションを作成する手段としてここ数年で広く使用されるようになってきました。Rasmus Lerdor氏が書いたPerlスクリプトから始まったPHPは、データベースとの連携を実現するFI(Form Interpreter)と統合され、PHP/FIとなったあたりから国内でも多く実例を見るようになりました。
国内でPHP/FIが利用されるようになる一方、海外では有志の手によりPHP/FIからポーティングされたPHP3が公開されました。PHP3が公開されると、その安定性や整理された文法などが高い評価を受け、PHP/FIは瞬く間にPHP3に置き換えられました。国内の書店で見かけるPHPのハウツー本などの多くも、PHP3を前提に書かれているようです。PHPはその後も改良が続けられており、2000年5月には高速動作のためのZendスクリプトエンジンを搭載したPHP4が公開されました。
このようにPHPの歴史を振り返ると、データベースの連携が古くから考慮されていたことが分かります。とりわけMySQLとのかかわりは深く、PHP/FIのときにはすでにMySQLサーバを操作する手段が提供されていました。このあたりの経緯を見ても、MySQLの海外での人気がうかがえます。
スクリプト言語として、前回Perlを取り上げましたが、PerlはWebアプリケーションに特化したものではないということもあり、Perlスクリプトを使ったCGIアプリケーションとPHPスクリプトでは速度の面でPHPの方に軍配が上がります。これは、PHPがCGIスクリプトとは違い、WebサーバソフトであるApacheのモジュールとして組み込まれて動作するためです。速度以外の面でも、HTMLとの親和性やフォームの値の容易な取得など、Webアプリケーションのために生まれた優位性を随所で感じることができるでしょう。
ApacheとPHP4のインストール
皆さんの手元には、すでにMySQLがインストールされたLinuxまたはUNIXマシンがあると思います。まだの場合は、前回までの各種ソフトのインストールを済ませておいてください。UNIX系のOSであれば特に限定しませんが、ここでは標準的なLinux(Kernel2.2.16)マシンにソースからインストールする方法を説明します。
RPMでインストールしたい方は、各種ディストリビュータのWebサイトなどから最新のApacheとPHPに関するファイルを入手してインストールしてください。ただし、その場合はディストリビュータが用意したPHP関連のファイルがMySQLを使うようになっているか確認しておく必要があります。また、MySQLを使うようになっていた場合でも、最新のMySQLではなく、ディストリビューションに含まれる少し古いMySQLに合わせたものになっている場合もあるので、なるべくソースからのインストールをお勧めします。
■Apacheのインストール
CGIスクリプトとは違い、PHPをApacheのモジュールとして動作させるためには、Apache本体から作成する必要があります。まず、http://httpd.apache.org/dist/から最新バージョンを適当なディレクトリにダウンロードします。2001年3月27日現在の最新版はapache_1.3.19.tar.gzです。ApacheのWebサイトではApache 2.0.14 Alphaも公開されていますが、今回は使用しません。
ソースをダウンロードしたら、ファイルを展開してconfigureを実行します。
$ tar xvfz apache_1.3.19.tar.gz |
上記のconfigureオプション
--enable-module=all
モジュールをすべて有効に
--enable-shared=max
DSO(Dynamic Shared Object)のサポート。PHPをインストールする際に必要
次にmakeを実行し、エラーなく完了した後、スーパーユーザーにスイッチしてインストールを行います。
$ make |
--prefixオプションでインストールディレクトリを指定しなかった場合、Apacheは/usr/local/apacheとしてインストールされます。
■PHP4のインストール
Apacheを起動する前に、PHPをインストールします。http://www.php.net/downloads.phpから最新のファイルをダウンロードしましょう。執筆段階の最新版はPHP 4.0.4pl1です。
Apacheと同様の手順でconfigureを実行します。
$ tar xvfz php-4.0.4pl1.tar.gz |
上記のconfigureオプション DSOを利用するために、apxsコマンドのパスを指定
--with-apxs=/usr/local/apache/bin/apxs
--with-mysql
PHPからMySQLを操作するための指定。MySQLを/usr/localや/usrなどではない場所にインストールしている場合は、パスの指定が必要
例:--with-mysql=/home/mysql
同様にsuしてインストールを完了させます。
$ make |
これで/usr/local/apache/libexec/libphp4.soができているはずです。
■ApacheでPHP4を有効化する設定
次に、Apacheの設定を変更してPHPを実行できるようにします。といっても、コメントアウトを1行外すだけです。
スーパーユーザーになり、/usr/local/apache/conf*編注のhttpd.confファイルを適当なエディタで開き、以下のように該当行の“#”を消します。
# And for PHP 4.x, use: |
下の“phps”拡張子は、PHPソースファイルに関するものです。状況に応じて使用してください。
| 編注:ソースからインストールした場合。ディストリビューションによっては/etc/httpd/confにhttpd.confを配置している。 |
以上で設定は終わりました。Apacheはデフォルトではポート8080番で起動するので、80番など任意のポートで起動したい場合はhttpd.confファイルの
Port 8080 |
の行を変更してください。
では、Apacheの起動です。
# /usr/local/apache/bin/apachectl start |
起動を確認するためにWebブラウザを開き、http://127.0.0.1:8080/でApacheの警告ページが表示されれば成功です。
以上でインストールは終了です。PerlでMySQLを操作するためにさまざまなものをインストールしたのに比べ、たった2つのソフトをインストールするだけで完了してしまうあたりも、PHPが誕生以来データベース操作を積極的に取り入れてきたことの結果だといえます。
もし、この後MySQLへの接続に失敗したり、PHPの文法が正しいにもかかわらず動作しなかった場合は、もう一度手順を1つずつ確認してください。RPMなど、各ディストリビュータが用意したファイルを利用した場合は、MySQLのバージョンの不一致による動作不良も考えられるので、その場合はMySQL自体もディストリビュータが用意するものを使うか、前記のように各ファイルをソースからインストールする必要があります。
■PHPスクリプトの動作テスト
この段階では、PHPが正しく動作するかはまだ確認できていません。確認の意味も込めて簡単なスクリプトを作ってみましょう。用意するのはエディタだけ。日本語入力も可能な状態が好ましいでしょう。
ファイルを作成するのはApacheのドキュメントルートである/usr/local/apache/htdocs*編注なので、スーパーユーザーでの作業になります。
| 編注:ソースからインストールした場合。Linuxディストリビューションの中には、/home/httpd/htmlをドキュメントルートに設定してあるものも多い |
ドキュメントルートに以下の内容のサンプルスクリプト“test.php”を作成します。
<HTML><BODY> |
作成したら、Webブラウザでhttp://127.0.0.1:8080/test.phpにアクセスします。
最初のテスト |
と表示されていれば成功です。
PHPについての細かい文法や変数・定数の扱いなどは連載記事「PHPで作るWeb-DBシステム」で確認できます。いますぐにでもPHPを使いたいという方は、“<?php”と“?>”の間にPHPの構文・関数・変数を書いていくということだけでも覚えておいてください。
通常のインストールではMyISM形式でデータファイルの保存を行いますが、INNOBASEにすることでトランザクション機能が使えるようになります。しかし、トランザクション機能の代償としてMySQL本来の速さを失いますので、業務など重要な場面での使用には慎重な判断が必要です。 「MySQL Reference Manual for version 3.23.36.」より Innobase Tables -- Alphaちなみに、MyISMやINNOBASE以外に以下の形式のデータファイルが用意されています。
|
|
1/2 |
| Index | |
| 快速MySQLでデータベースアプリ! | |
| PHPとMySQL | |
| ApacheとPHP4のインストール Apacheのインストール PHP4のインストール ApacheでPHP4を有効化する設定 PHPスクリプトの動作テスト コラム:今月のMySQL |
|
| PHPでMySQLを操作 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つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい |
|
|
ホワイトペーパー(TechTargetジャパン)
- natテーブルを利用したLinuxルータの作成 (2010/2/9)
natテーブルを用い、市販のブロードバンドルータと同等かそれ以上の機能を備える「Linuxルータ」を作成してみましょう - Web監視機能を賢く利用する (2010/2/2)
プロセスの稼働確認だけでは、サービスが正常に提供できているか分からないことも。そこで使いたいのがWeb監視です - ものいわぬOpenLDAPサーバのログ管理 (2010/1/20)
不満をいわないコンピュータが相手だからこそ、常にログが確認できる状態を整備することが重要になります - ネットワークアクセス権も放棄せよ (2010/1/12)
新しいセキュリティ機構「disablenetwork」を提案する1通のメールから始まった議論が、LSMも巻き込む話へと拡大しました
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |






