Open Source CMS

オープンソースCMSの定義を確認し、具体的にはどのようなCMSが人気なのかを紹介します。

  • 2012/02/13: 公開.

オープンソースCMSとは

まずはそれぞれの定義を確認します。

OSS(Open-Source Software)
OSSとは、ソースコード形式で入手可能なコンピュータソフトウェアのことです。通常は、機能追加や修正といった内容を反映したソースコードの再配布を許可するフリーソフトウェアライセンスの下で提供されています。
CMS(Content Management System)
CMSとは、共同作業環境において作業の流れを管理するために用いられる決まりごとを提供するシステムのことです。決まりごとには、手作業やコンピュータによる作業もありえます。決まりごとを守ることで、反復作業を減らしたり、レポートを作成しやすくしたり、ユーザー間のコミュニケーションをとりやすくしたりできます。CMSにおいては、文章、動画、写真のようなデータをコンテンツとして表し、保存や公開といった操作をできるようにします。
WCMS(Web Content Management System)
WCMSとは、Webサイトのコンテンツの作成や管理を楽にするため、Webプログラミング言語マークアップ言語の知識をちょっとだけ持つユーザーに向けて作られた、Webサイトにおけるオーサリング、コラボレーション、管理ツールなどを提供するソフトウェアシステムのことです。WCMSには、ページコンテンツやメタデータの管理にデータベースが、管理操作にはWebブラウザベースのインタフェースが用いられ、非技術系のユーザーでもちょっとだけ扱い方を学ぶことでWebサイトを変更できるほど使いやすいものがあります。

従来、Webサイトを構築するにあたって、HTML(HyperText Markup Language)やCSS(Cascading Style Sheets)などを直接編集していました。しかし、編集作業には専門知識が必要な上、コンテンツが増えていくにつれて、それらを管理することが非常に難しくなっていきました。そこで、本来の書きたい部分に集中できるようにするコンテンツ管理システムが登場しました。

Webコンテンツ管理システムは、HTML文章や画像、動画などのWeb素材の動的なコレクションを管理するために用いられます。BlogやWikiそしてSNSなどもWCMSの一種であると捉えることができます。WCMSを用いることで、HTML、CSSJavaScriptなどの知識がなくても、文書管理や共同編集などができる高度なWebサイトを構築することが可能となります。

今では、オープンソースCMSが広く用いられるようになっています。新たにWebサイトを立ち上げる際に、利用用途に適したオープンソースCMSを選択して、めんどくさいことを減らして楽しむ時間を増やしちゃいましょう。

オープンソースアワードとは

オープンソースCMSには多種多様なものがあります。ただ、あまりにも多すぎてどんなものがあるのかよくわからないこともあります。そんなときは、Packt Publishing主催のOpen Source Awardsを見てみましょう。Open Source Awardsは1年に1回の頻度で開催されます。ここで紹介されているオープンソースはすばらしいものばかりなので参考にしましょう。

http://www.packtpub.com/award
[URL] http://www.packtpub.com/award

2011年度のOpen Source CMSのランキングは次のとおりです。

  Open Source CMS URL 言語
1 Joomla! http://www.joomla.org/ PHP
2 Drupal http://drupal.org/ PHP
3 Plone http://plone.org/ Python

2010年度のHall of Fame CMSのランキングは次のとおりです。

  Hall of Fame CMS URL 言語
1 WordPress http://ja.wordpress.org/ PHP
2 Drupal http://drupal.org/ PHP
3 Joomla! http://www.joomla.org/ PHP

さらに以前のランキングについては次を参照してください。
http://www.packtpub.com/article/open-source-awards-previous-winners
[URL] http://www.packtpub.com/article/open-source-awards-previous-winners

主要なオープンソースCMS

実際、どのCMSが人気なの?そんな疑問をお持ちの方は次のWebサイトを訪問してみてください。それぞれのCMSの世界における利用率を知ることができます。

Usage Statistics and Market Share of Content Management Systems, May 2019
[URL] http://w3techs.com/technologies/overview/content_management/all

http://trends.builtwith.com/cms
[URL] http://trends.builtwith.com/cms


日本でのCMS解説記事は、次の記事がよくまとまっています。日本生まれのCMSの特長を確認することもできるので参考にしましょう。コメント欄にも参考になるものがあるので読むといいかもしれません。ただし、情報が2008年と古いことに注意してください。

企業で使えるオープンソースCMS一挙12種類解説(機能やインストール/管理の難易度評価付き) | Product Showcase | Web担当者Forum 2008/07/04
[URL] http://web-tan.forum.impressrd.jp/e/2008/07/04/3283

