PHP編に突入! まずはソースをダウンロード:仕事で使える魔法のLAMP(25)
今回からPHPのビルドとインストールに入ります。まずはPHPという言語の概要と、ソースコードの入手法を解説します(編集部)
Webアプリケーション開発ならPHP
LAMP環境を自分でビルドして構築しようという本連載ですが、前回までApacheのビルドと基本的な設定を解説し、起動するところまで終えました。今回からは、LAMPの「P」である、PHPのビルドとインストールを解説します。
ご存じの方も多いとは思いますが、はじめにざっとPHPについて説明します。PHPは言語およびその実行環境の名称です。ほとんどの場合、Webアプリケーションを実装するために使われます。LAMPの「P」は、他にPythonやPerlといった言語を指すこともありますが、これらの言語がWeb以外の分野でも大いに活躍しているのに比べると、PHPはWeb専用といえるでしょう。
PHPの最大の特徴は、その取っつきやすさではないかと思います。Web公開ディレクトリにプログラムファイルを置けば、そのファイルにWebブラウザからアクセスがあったときにプログラムが実行され、結果はブラウザに送られます。Webに特化したシンプルな構造で、Webアプリケーション初心者でも理解しやすいものとなっています。また、データベースへのアクセスなど便利な機能を数多く備えていることも、「取っつきやすい」というイメージを作る一助になっています。
さらに、ApacheなどのWebサーバに組み込んで使えるようになっていて、CGI(Common Gateway Interface)のように外部のプロセスを立ち上げたりする必要がないため、比較的高速に動作します。取っつきやすい上、実用的であることから、今ではWebアプリケーション開発言語としてトップレベルのシェアを持つに至っています。
PHPで実装されたECサイトやCMSといったシステムも数多く開発され、活況を呈しています。勢いとしてはすでにJavaを追い抜いていますし、実際の採用頻度も筆者はJavaより多いように思います。
PHPは自分でビルドした方が運用しやすい
利用者が多いということは、それだけPHPで作られたシステムも多いということでもあります。PHPは15年以上の歴史があり、たびたび大きなバージョンアップをしていますが、いまだに古いバージョンで動いているシステムが少なくありません。
すでに脆弱性対応などのサポートが止まっているような古いバージョンは使うべきではありません。それでも古いままで放置しているのは、止むに止まれぬいろいろな事情があるのでしょう。
「PHPのアプリケーションが新バージョンのPHPでは動かない」という問題もよく発生します。このような場合はアプリケーションのソースコードを修正するほかなく、これは運用の範疇ではいかんともしがたい問題です。
一方で、ディストリビューションの提供するパッケージでPHPをインストールしている場合、古いバージョンのPHPとなっていることもあります。これは互換性を維持するため、あえて最新のものを取り入れていないのです。ディストリビューション開発期間に関係するタイムラグが原因であることもあります。
CentOSでは、つい最近まで最新のPHP 5.3系列が提供されていない、ということがありました。また、古いディストリビューションをアップデートできないこともあるでしょう。パッケージを使わずに、自分でビルドをしていればこういった問題を解決できるのです。
パッケージを利用すると、ディストリビューションの配布元が脆弱性対応などをバックポートをしてくれるというメリットもあります。バックポートとは、古いバージョンに修正プログラムなどを移植することです。これはかなり大きなメリットです。バージョンを上げないまま脆弱性対応ができるのであれば、新しいバージョンをテストせずに済みます。
筆者はLAMP環境を独自ビルドすべきと考えていますが、パッケージを主に使っているという人からはこのディストリビューション配布元のサポートの点を指摘されることが少なくありません。
この問題は、結局のところ、使いどころの問題であると考えます。バックポートにもデメリットがあって、例えばバージョン番号を見ても修正対応の状況がはっきり分からない、バックポート自体が正しく動作していたソフトウェアに影響を与えてしまう可能性などがあります。
例えば、OSのユーザーランドについては、バックポートで対処された方が便利で問題もないと思います。しかしWebシステムにおいて、ApacheなどのミドルウェアやPHPなどの言語のバージョンなどはきちんと自前で管理し、把握しておくほうがシンプルで運用もしやすいでしょう。ソースコードは公開されているのですから、必要に応じて自分でバックポートすることも難しいことではありません。
PHPのソースコードを入手してmd5で確認
さて、まずはPHPのソースコードを入手しましょう。PHPのダウンロードページからダウンロードできます(図1)。2011年10月7日時点の最新版は5.3.8となっています。下のほうに5.2.17も掲載されていますが、すでにサポート切れであると注意書きがあります。現時点では5.3系のみがサポート対象ということになります。
5.3.8のリンクをクリックすると、ミラーサイト選択になりますので、日本のサイトなど、地理的に近いサーバからダウンロードします。サーバ上に直接ダウンロードしたい場合は、リンクアドレスをコピーして、wgetコマンドにペーストして渡しましょう(図2)。
$ wget http://jp2.php.net/get/php-5.3.8.tar.bz2/from/this/mirror --2011-10-06 12:43:27-- http://jp2.php.net/get/php-5.3.8.tar.bz2/from/this/mirror Resolving jp2.php.net... 219.94.145.73 Connecting to jp2.php.net|219.94.145.73|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://jp2.php.net/distributions/php-5.3.8.tar.bz2 [following] --2011-10-06 12:43:28-- http://jp2.php.net/distributions/php-5.3.8.tar.bz2 Connecting to jp2.php.net|219.94.145.73|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 11190060 (11M) [application/octet-stream] Saving to: `php-5.3.8.tar.bz2' 100%[======================================>] 11,190,060 1.12M/s in 9.5s 2011-10-06 12:43:37 (1.12 MB/s) - `php-5.3.8.tar.bz2' saved [11190060/11190060]
ダウンロードが完了したら、最初のページにあったmd5の値と比較し、ファイルが本物であるか確認します(第10回も参照)。
$ md5sum php-5.3.8.tar.bz2 704cd414a0565d905e1074ffdc1fadfb php-5.3.8.tar.bz2
値が一致していますので、このソースコードパッケージは真正なものであることが確認できました。
次回はPHPの基本的なビルド手順について解説します。
- 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.