XAMPP PHP開発環境セットアップメモ
XAMPPはインストールするだけですぐに使用できるPHP開発環境です。バーチャルホストとFake Sendmailを設定するセットアップ方法をまとめておきます。
XAMPPのインストール
PHPの開発環境にXAMPPを使用しています。再インストールした際などの参考にするため自分なりのセットアップ方法をまとめておきます。OSはWindowsです。まずダウンロードしましょう。下記ページからダウンロードできます。
installer.exeファイルがダウンロードできたらインストールしていきます。この記事を書いている時点でのXAMPPのバージョンは8.1.6です。セットアップウィザードで手順通りインストールしていけば問題ありません。
インストールするコンポーネントを選択する画面で使用しないもののチェックをはずします。私の場合はApache、MySQL、PHP、phpMyAdmin、Fake Sendmailのみ使用します。
あとはデフォルトの設定で進めていきインストールします。
これでインストール完了です。デフォルトのインストール先はC:\xamppになります。
MySQLのパスワードの設定
XAMPPがインストールできたら、まずはphpMyAdminを使用してMySQLのパスワードを設定します。XAMPPのコントロールパネルでApacheとMySQLを起動してMySQLのAdminボタンを押せばブラウザでphpMyAdminが起動します。
パスワードを設定するにはユーザーアカウントのタブに移動し、ユーザ名root、ホスト名localhostの「権限を編集」画面に移動し「Change Password」ボタンを押せば設定画面へ移動できます。
任意のパスワードを設定しましょう。パスワードを設定すると同時にエラーメッセージが表示されます。
これは設定したパスワードでログインしていないので接続が拒否されるためです。エラーメッセージにも記載されているconfig.inc.phpを編集する必要があります。
config.inc.phpはC:\xampp\phpMyAdminディレクトリにありますので編集します。config.inc.phpのAuthentication type and infoの項目が下記のようになっています。
C:/xampp/phpMyAdmin/config.inc.php
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
$cfg['Servers'][$i]['password']に先ほどphpMyAdminで設定したパスワードを入力して下記のようにします。
c:/xampp/phpMyAdmin/config.inc.php
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'your-password';//←設定したパスワードをいれる
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
これでconfig.inc.phpを保存すればパスワードの設定は完了です。XAMPPのコントロールパネルでMySQLを再起動すれば設定が反映されて問題なくphpMyAdminが起動できます。
バーチャルホストの設定
XAMPPをインストールしたデフォルトの設定ではApache(サーバー)のルートディレクトリはC:\xampp\htdocs となっていてポートは80番が割り当てられています。C:\xampp\htdocs内でプロジェクトごとにフォルダを作成して管理したいのでバーチャルホストを設定し各プロジェクトにそれぞれのポートを割り振るように設定します。
バーチャルホストの設定ファイルはC:\xampp\apache\conf\extra内のhttpd-vhosts.confです。httpd-vhosts.confの末尾に下記設定を付け足します。
C:/xampp/apache/conf/extra/httpd-vhosts.conf 末尾
Listen 50001
<VirtualHost *:50001>
DocumentRoot "C:/xampp/htdocs/project01/public"
</VirtualHost>
Listen 50002
<VirtualHost *:50002>
DocumentRoot "C:/xampp/htdocs/project02/public"
</VirtualHost>
XamppのコントロールパネルでApacheを再起動するとポートの50001と50002が表示されているのが確認できます。
割り振るポート番号についてはダイナミックポート番号である49152~65535のどれかを割り振っておけば問題なさそうです。覚えやすい50001から使用しています。
動作を確認しておきましょう。htdocs内にproject01フォルダを作成し、その中にpublicフォルダを作成して下記index.phpファイルを入れてみましょう。
C:/xampp/htdocs/project01/public/index.php
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Project01</title>
</head>
<body>
<h1>Project01 <?= date('Y') ?></h1>
<h3>port:50001</h3>
</body>
</html>
Apacheを起動しブラウザでhttp://localhost:50001にアクセスすると/project01/public/index.phpを表示してくれます。
プロジェクトの数に応じて、httpd-vhosts.confの記載を変更して使用するポートを増やして使用しています。バーチャルホストの設定については以上です。
Fake Sendmailの設定
Fake Sendmailはフォームの送信テストに使用します。私はGmailを使用してローカル環境からのメール送信テストに使用しています。まずphp.iniの[mail function]のSMPT、smpt_port、sendmail_pathを下記のように設定します。
C:/xampp/sendmail/sedmail.ini
smtp_server=smtp.gmail.com
smtp_port=587
auth_username=yourmail@gmail.com //使用するGmailアドレス
auth_password=xxxxxxxxxxxxxxxx //アプリのパスワード
アプリのパスワードはGoogleアカウントにログインし取得します。Googleアカウントにログインしセキュリティタブに移動すると「Googleへのログイン」という項目があります。2段階認証プロセスをオンにしているとその下に「アプリのパスワード」があるのでそれを押します。
再度ログインを求められるのでログインするとアプリのパスワードを生成できる画面に移動します。
アプリを選択のタブを「メール」に、デバイスを選択のタブを「その他(名前を入力)」して任意の名前をつけます。今回はsendmailにします。
生成ボタンを押すと16文字のパスワードが表示されるので、このパスワードをsendmail.iniのauth_passwordに設定すれば完了です。動作を確認しておきましょう。htdocs内に下記のようにmail.phpを作成します。
C:/xampp/htdocs/mail.php
<?php
$to = 'youremail@example.com'; //受信用のメールアドレスを記載する
$subject = "Sendmailテスト";
$message = "Sendmailテストのメッセージ本文";
$headers = [];
mb_send_mail($to, $subject, $message, $headers);
?>
htdocsでターミナルを立ち上げ下記コマンドを実行します。
mail.phpの実行
php mail.php
これで受信用のメールを確認するとsendmail.iniに設定したGmailからメッセージが届いているのが確認できます。
XAMPPはインストールするだけですぐに使用できる便利なツールですが少し設定するだけでさらに便利に使えますね。PHP初心者の方の参考になれば幸いです。