おわりに

オープンソースCMSについて、XAMPPを用いてインストールする方法を紹介していきます。この一覧になくても解説してほしい場合はお知らせください。追加していきたいと思います。

参考文献

XAMPP Tips for Windows

XAMPPのちょっと困ったときに役立つTips。

  • 2012/02/25: Perl部分追記.
  • 2012/02/15: 文章見直し.
  • 2012/02/14: 項目追加.
  • 2012/02/12: 公開.

好きなバージョンのXAMPPをダウンロードする

XAMPPにはXAMPP BasicパッケージとXAMPP Liteパッケージが存在します。現在の基本パッケージにはPerlTomcatが最初から含まれています。正確には、Perlはv1.7.2以降、Tomcatはv1.7.4以降、基本パッケージに含まれるようになりました。それより前はアドオンを用いて別途インストールする必要がありました。
XAMPP - Browse Files at SourceForge.net
[URL] http://sourceforge.net/projects/xampp/files/
上記Webサイトから好きなバージョンのXAMPPを入手することができます。ダウンロード可能なXAMPP for Windows v1.7.7のファイル一覧は次のとおりです。

xampp-win32-1.7.7-VC9-installer
#FF0000;">.exe:基本パッケージのインストーラ版です。レジストリを使用します。
ファイルの展開から"install.php"の実行までを自動で行います。
xampp-win32-1.7.7-VC9-installer
#0000FF;">.exe.md5:MD5: 4500884a3bd21343fc69fcef2f4577be
xampp-win32-1.7.7-VC9
#FF0000;">.zip:基本パッケージのZIP形式版です。
xampp-win32-1.7.7-VC9
#0000FF;">.zip.md5:MD5: 19c858c350f79a19f049d85128367f0c
xampp-win32-1.7.7-VC9
#FF0000;">.7z:基本パッケージの7z形式版です。ZIP形式よりもファイルサイズが小さいです。
xampp-win32-1.7.7-VC9
#0000FF;">.7z.md5:MD5: f8c3ce82a34a408115de552c4686a098
xampp-win32-1.7.7-usb-lite
#FF0000;">.exe:ライトパッケージのインストーラ版です。レジストリは使用しません。
ファイルの展開から"install.php"の実行までを自動で行います。
xampp-win32-1.7.7-usb-lite
#0000FF;">.exe.md5:MD5: 7dc46ca4432c1f75f04975630515c136
xampp-win32-1.7.7-usb-lite
#FF0000;">.zip:ライトパッケージのZIP形式版です。
xampp-win32-1.7.7-usb-lite
#0000FF;">.zip.md5:MD5: 8751aa606d7a2951bff5064657b9fb94
xampp-win32-1.7.7-usb-lite
#FF0000;">.7z:ライトパッケージの7z形式版です。ZIP形式よりもファイルサイズが小さいです。
xampp-win32-1.7.7-usb-lite
#0000FF;">.7z.md5:MD5: 4d506c707fac3422b3cf05ce511f91b3

MD5(Message Digest Algorithm 5)ファイルにはハッシュ値が書かれています。MD5値はファイルを正しく落とせたかどうかの確認に使います。MD5の計算にはFastHashを使うといいかもです。


<<大きい画像はこちら>>

XAMPPをアップグレードする

新しいXAMPPがリリースされているのを見つけるとついバージョンをあげたくなります。インストーラ版でインストールを行った場合は、新しいバージョンのインストーラ版をそのまま実行してあげれば自動的に新しいファイルに更新してくれます。ただし、これはインストーラの仕様に変更のあったv1.7.4以降の話であることに注意してください。それより前のバージョンでは自動では更新してくれません。
zip派の人は特定のディレクトリの上書きを避けてファイルの更新をすればアップグレードできます。やり方としては、新しいバージョンのXAMPPを展開して、古い方の特定のディレクトリをまるごと新しいほうにコピーして移行すると、古いのも残っていて安心できるし、いろいろ捗ると思います。特定のディレクトリを以下に示します。この2つをコピーすれば必要最小限に抑えられます。

  • \xampp\mysql\data\
    • MySQLのデータが入っています。
  • \xampp\htdocs\
    • Apacheの公開ファイルが入っています。

以下を参考に各自で必要なディレクトリやファイルのバックアップを取り復元のために残しておくこともできます。

  • \xampp\mysql\bin\my.ini
    • MySQLの設定ファイルです。
  • \xampp\apache\conf\
    • Apacheの設定ファイルが入っています。
  • \xampp\tomcat\webapps\
    • Tomcatの公開ファイルが入っています。
  • \xampp\tomcat\conf\
    • Tomcatの設定ファイルが入っています。
  • \xampp\FileZillaFTP\FileZilla Server Interface.xml
    • FileZilla Serverの接続に用いる設定ファイルです。
  • \xampp\FileZillaFTP\FileZilla Server.xml
    • FileZilla Serverの公開設定ファイルです。
  • \xampp\MercuryMail\MERCURY.INI
    • MercuryMailの設定ファイルです。

