Webアプリケーションの開発・実行環境として多くの開発者が支持するのがLAMP(Linux、Apache、MySQL、PHP/Perl/Python)です。この連載では、LAMP環境をソースコードから構築する方法を丁寧に解説していきます。(編集部)
Webアプリケーション開発に欠かせないLAMP環境。皆さんはどのように用意していますか? サーバの選定からはじまって、LAMPのインストールと設定、テストや運用などなど、やるべき事はたくさんありますね。悩みやトラブルは尽きないと思います。
そこで本連載では、LAMP環境の構築という観点からLAMPを攻略していきます。とりわけ環境の基礎を作る作業である、インストールから設定を中心に取り上げます。環境構築というと一般にはインフラエンジニアの範疇になると思いますが、開発環境を構築したいWebアプリケーション開発者や、ソーシャルアプリ開発者にも役立つはずです。
LAMPといえばLinux、Apache HTTP Server(httpd)、MySQL、PHPの略ですが、このうちLinuxについて詳しく解説はしません。それだけでかなり大きなテーマになってしまいますし、サーバをレンタルすれば、Linuxをセットアップしてある状態で受け取れるので、意識する必要もあまりないからです。
LAMPのインストールに、Linuxディストリビューションのパッケージをそのまま使っている方も多いと思います。コマンド一発でインストールできますし、他に必要なパッケージも自動的に探してインストールしてくれますから、これはとてもお手軽です(図1)。
# yum install httpd Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: www.ftp.ne.jp * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:2.2.3-45.el5.centos set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: httpd x86_64 2.2.3-45.el5.centos base 1.2 M Transaction Summary ================================================================================ Install 1 Package(s) Upgrade 0 Package(s) Total download size: 1.2 M Is this ok [y/N]:
しかしお手軽であることが、不便ではないとは言い切れないと思います。実際、筆者はLAMP環境を作るときにパッケージを利用することはありません。パッケージの方がどうしても面倒な部分を感じてしまうのです。
これはパッケージシステムが悪いということではありません。お手軽さというのは、ある側面を切り捨てているからこそ実現できています。切り捨てられた部分は管理者のコントロール外になります。細かいコントロールが求められる状況では、手軽さは邪魔にもなりえるのです。プロ用の道具がお手軽さとは無縁の存在であることにも似ていると思います。
パッケージを使うことで切り捨てられるものとしては、それぞれのソフトウェアの最新バージョンを利用しにくいという点が大きいのではないでしょうか。例えばCentOS 5では、phpパッケージはバージョン5.1.6となっています(図2)。5.2系や5.3系が主流の現在では、これはかなり古いものになります。
$ yum info php Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: www.ftp.ne.jp * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp Available Packages Name : php Arch : x86_64 Version : 5.1.6 Release : 27.el5_5.3 Size : 2.3 M Repo : base Summary : The PHP HTML-embedded scripting language. (PHP: Hypertext : Preprocessor) URL : http://www.php.net/ License : The PHP License v3.01 Description: PHP is an HTML-embedded scripting language. PHP attempts to make it : easy for developers to write dynamically generated webpages. PHP : also offers built-in database integration for several commercial : and non-commercial database management systems, so writing a : database-enabled webpage with PHP is fairly simple. The most common : use of PHP coding is probably as a replacement for CGI scripts. : : The php package contains the module which adds support for the PHP : language to Apache HTTP Server.
なぜこのように古いままかというと、ディストリビューションというものが全体として正しく動作するように考えられているためです。あるソフトウェアのバージョンを変えてしまうと、ディストリビューションのほかの部分が正しく動作しなくなる危険性があります。ディストリビューションの安定性という点からすれば、こういった方針も重要なのです。
もし、動かしたいPHPアプリケーションが5.2系や5.3系を要求するようなものであったら、CentOSのオフィシャルパッケージを使っている限りは利用不可能ということになってしまいます。最近リリースされたCentOS 5.6では、「php53」というパッケージが加わり、5.3系が使えるようにはなりました。しかし、いずれは同じような問題は起こります。パッケージシステムが抱える問題を本質的に解決できているとはいえません。
そこで提案したいのが、「脱・パッケージ」です。前述の通り、筆者はパッケージを使わずにLAMP環境を構築しています。どうやっているかというと、単にそれぞれのソースコードを取得して、ビルドしているというだけのことです。
ビルドする方がハードルが高いという声も聞こえてきそうですね。しかし、手順や仕組みさえ理解してしまえば、パッケージを使っていて悩むよりも、よっぽど楽で便利だと感じられるはずです。バージョンの問題で悩まずに済むだけでなく、ディストリビューションごとの流儀に縛られないというメリットもあります。
OSのベース部分ではパッケージシステムのおいしいところを享受しつつ、サービスにかかわる部分は自分でビルドして自由に操る。そういったやり方を本連載では解説していきたいと思っています。
Webアプリケーション開発者が直面する悩みとして、開発環境やテスト環境の準備を挙げる人は多いのではないでしょうか。開発中は手元のコンピュータで済ませるとしても、成果をチームで共有したり顧客に見せるためには、公開できるサーバを立ち上げなければなりません。
仮想化ソフトウェアを使えば、そういったサーバの取り扱いもだいぶ楽にはなりますが、インストールなどの準備はついてまわります。今は、VPSやクラウドサービスという便利なものがあるので、これを利用して楽をしましょう。OSのインストールも初期化もボタン一発です。
さらに東日本大震災以降、東京電力管内では節電への協力が求められています。いったんは終わった計画停電も、夏場に再度実施ということも考えられます。このような状況にあっては、社内にサーバを立ち上げるよりVPSやクラウドサービスを利用するのが望ましいでしょう。物理的に東京電力管外に存在するなら節電に貢献でき、突然の停電にも慌てずに済みます。
本連載では、東京電力管外にデータセンターを持つさくらインターネットのVPSサービスを利用することとしました。最小のプランなら初期費用なしで月々980円と非常に低価格で、コスト的にもかなり有利です。OSは標準で提供されるCentOS 5の64bit版とします。この環境を前提に連載を進めます。
次回は、サーバ環境の準備をはじめます。
Copyright © ITmedia, Inc. All Rights Reserved.