「XAMPP」をインストールした後の必要最低限のセキュリティ設定について解説します。XAMPPを起動する前に、データーベースのパスワードを設定してみましょう。XAMPPのインストール方法については、関連記事をご参考下さい。
関連記事:XAMPPをインストールしてみよう!
関連リンク:XAMPP公式サイト[https://www.apachefriends.org/jp/index.html]
目次
1.1 XAMPPで最低限必要なセキュリティ
1.2 XAMPP Control Panelでサービスを起動する
2.1 MariaDB(MySQL)の管理者用IDのパスワードの設定
2.1.1. Shellを起動する
2.1.2. MariaDB(MySQL)コマンドフォルダへ移動する
2.1.3. MariaDB(MySQL)にログインする
2.1.4. root ユーザーのパスワードを設定する
2.1.5. Shellを終了させる
2.2.1. phpMyAdminにログインする
2.2.2. phpMyAdminの設定ファイル(config.inc.php)を編集する
2.2.3. phpMyAdminを起動する
2.2.4. ブラウザーのキャッシュをクリアする
2.2.5. phpMyAdminの認証画面でID(root)とPWDを使ってログインする
1. XAMPPを使う前に
前回のコラム「XAMPPをインストールしてみよう!」では、Windows 10(64bit OS)に「XAMPP 7.1.9 (PHP 7.1.9)」をインストールしました。今までの「XAMPP」と比較して大きく異なる点があります。2015年7月23日のアップデート(v5.6.11)で、データーベースが「Mysql」から「MariaDB」に変更された事と「XAMPP」セキュリティを設定するウェブツールがなくなったことです。
「XAMPP」のFAQには「http://localhost/security/」にアクセスして、セキュリティの設定をして下さいとありますが、「XAMPPセキュリティ」のページはなくなっています。ドキュメントの訂正が追いついていないようです。
「XAMPセキュリティページ」がなくなったので、データーベースのパスワードはコマンドベースで設定します。
●「XAMPP v5.6.11」で廃止されたブラウザーツール(https://localhost/security/)
ウェブツールを使ってのセキュリティ設定ができなくなり、DB管理者の認証・パスワード設定が少し難しくなりましたが、大事な設定なので一つずつ順を追って説明します。
1.1 XAMPPで最低限必要なセキュリティ
セキュリティの設定は、何故必要なのでしょうか?
「XAMPP」のFAQには、XAMPPインストール直後は、
「MariaDBの管理者パスワードが設定されていない為、ネットワーク経由で外部からアクセス可能な状態で」で「ブラウザーでデーターベースを管理する"PhpMyAdmin"がネットワーク経由でアクセス可能な状態」
である為、必要最低限のセキュリティ設定を行って下さいと記述されています。 その他に「メールサーバーやファイルサーバーについてのセキュリティ設定もきちんとして下さい」と明示されています。本コラムでは、必要最低限のデーターベース(DataBase)サーバー「MariaDB」のパスワードの設定を解説します。
1.2 XAMPP Control Panelでサービスを起動する
セキュリティ設定の前に、「XAMPP」の基本的な使い方を説明します。
まず、[スタートメニュー]の[すべてのプログラム]→[XAMPP ]→[XAMPP Control Panel]を選択し、「XAMPP コントロールパネル(XAMPP Control Panel)」を立ち上げます。
●XAMPP Control Panel
「Apache」と「MySQL※」の横の「Start」ボタンを押してウェブ(Web)サービスの「Apache」とデーターベースサービスの「MySQL[MariaDB]」を起動します。
※「MariaDB」は「MySQL」から派生したデーターベースで、MySQLと同じように利用できます。インターフェースの一部表示に「MySQL」とでてくる箇所がありますが「MariaDB」の事だと解釈して下さい。
●サービスを起動する
「Apache」と「MySQL」の文字背景が黄緑色になり、「Start」ボタンから「Stop」ボタンへと変わります。Apache、MySQLの横にある「PID(s)」と「Port(s)」の項目にそれぞれ番号が振られていれば正常にサービスが起動した証拠です。
また、PIDとPort番号は下のボックス内でも確認できます。青色の文字で「Apache:80, 433」、「MySQL:3306」のポート(Port)が割り当てられています。
この状態で、今度は「Apache」と「MySQL」の「Admin」ボタンを押してみて下さい。
●Apacheの「Admin」
Apacheの「Admin」ボタンをクリックすると、ブラウザーが立ち上がり「Welcom to AMPP for Windows 7.1.9」のページが表示されます。このページが表示されればWebサービスのApacheが正常に動作している証拠になります。
ブラウザーのURLは、「http://localhost/dashbord」となっています。Apache Web サービスを自身のPC上で動かすときのアドレスは「localhost」になります。
「MySQL」の「Admin」ボタンをクリックすると、ブラウザーでデーターベースを管理することの出来る「phpMyAdminが表示されます。
●MySQLの「Admin」
この二つのページが表示されればWebサービス、データーベースサービス共に正常に動いています。自身のPCがウェブサーバーとデーターベースサーバーとして動作している事になります。
ただし、今のままだとセキュリティの設定をしていませんので、悪意のあるプログラムなどから攻撃される可能性がある不安定な状態です。ページを確認したら、早速セキュリティの設定をしましょう。
※セキュリティの設定をせずに、「XAMPP Control Panel v3.2.2」を終了させる場合の注意点は、「Quit」ボタンで終了したり、ウィンドウのバツ(×)マークを押してコントロールパネルを閉じない事です。必ずサービスの「Stop」ボタンを押してサービスの停止をして下さい。
ソフトを落としてもPCの電源が入っていて、LANにつながっていればサービスが起動したままになります。
2. XAMPP セキュリティの設定
2.1 MariaDB(MySQL)の管理者用IDのパスワードを設定する
2.1.1. Shellを起動する
まず初めに「MariaDB(MySQL)」の管理ユーザー(root)のパスワードが設定されていませんので、コマンドモードでパスワードの設定をしてみましょう。
MariaDB(MySQL)のサービスを起動させたまま、「XAMPP コントロールパネル(XAMPP Control Panel)」右側にあるメニューの中から「Shell」ボタンをクリックして下さい。
●Shellの起動
「Shell」は、一行ずつコマンド(命令)を送ることで、ファイルのコピーをしたり、フォルダーの変更など色々な事ができるツールです。「MySQL」のコマンドを使ってユーザーのパスワード変更を行います。青字の「UserName@ComputerName」の箇所は個人の環境ごとに異なりますので、適宜置き換えて下さい。
2.1.2. MariaDB(MySQL)コマンドフォルダへ移動する
「Shell」の井桁記号「#」の横に
「cd mysql\bin」
と入力して「Enter」キーを押して下さい。
●MySQLコマンドフォルダへの移動
「mysql\bin」はMySQLのコマンドが入っているフォルダーで、ここに移動して命令を出してあげます。
2.1.3. MariaDB(MySQL)にログインする
なおコマンドを入力する行にある記号「#」は「プロンプト」と呼びます。プロンプトに続いて、「MySQLデーターベースに "root"という名前のユーザー(-u)でログインします」という意味のコマンド
「mysql -u root」
を入力して「Enter」キーを押して下さい。
●MariaDB(MySQL)へのログイン
すると「Welcome to the MariaDB monitor. ~」から始まるメッセージが表示され、最後に「MariaDB [(none)]>」と表示されます。DBの表示が統一されていないので紛らわしいのですが、MariaDB=MySQLと考えて下さい。今は、「MariaDB(MySQL)」にrootユーザーでログインした状態です。
2.1.4. root ユーザーのパスワードを設定する
次に、
「set password=password('your_password');」
と入力して「Enter」キーを押します。
●パスワードの設定
「your_password」のところは、自分の分かりやすいパスワードに変更して、決して忘れないで下さい。
「Query OK」と表示されれば管理ユーザーのパスワード設定が正常に完了です。
2.1.5. Shellを終了させる
現在「MariaDB(MySQL)」にrootユーザーでログインしている状態ですので、接続を終了するコマンド「quit」をプロンプトに入力して「Enter」キーを押します。
●Shellの終了
PC上の「c:\xampp\mysql\bin」フォルダーに戻ってきました。
Shellのウィンドウは[×]で閉じても構いませんが、せっかくなので、コマンドの「exit」を打ってウィンドウを閉じてみましょう。
2.2 phpMyAdminの認証設定
2.2.1. phpMyAdminにログインする
rootユーザーのパスワードを設定したので、「XAMPP コントロールパネル(XAMPP Control Panel)」を開いて、"MySQL"の「Admin」ボタンをクリックしてphpMyAdminにログインできるか確認してみましょう。
phpMyAdminでデーターベースに接続しようとすると、「接続せきません。設定が無効です。」のエラーメッセージが表示されます。
●phpMyAdminのエラーメッセージ
phpMyAdminは、ログイン情報を設定ファイルから読み込む仕様になっていますので、このファイルの設定を変更してあげる必要があります。
設定前に、「Apache」と「MariaDB(MySQL)」の「stop」ボタンを押してサービスを終了させて下さい。
サービスを終了してからウィンドウの[×]で閉じるか右メニューの「Quit」ボタンを押して「XAMPP コントロールパネル(XAMPP Control Panel)」を終了します。
2.2.2. phpMyAdminの設定ファイル(config.inc.php)を編集する
phpMyAdminの設定ファイル「config.inc.php」を書き換えてログインの認証方法を変更します。
「XAMPP」を「C:\xampp」にインストールした場合、設定ファイルは
「C:\xampp\phpMyAdmin\config.inc.php」
にあります。設定ファイルをテキストエディターで開いて、「/* Authentication type and info */」の設定を書き換えます。
●設定ファイル[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'] = '';
3行目「$cfg['Servers'][$i]['user'] = 'root';」のユーザーはrootが指定してありますので、4行目「$cfg['Servers'][$i]['password'] = '';」に先ほど設定したパスワード(your_password)を設定しても構いませんが、ファイルにパスワードを保存するのは、セキュリティ上あまりおすすめしませんので、phpMyAdminを開く時に、ログイン認証される設定に変更しましょう。
●config.inc.php
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
2行目 ['auth_type'] を「'config'」から「'cookie'」に変更して下さい。
また3行目 ['user'] の「'root'」は削除「''」して下さい。変更が終わったらファイルを保存します。
2.2.3. phpMyAdminを起動する
先ほど終了した「XAMPP コントロールパネル(XAMPP Control Panel)」を開いて、「Apache」と「MariaDB(MySQL)」のサービスを「Start」させます。
●phpMyAdminのログイン認証画面
正常にサービスが起動したら、「MariaDB(MySQL)」の「Admin」をクリックして下さい。phpMyAdminのログイン認証のページが開かれます。
2.2.4. ブラウザーのキャッシュをクリアする
設定ファイルも間違いなく修正したのに、ログインの認証画面が表示されずエラーになるという場合は、ブラウザーの履歴やキャッシュの削除をしてみて下さい。開発時に以前の設定がブラウザーのキャッシュに残っていてうまく動作しない!という事はよくある事ですので覚えておくとよいでしょう。また、設定ファイルを変更した場合は必ずサービスの停止(Stop)と開始(Start)を押して新しい設定情報を読み込む事を忘れないで下さい。
●Chromeの閲覧履歴データの消去ウィンドウ
IEよりもChromのキャッシュは消えにくいので、履歴のリフレッシュ作業をすると問題解決する場合があります。 Chromeブラウザーをアクティブな状態にしてから「Ctrl+H」キーを押すか、もしくはブラウザー右上の「Chromeの設定」イコンから[履歴]→[履歴]を選択します。[閲覧履歴データの消去]ボタンを押すとポップアップウィンドウが出てきますので、「キャッシュされた画像とファイル」にチェックを入れて、下の[閲覧履歴データを消去する]ボタンを押して下さい。また、念のためphpMyAdminを開いた履歴だけを削除すればキャッシュはクリアになり、phpMyAdminのログイン認証画面がでてくるはずです。
2.2.5. phpMyAdminの認証画面でID(root)とPWDを使ってログインする
ユーザー名には「root」、パスワードは先ほど設定した「your_password」を入力して実行ボタンをクリックして下さい。
「phpMyAdmin」の管理画面が表示されます。
●phpMyAdminへのログイン(root)
これで、管理者用ユーザーの「root」のパスワードの設定及びphpMyAdminのログイン認証の設定が完了しましたので、必要最低限のセキュリティは確保できたことになります。今回は「XAMPP」のセキュリティ設定を通して、サービスの起動の仕方や、Adminツールの呼び出し方なをど説明しました。「XAMPP」で出来ることは、まだまだたくさんありますが、まずは基本中の基本を覚えてから次のステップへと進んでゆきましょう。
【関連記事】XAMPPをインストールしてみよう!
【関連記事】xamppの設定 ~PHP設定ファイルの確認と編集~
【関連記事】xamppの設定 ~Apache設定ファイルの確認と編集~