ログファイルが欲しい場合は次のディレクトリのバックアップを取ります。

  • \xampp\apache\logs\
  • \xampp\tomcat\logs\
  • \xampp\FileZillaFTP\Logs\
    • FileZilla Serverのログ (ログ出力の設定が必要)
  • \xampp\MercuryMail\LOGS\
    • MercuryMailのログ

XAMPPに含まれるPHPをアップグレードする

XAMPPを使っていると、PHPのバージョンが古くて困ることがあります。そこで、XAMPPに含まれるPHPを最新版にアップグレードしてみましょう。まずは次のサイトにアクセスして、PHPWindows用のバイナリファイルをダウンロードします。
http://www.php.net/
[URL] http://www.php.net/

ダウンロードするファイルは、VC9 x86 Non Thread Safeではなく、VC9 x86 Thread SafeのZIP形式です。Windowsバイナリファイルをダウンロードできる場所は迷いやすいので注意してください。


<<大きい画像はこちら>>


ダウンロードしたファイルを展開して、それをそのままXAMPPのPHPディレクトリ(\xampp\php\)に上書きしてあげればPHPのアップグレードは完了です。なお、ファイルを上書きする前にApacheは停止させておきましょう。そうしないと上書きしようとしても、ファイル使用中だよって怒られてできません。その場合は、あせらず落ち着いてApacheを停止させてからファイルの上書きを再開しましょう。


<<大きい画像はこちら>>


PHP5.2.xからPHP5.3.x、PHP5.3.xからPHP5.4.xへのアップグレードといった場合には(\xampp\php\にある)php.iniファイルの変更が必要です。自分で変更するのがめんどくさい場合は、それ系列のPHPが含まれるXAMPPからphp.iniを抜き取って上書きするのが楽です。

XAMPPに含まれるTomcatを動かす

XAMPPをインストールしたのにTomcatが立ち上がらない...なんてことはありませんか?それはXAMPPに付属するTomcatの起動に用いられるバッチファイルを実行しても、JDK(Java Development Kit)へのパスが見つけられなかったために、Tomcatの起動に失敗しているからです。

[XAMPP]: Searching JDK HOME with reg query ...

エラー:  指定されたレジストリ キーまたは値が見つかりませんでした
. [XAMPP]: Cannot find current JDK installation!
. [XAMPP]: Cannot set JAVA_HOME. Aborting ...
done.

Tomcat自体はJRE(Java Runtime Environment)でも動作します。普通はJDKをインストールしていないことがほとんどのはずなので、ここではJDKを新たにインストールするのではなく、XAMPP付属のバッチファイルを編集してJDKからJREへのパスに変更しちゃう方法を紹介します。なお、XAMPP v1.8.0以降はJDKが見つからない場合はJREを参照する処理が加えられたため、わざわざ編集する必要はありません。

XAMPPをインストールした場所(デフォルトならC:\xampp\)にあるcatalina_start.batcatalina_stop.batの2つがXAMPP側で用意されたTomcatを起動・停止させるバッチファイルになります。このファイルをメモ帳などで開き、次の内容に書き換えてください。

catalina_start.batcatalina_stop.bat

set KeyName=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit
↑を↓に書き換える
set KeyName=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment

これでXAMPPのコントロールパネルからもTomcatの起動と停止ができるようになりました。そう、実はXAMPPのコントロールパネルは同じディレクトリにあるバッチファイルを実行しているだけなのです。変更箇所は単純でJDK側のレジストリからJavaHomeキーを探そうとしている部分を、JRE側のレジストリからJavaHomeキーを探すように変更しただけです。これだけの変更で、JREをインストールしてさえいれば、Tomcatが動作するようになります。また、XAMPP v1.7.7ではTomcat 7.0とApacheとの連携がmod_proxy.so、mod_proxy_ajp.soモジュールにより行われており、Apacheを起動すれば次のURLからもTomcatにアクセスすることができます。
http://localhost/examples

ちなみに、レジストリからキーを探索されるのがいやな場合はJavaHomeキーを探そうとしている部分をごっそりと削除して、JRE_HOMEとCATALINA_HOMEの2つの変数を追加する方法でも問題なく動作します。たとえばcatalina_start.batの場合は次のようになります。

