XAMPPでPHPを実行する

前回、XAMPPをインストールしました。次は、PHPのテスト環境としてXAMPPを使用してみます。(参考: XAMPPのインストール)

目標

本記事の目標は、XAMPPの設定を行い、PHPの開発環境として使用できるようにすることです。

XAMPPを始める

[警告]XAMPP Control Panelを閉じる前には、モジュールが全て終了していることを確認してください。

方法1 xampp/xampp-control.exeを使う

“xampp/xampp-control.exe”を右クリックするか、スタートメニューの”XAMPP Control Panel”を右クリックして、管理者として実行します。

コントロールパネルの”Start”ボタンをクリックします。

もしモジュールがサービスに追加されている場合は、”Service”チェックボックスにチェックがついています。
*管理者として実行していないと、ここでチェックボックスがチェックされているかどうか見ることができません。

以下の記事では、すべてのモジュールは。サービスとして登録されていないことを想定しています。

“Start”をクリックしてApacheを起動し、localhostにアクセスしてapacheが起動していることを確認してください。

Open browser and input “localhost”
The index page of XAMPP

方法2 バッチファイルを使用する

それぞれのアプリケーションを個別に起動するには、xamppディレクトリの中にある以下のバッチファイルを使用します。

xamppxampp_start.exe
xamppxampp_stop.exe
xamppapache_start.bat
xamppapache_stop.bat
mysql_start.bat, mercury_start.bat and filezilla_start.bat

PHPプログラムを実行する

ディレクトリ”xampphtdocs”が、localhostに割り当てられているドキュメントルートです。つまり、localhostにアクセスすると、ここに置いたindex.phpが実行されます。

既存のxampp/htdocs/index.phpを開いてみると、header()関数を使って、localhost/dashboardにリダイレクトされていることが分かります。

<?php
	if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
		$uri = 'https://';
	} else {
		$uri = 'http://';
	}
	$uri .= $_SERVER['HTTP_HOST'];
	header('Location: '.$uri.'/dashboard/');
	exit;
?>

1. “test”ディレクトリをxamp/phtdocs内に作成します

ここにテストプログラムを配置していきます。

2. PHPファイルを作成します

今回は、2つのPHPファイルを”test”ディレクトリに作成します。1つは、index.phpで、入力されたデータを送信するページです。2つ目は、posted.phpで、index.phpで入力されたデータを受け取って表示します。

xampp/htdocs/test/index.php

POSTメソッドを使って、入力されたmessageを送信します。fromタグのaction属性は、送信先のURLです。
参考: HTML5タグリファレンス form

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>test</title>
</head>
<body>
	<form action="posted.php" method="POST">
		<label>Input message:</label>
		<input type="text" name="message" /> <input type="submit" value="Submit!" />
	</form>
</body>
</html>

xampp/htdocs/test/posted.php

POSTされたデータは、 $_POST[<name>]で受け取ることができます。この場合、inputフォームのname属性をname=”message”としているので、$_POST[“message”]となります。
参考: PHPマニュアル > 外部から来る変数 > HTML フォーム (GET と POST)

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>posted</title>
</head>
<body>
	<p>Message "<?php echo $_POST["message"] ?> " is posted!</p>
</form>
</body>
</html>

3. ルートのindex.phpのリダイレクト先を変更する

xampp/htdocs/index.php

<?php
	if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
		$uri = 'https://';
	} else {
		$uri = 'http://';
	}
	$uri .= $_SERVER['HTTP_HOST'];
	header('Location: '.$uri.'/test/');  // Change here!
	exit;
?>

4. localhostにアクセスする

localhostにアクセスしてページがlocalhost/test/にリダイレクトされていることを確認してください。好きなメッセージを入力し、Submit!ボタンをクリックしてみます。

postedページが表示され、入力したメッセージが表示されるはずです。