魁!小野の塾 開発環境構築の巻 XAMPPとは?
XAMPPとは?
Webシステムを開発するにあたり、ローカル環境へ環境構築するのは初心者には難しいと思います。
その問題を解決してくれるのが、XAMPP(ザンプ)になります。
システムを開発するにあたり、色々なソフトウェアをダウンロードし、インストールしたあと、設定を行い、やっと開発できる環境が整います。その手間を一つのソフトウェアをダウンロードして、インストールすることで、細かい設定など含んだ状態で、開発出来るようになりなす。
そしてXAMPPは提供しているソフトウェアが全てフリーソフトのため、設定など変更して再配布していますが、全て完全無償で提供されています。
一般的には、企業ごとに秘伝のタレ的な環境設定が存在していたのですが、それを知らなくても一般的な開発環境が初心者でも簡単に作成できます。
※公開サーバの設定は、今でも秘伝のタレ的設定があると思いますので、そのまま開発環境を公開することはありませんの、ご注意ください。
XAMPPはApache Friendsによって提供されていて、10年以上の実績があります。
XAMPPでインストールできるソフトウェア
そもそも、XAMPPの名前の由来ですが、X(クロスプラットフォーム)、A(Apache)、M(MySQL/MariaDB)、P(PHP)、P(Perl)の頭文字をとっています。
PHPやPerlで開発する際に、LAMP(Linux, Apache, MySQL, PHP or Perl)という環境を構築していたのですが、OS(オペレーティングシステム)が、Linuxであるとローカル環境構築が難しかったので、Windowsで開発できる環境を簡単に構築できるよう提供されていました。
その時代は、どのように開発していたかというと、レンタルサーバを借り、大抵の場合はOSがLinuxで、PHPやPerlがインストールされており、MySQLが入っていました。なので、環境構築せずにサーバ上で開発することをしていました。
ローカルでファイルを編集後、FTPでサーバにプログラムを更新し、ブラウザで確認という作業を行います。
XAMPP
X クロスプラットフォーム(Windows, Mac, Linuxなど)
A Apache
M MySQL/MariaDB
P PHP
P Perl
上記以外に、FileZilla(FTPサーバ)、Mercury(メールサーバ)、Tomcat(JavaのWebアプリケーションサーバ)がインストールされます。
Tomcatに関しては、eclipseなどを利用することで、実行環境が入るため、あまり利用しないかもしれません。
Mercuryに関しても、XAMPPでメール送るの難しいなどの記事があるため、あまり利用していないです。
クロスプラットフォーム
無償で開発できる環境として、Linuxがありましたが、初心者にはかなりハードルが高いです。
利用しているPCのOS(オペレーティングシステム)は、大抵の場合、WindowsまたはMacOSになると思います。
既存のOS上で、仮想OSを動かすことも可能なのですが、やはり初心者にはハードルが高いようです。
そこで、WindowsでもMacOSでも起動できるよう、クロスプラットフォームの開発環境が必用となったわけです。
※クロスプラットフォームは、マルチプラットフォームとも呼ばれることがあります。
Apache
世界でもっとも有名なWebサーバです。現在では、nginx(エンジンエックス)がシェアを伸ばしています。
Apacheは公開ディレクトリ(XAMPPではhtdocs)に配置したファイルを、HTTPプロトコルで返却する機能を提供します。
簡単に言えば、ブラウザでアクセスして、ファイルがあれば返す役割を果たすソフトウェアです。
ただ、プログラムは出来ないので、CGI(Common Gateway Interface)を利用して、動的な動きを構築します。
XAMPPでは、動的な動きを構築するのに、PHPやPerlを利用します。
PHP
動的な型付けと簡易的な記述方法で、人気のあるプログラミング言語です。
正式名称は、PHP: Hypertext Preprocessorなのですが、なんで、略語にPHPが入っているのか謎ですね。こういうのを再帰的頭字語と言います。
Apacheでは動的なページ(検索や登録など)が構築できない為、動的なページを構築する際にはプログラミング言語が必用になります。
元々はPerl上で動作する言語だったのですが、処理速度が遅いため、Cで書き直され、Apacheに組み込む形で動作するプログラミング言語になりました。
特徴として、HTMLにプログラムを埋め込むように記述できる点で、<?php から ?> の間にプログラムを埋め込んでいきます。
Javaに比べて、静的な型ではなく、値によって変数の型が動的にかわるように出来ているため、初心者には分かりやすく、簡単にプログラムを作成することが出来るのが特徴になります。
Perl
プログラミング言語です。日本でも既存資産がある会社では、いまだに根強い人気があります。
特長としては、テキスト処理に関して、ライブラリが豊富で、昔から使われていたことが上げられますが、現在ではPHPを選択するほうが多くなってきました。
MariaDB
データベースのソフトウェアです。MySQLがOracleに買収されたあと有料化を視野にいれていたことから、プロジェクトが分離し出来たデータベースです。
XAMPPのコントローラにMySQLと記載がありますが、中身はMariaDBが起動します。
データベースの管理ソフトとして、PhpMyAdminがありますが、MySQLと同様に利用することができます。
XAMPPのコントローラのMySQL部分にある、Configボタンを押下すると起動でき、データベースを簡単に操作することができます。
Webアプリケーション
そもそも、Webアプリケーションとは、何か初心者には理解しづらいと思います。
簡単に言うと、ブラウザで動くアプリケーションになります。
例えば、会社のホームページにある、問い合わせフォームや、ECサイトなどのショッピング機能などが該当します。
ブラウザから要求(リクエスト)を受けて、ブラウザに応答(レスポンス)を返すものになります。
ここで、Webサーバ(Apache)は、リクエストを受け付け、レスポンスを返す役割を果たします。
ただ、プログラムは別のソフトウェアに任せる為、PHPやPerlが必用になります。
Apacheから直接データベースの操作は出来ないので、Apacheは特定のURLが要求されたときに、PHPに処理をお願いします。
PHPはデータベースにアクセスできるので、データベースとやりとりをして、HTMLを作成し、Apacheに返すという流れで、動的なプログラムを実現しています。