@echo off

IF EXIST tomcat\logs\catalina.pid (
  del /F/Q tomcat\logs\catalina.pid
)

set "JRE_HOME=C:\Program Files\Java\jre6"
set "CATALINA_HOME=\xampp\tomcat"

if %ERRORLEVEL% == 0 (
echo run > tomcat\logs\catalina.pid
)

"%CATALINA_HOME%\bin\catalina.bat" run

:END
echo done.
pause

XAMPPへのパスはルートディレクトリ直下にインストールしたもの、JREへのパスはインストールパスに変更のあったJava 6 Update 10以降を標準でインストールしたものを想定しています。

XAMPPのアドオン

Windows用のXAMPPアドオンは次のURLから入手することができます。

XAMPP - Browse /Windows add-ons at SourceForge.net
[URL] http://sourceforge.net/projects/xampp/files/Windows%20add-ons/

Perlはv1.7.2以降、Tomcatはv1.7.4以降、基本パッケージに含まれるようになり、それらのアドオンは不要になりました。でもなんとなくXAMPP USB Liteにアドオンの機能を追加したい日もあると思います。そんな思いをかなえちゃいましょう。
どうでもいいことですが、XAMPP USB Lite v1.7.5では、Webalizerが使用できます。XAMPP USB Lite v1.7.7には含まれていません。アクセスするには次のURLをたたきます。
http://localhost/webalizer/webalizer.php

XAMPP USB LiteでPerlを動かす

Windows用のXAMPP Perlアドオンは次のURLから入手することができます。

XAMPP - Browse /Windows add-ons/Perl at SourceForge.net
[URL] http://sourceforge.net/projects/xampp/files/Windows%20add-ons/Perl/

Perlアドオンの現在の最新バージョンは次のとおりです。

  • xampp-win32-perl-addon-5.10.0-2.2.11-pl2-installer.exe
  • xampp-win32-perl-addon-5.10.0-2.2.11-pl2.exe
    • 自己展開形式。
  • xampp-win32-perl-addon-5.10.0-2.2.11-pl2.zip
    • ZIP形式。

XAMPPのv1.7.2以降では、Apacheを起動すればPerlが動作するように設定されています。しかし、CGI(Common Gateway Interface)と、mod_perlモジュールが有効にされている基本パッケージ版と違い、ライトパッケージ版ではCGIのみのため、Perlの実行パスを変更しないと正しく動作しません。パッケージ版では拡張子が*.cgiのファイルはCGIPerlが、拡張子が*.plの場合はmod_perlモジュールが使用されます。

#!/usr/bin/perl
↑を↓に書き換える
#!"/xampp/perl/bin/perl.exe"

ライトパッケージ版でもPerlの実行パスを変更しないで実行できるようにするには、シンボリックリンク(symbolic link)を作成する方法やmod_perlモジュールを有効にする方法があります。シンボリックリンクを作っても削除するときに忘れている可能性があることと、そもそもCGIからだと動作が遅くてうんざりするので、ここでは後者のmod_perlモジュールを有効にする方法を紹介します。ライトパッケージ版でもmod_perlモジュールを用いることで快適なPerlライフを送りましょう。

たとえば次のようなPerlスクリプトを書いてhtdocsにtest.plとして保存したとします。

#!/usr/local/bin/perl

print "Content-Type: text/html\r\n";	# レスポンスヘッダ
print "\r\n";	# レスポンスヘッダの終了
print "Hello, world";	# レスポンスボディ

HTTPレスポンスヘッダの改行コードはCRLFであることに注意してください。CRはCarriage Returnで行頭復帰を表し、LFはLine Feedで改行を表します。なお、レスポンスヘッダ部分を省略した場合、mod_perlで動作していると何も表示されませんが、CGIで動作していると次のエラーメッセージが表示されます。

Server error!

サーバ内部で障害が発生し、 リクエストに応えることができませんでした。

Error message:
Premature end of script headers: test.pl 

PerlPHPのように自動的にHTTPレスポンスヘッダを生成しないので、自分で出力する必要があります。おまじないなんかではありません。たまに見かけるLF(\n)だけを書いている人は残念ながら間違っているので、この記事を見た後はCRLF(\r\n)の正しい書き方に改めましょう。このことはRFC 2616にしっかり書かれているのでよく読んでおきましょう。

studyinghttp.net - このウェブサイトは販売用です! - 解説 仕様書 利用 技術 である 手法 日本語訳 プログラミング リソースおよび情報
[URL] http://www.studyinghttp.net/body#Abstract

リクエスト (section 5) と レスポンス (section 6) 各メッセージは、エンティティ (メッセージの付加物) を転送するために RFC 822 の一般的なメッセージフォーマットを使用する。両タイプとも、開始行、0 以上のヘッダフィールド ("headers"として知られているもの)、ヘッダフィールドの終了を示す (CRLF の前に何もない行のような) 空行、そして任意のメッセージボディからなる。

基本パッケージ版でhtdocsにおいたtest.plスクリプトファイルをWebブラウザから実行すると何の問題もなく表示できますが、ライトパッケージ版では実行しようとすると次のようなエラーが表示されます。

Server error!

サーバ内部で障害が発生し、 リクエストに応えることができませんでした。

Error message:
couldn't create child process: 720003: test.pl

このエラーを解決するために、mod_perlモジュールを有効にします。Perlアドオンxampp-win32-perl-addon-5.10.0-2.2.11-pl2.zipを展開して、その中身をすべてXAMPPのインストール先ディレクトリに上書きしてください。上書き完了後は次のファイルを置き換えてください。

\xampp\apache\conf\extra\perl.conf.new
↑のファイルを↓のファイルに名前を変えて置き換える。
\xampp\apache\conf\extra\httpd-perl.conf

以上で完了です。Apacheを再起動してから、先ほどエラーとなっていたページを再度読み込みしてみてください。今度はしっかりと実行できるはずです。また、拡張子が*.cgiのファイルもmod_perlモジュールで動作させるには、.htaccessファイルに次の内容を記述してください。


    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders

ここまでやってみたけどなぜかうまく動作しない、といった場合は\xampp\apache\logs\error.logを確認してみてください。きっと原因がわかるはずです。

XAMPP USB LiteでTomcatを動かす

Windows用のXAMPP Tomcatアドオンは次のURLから入手することができます。

XAMPP - Browse /Windows add-ons/Tomcat at SourceForge.net
[URL] http://sourceforge.net/projects/xampp/files/Windows%20add-ons/Tomcat/

Tomcatアドオンの現在の最新バージョンは次のとおりです。

  • xampp-tomcat-addon-win32-6.0.20.exe
    • 自己展開形式。
  • xampp-tomcat-addon-win32-6.0.20.zip
    • ZIP形式

基本パッケージのv1.7.4ではじめてTomcat 6.0が含まれ、その後のv1.7.5以降はTomcat 7.0が含まれるようになりました。ライトパッケージではTomcatが含まれていないため、Tomcatを動かすには、アドオンを入手してそれをXAMPPのインストール先ディレクトリに上書きする必要があります。
Tomcatアドオンxampp-tomcat-addon-win32-6.0.20.zipを展開して、その中身をすべてXAMPPのインストール先ディレクトリに上書きしてください。上書き完了後は、バッチファイルの内容を編集する必要があります。バッチファイルの内容はかなり省略されているため、JRE_HOMEとCATALINA_HOMEの2つの変数を追加する方法でcatalina_start.batとcatalina_stop.batバッチファイルを書き換えてください。なお、Tomcatアドオンxampp-tomcat-addon-win32-6.0.20はTomcat 6.0でApacheとの連携にmod_jk.soモジュールを使用しており、ライトパッケージに存在するxampp-control.exeにはTomcatを管理する項目はないことに注意してください。

XAMPPを持ち運ぶ

XAMPP USB LiteはUSBという名前がついていますが、USBメモリ専用という意味ではありません。必要最小限のパッケージにまとめたライトバージョンという認識が正しいです。ライトパッケージがライトバージョンなら、基本パッケージはフルバージョンということもできます。ライトパッケージは、v1.7.3まではXAMPP Liteという名前で、絶対パス自体も\xampplite\となっていました。しかし、v1.7.5からはXAMPP USB Liteとなり、基本パッケージと同じく、絶対パス\xampp\となりました。
インストーラ版を実行すると"install.php"が実行されます。これは設定ファイル内に存在する\xampp\パスの変更を行っているだけです。なので、XAMPP USB LiteでPerl/Tomcatを動かすという作業するのがめんどくさい、と思ったら基本パッケージ版の圧縮ファイル(ZIP形式または7z形式)がお勧めです。圧縮ファイルを展開してルートディレクトリ直下に設置すればすぐに使えます。もちろんUSBメモリにそのまま入れてもしっかり動きます。いまどきのUSBメモリは大容量なので、基本パッケージ版をそのまま突っ込んでおけばいいのです。たとえばUSBメモリのドライブレターがE:の場合は、E:\xampp\にしておけば、コントロールパネルのE:\xampp\xampp-controle.exeも動き、もしドライブレターが変わったとしても問題なく使えます。ただし、基本パッケージ版ではUSBメモリ上でsetup_xampp.batをそのまま実行しないでください絶対パスがドライブレターを含むのものに書き換わってしまいます。詳細はsetup_xampp.batの役割を知るを参考にしてください。また、当然のことながら、サービスへの登録は行わないでください

setup_xampp.batの役割を知る

XAMPPのインストーラ版では、setup_xampp.bat内に書かれているように、\xampp\install\install.phpの実行を行い、Apacheのconfファイル内のパスやPHPの実行パス、MercuryMailのパスなど、設定ファイル内に存在する\xampp\パスを、インストール先のディレクトリに合うように書き換えています。install.phpを実行しなくても、XAMPPはデフォルトで絶対パスが\xampp\となっています。そのため、ルートドライブ直下においた場合はパスを変更する必要がなく、setup_xampp.batをわざわざ実行する必要はありません
また、基本パッケージ版では、setup_xampp.batを実行するとドライブレターを含む絶対パス(C:が頭につくもの)に書き換わります。この場合は、ドライブの移動(ディレクトリの階層は同じにしてC:\からD:\など)を行ってしまうと再度setup_xampp.batを実行するまで、動作しなくなってしまいます。この問題を解決するため、USBメモリを想定したライトパッケージ版ではsetup_xampp.batを実行しても、ドライブレターを含まないようになっています。

基本パッケージ版もライトパッケージ版と同様に動作させたい場合はsetup_xampp.bat内のPHP実行文に次のようにusbを付け足してください。この変更を行うことで余分なドライブレターを含めないようにできます。usbがあるのとないのとでは、単にドライブレターがつくかつかないかだけの違いです。それ以外はまったく同じように動作します。

:Normal
set PHP_BIN=php\php.exe
set CONFIG_PHP=install\install.php
%PHP_BIN% -n -d output_buffering=0 %CONFIG_PHP% usb
GOTO END

インストーラ版の動作を知る

インストーラ版の動作は\xampp\src\xampp-nsi-installer\scripts\で確認することができます。拡張子がnsiのファイルはNSIS(Nullsoft Scriptable Install System)を用いて作成されています。

基本パッケージのインストーラ版が使用するレジストリは次のとおりです。

DeleteRegKey HKLM "Software\xampp"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\xampp"

Mercury Mail Transport Systemを起動した場合は次のレジストリが書き込まれます。

HKEY_CLASSES_ROOT\Software\Mercury32
(HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SOFTWARE\Mercury32)
HKEY_CURRENT_USER\Software\Mercury32
(HKEY_USERS\[SID]\Software\Mercury32)

レジストリの項目については次を参考にしてください。


[URL] http://support.microsoft.com/kb/256986/ja

サービスの登録を解除する

サービスに登録したのを忘れていてXAMPPをアンインストールしてしまい、登録されっぱなしの状態になっていることがあります。そんなときは次のコマンドでサービスの登録を解除しましょう。

sc.exe query apache2.2
sc.exe delete apache2.2

sc.exe query mysql
sc.exe delete mysql

sc.exe query "FileZilla Server"
sc.exe delete "FileZilla Server"

queryでサービスがあるかどうか確認し、deleteでサービスの登録解除を行っています。

Skypeのポートを変更する

Skypeはデフォルトで80番ポート(http通信用)と443番ポート(https通信用)を使用します。このため、Skypeが先に起動している場合、同じポートを使用するApacheを立ち上げることができなくなってしまいます。「上記のポートに代わり、ポート80を使用」のチェックを外して設定を変更しましょう。


<<大きい画像はこちら>>


説明だけではポート80しか利用していないように思えますが、ポート443もしっかりと入っています。詳しい内容については、検証:ネットワーク管理者のためのSkype入門 第2回 Skypeの通信メカニズム 1.Skypeの通信開始処理 - @IT 2005/07/15を読むといいです。


<<大きい画像はこちら>>


ちなみに、0から1023まではウェルノウンポート(Well-Known Ports)番号、1024から49151までは登録済みポート(Registered ports)番号と呼ばれており、IANA(Internet Assigned Numbers Authority)が公開しているService Name and Transport Protocol Port Number Registryで、それらのポートを使用するアプリケーションを確認することができます。List of TCP and UDP port numbers - Wikipediaも便利です。

おわりに

XAMPPのちょっとした疑問があればコメント欄などでお知らせください。XAMPPを極めるような解説記事を書いていきたいと思います。ネタは随時受け付けています。

WindowsでWebアプリ開発環境を用意する

Webアプリケーション開発といえば、LinuxApache HTTP Server、MySQLPerl/PHPといったLAMP環境が有名です。Windows環境で開発したい場合には、ApacheMySQLPerl/PHPをインストールする必要があります。ただ、それらをひとつずつインストールして設定するのはとても手間がかかります。もっと楽に導入できたらいいのに...!そんな思いを解決してくれるのがXAMPPです。準備に時間を使いすぎるのはもったいない。XAMPPをインストールして開発環境をすばやく用意しちゃいましょう。

ちなみに、マシンにメモリをたくさん積んでいるなら、VMware PlayerでLinuxを動かすのも手です。LinuxだとWindowsでいつも使ってるあのソフトが動かないから困る、けど開発にはLinuxが必要...なんてときに重宝します。

  • 2012/02/11: 公開.

XAMPPとは

XAMPP(ザンプ)とはApache Friendsプロジェクトが公開しているWebアプリケーション開発に必要なソフトウェアをまとめたパッケージのことです。名称は次の頭文字をとってできました。

XAMPP v1.7.7のパッケージには次のソフトウェアが含まれています。

XAMPPをインストールすれば最初からApacheMySQLPHPが連携した状態を用意することができます。さらにphpMyAdminMySQLデータベースを簡単に管理することができます。ひとつずつインストールするとこんなに簡単にはいきませんでした。手間が省けてうれしい限りです。次以降では、インストールから起動そしてアンインストールまでを見ていきます。文を読まないでも画像を目で追えば流れがわかる程度に書いたつもりなので、気軽に流し読みしてください。

ダウンロードする

さっそく、次のURLにアクセスしてXAMPPをダウンロードしましょう。
http://www.apachefriends.org/jp/xampp-windows.html#2671
[URL] http://www.apachefriends.org/jp/xampp-windows.html#2671

XAMPPにはXAMPP BasicパッケージとXAMPP Liteパッケージが存在します。今のLiteパッケージ版はXAMPP USB Liteになります。アドオンは機能追加用です。Liteパッケージで省略されているTomcatPerlの機能を、アドオンを使うことで後から追加することができます。ただ、後から追加するとめんどくさいことが起きたりするので、アドオンにある機能が必要なら最初から素直にBasicパッケージ版を使ったほうが楽です。


<<大きい画像はこちら>>

インストールする

ダウンロードしたBasicパッケージのインストーラ版を実行してインストールしましょう。
インストール時の言語は英語になります。他の言語はないのです。


インストールを続けましょう。


<<大きい画像はこちら>>

インストール場所はルートディレクト

XAMPPのインストール場所はルートディレクトリにするのをお勧めします。ルートディレクトリというのは、ドライブレター直下(C:\、D:\、E:\など)の場所のことです。
この解説ではインストーラ版を使用していますが、zip派ならファイルを展開してルートディレクトリに設置すればそのまま使える(C:\xampp\xampp-control.exeが普通に動く)ので大変便利です。なぜそれだけで動くのかというと、バッチファイルのパスが絶対パス相対パスの組み合わせだからです。何もしないと絶対パスは\xampp\となっているので、この名前である必要がありますが、シンプルにそれだけです。


<<大きい画像はこちら>>

サービスに登録は不要

ここでのサービスとは、Windowsで動くサービスのことです。サービスに登録することでWindows起動時に一緒に立ち上げることができ、バックグラウンドでの動作が可能となりますが、それは公開用に立てている場合に便利なのであって、開発のように一時的に起動して欲しいときには不要です。また、サービスに登録してしまうと、アンインストール時に登録の解除が必要になります。忘れるとめんどくさいことになるので気をつけましょう。特に、zip派はアンインストール時に展開したファイルを全部削除すればいいからといって、サービスの登録の解除を忘れて勢いで削除すると嵌ります。

デフォルトのままインストールするとショートカットが作成されます。デスクトップには

  • XAMPP Control Panel -- \xampp\xampp-control.exeへのパス

スタートメニューには

  • Uninstall -- \xampp\Uninstall.exeへのパス
  • XAMPP Control Panel -- \xampp\xampp-control.exeへのパス
  • XAMPP htdocs folder -- \xampp\htdocs\へのパス

がそれぞれ作られます。この辺は好みに応じてチェックを外してショートカットの作成をやめてもいいところです。


<<大きい画像はこちら>>


ここらでファイルのコピーが行われます。
コピーと設定が終わるとFinishボタンをクリックできるようになります。


<<大きい画像はこちら>>


終了時にコントロールパネルを起動するかどうかを聞かれます。


<<大きい画像はこちら>>

Windows 7の補足

Windows Vista以降はUAC(User Account Control)の機能である仮想化によって、Program FilesやProgramData以下の書き込みが制限され、書き込んだとしてもVirtualStoreにリダイレクトされてしまいます。このままでは、通常に動作させることは無理なので、そこへのインストールは避けましょう。


<<大きい画像はこちら>>


また、UACを最大に効かせるとまともな動作ができなくなってしまいます。
XAMPP Windows FAQ - Vistaにまつわる問題
[URL] http://www.apachefriends.org/jp/faq-xampp-windows.html#5616
なので、UACはこの辺のレベルに抑えてあげましょう。無効にするのはセキュリティの観点から推奨しません。ただ、Vistaではそもそも有効・無効の2択なのであきらめるほかないです。


<<大きい画像はこちら>>

コントロールパネルを起動する

インストールが完了したら、コントロールパネルを起動してみましょう。コントロールパネルは、デスクトップのショートカットまたはスタートメニューのショットカットから起動することができます。

起動時の画面は次のようになります。では、ApacheMySQLを起動してみましょう。


<<大きい画像はこちら>>


無事に起動すると、Runningという文字が現れます。停止させるには、先ほどのStartボタンの場所がStopボタンになっているので、それをクリックするだけです。

Admin...ボタンをクリックすると管理画面にジャンプすることができます。それぞれのジャンプ先は次のとおりです。Webブラウザのアドレスバーに直接入力してももちろん問題ありません。


<<大きい画像はこちら>>


コントロールパネルを終了させるにはExitボタンをクリックしましょう。右上の×ボタンだとタスクトレイにいきます。×ボタンをクリックするのがクセな人は注意してください。そのままだとひっそりと常駐しっぱなしになります。


<<大きい画像はこちら>>


サービスに登録するには、左側のSvcのチェックを入れることでできます。サービスの解除はチェックを外すだけです。インストール時にサービスの登録にチェックを入れた場合を除いて、XAMPPアンインストール時には必ずチェックの入っていない状態にしましょう。

コントロールパネルベーターバージョン

XAMPP v1.7.7のコントロールパネルにはベーターバージョンが含まれています。XAMPPをインストールした場所(デフォルトならC:\xampp\)にあります。ファイル名はxampp-control-3-beta.exeです。なお、このコントロールパネルはXAMPP v1.8.0で正式版となりました。XAMPP v1.7.7以前のコントロールパネルは旧バージョンとして、xampp-control-old.exeというファイル名で残っています。また、ファイル名をリネームすることで好きな方を使用することができます。


<<大きい画像はこちら>>

各種パスワードを確認する

XAMPPのパスワードはどこにあるの?っていうひとはインストールした場所をよく見てください。passwords.txtというファイルが見つかるはずです。マニュアルにもちゃんと書いてます。
XAMPP for Windows - XAMPPセキュリティ・コンソール
[URL] http://www.apachefriends.org/jp/xampp-windows.html#2784

### XAMPP Default Passwords ###

1) MySQL (phpMyAdmin):

   User: root
   Password:
   (means no password!)

2) FileZilla FTP (not in the USB & lite version):
...

アンインストールする

インストールしたら、アンインストールはつき物です。
コントロールパネル、またはスタートメニューのショートカットからアンインストールできます。


<<大きい画像はこちら>>


サービスをアンインストールします。注意すべき点はインストール後にサービスに登録した場合、ここではサービスの解除をしてくれないことです。気づいたときには、なんてこったい!ってなるので、しつこいようですがサービスへの登録は必要ないならやめておきましょう。


<<大きい画像はこちら>>


データベースファイルを削除します。
これを残しておくとデータベースの情報を引き継ぐごとができます。


<<大きい画像はこちら>>


公開ドキュメントを削除します。
これとデータベースの情報をセットで残せば大体の環境は引き継げます。


<<大きい画像はこちら>>


最後にXAMPPのインストール先ディレクトリを削除しようとします。
ファイルが何か残っている場合は失敗します。気に食わない場合は自分で削除しましょ。


<<大きい画像はこちら>>


おしまい。


<<大きい画像はこちら>>

おわりに

XAMPPで便利で簡単にWebアプリケーション開発環境を構築する方法を解説しました。これでインストールから起動、そしてアンインストールまでの一通りのことができるはずです。

ところで、未知のソフトウェアをインストールしようとして検索してみたけど、古い記事ばっかり引っかかってうんざりしていませんか?この記事を書いた人はうんざりしています。そんなわけで、こういう記事を書くからには、いつでもコメントやらでディスってくれたら、画像を含めて更新または新しく作っちゃいます。

記事自体のメンテナンスもします。ストップ、書きっぱなし。

参考文献