XAMPPセキュリティの設定~データーベース(phpAdmin)編~

    • このページをはてなブックマークに追加

    「XAMPP」をインストールした後の必要最低限のセキュリティ設定について解説します。XAMPPを起動する前に、データーベースのパスワードを設定してみましょう。XAMPPのインストール方法については、関連記事をご参考下さい。

    最終更新日:2018年3月19日

    関連記事:XAMPPをインストールしてみよう!
    関連リンク:XAMPP公式サイト[https://www.apachefriends.org/jp/index.html]

    目次

    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」の事だと解釈して下さい。

    ●サービスを起動する

    mysql2

    Apache」と「MySQL」の文字背景が黄緑色になり、「Start」ボタンから「Stop」ボタンへと変わります。ApacheMySQLの横にある「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」

    mysql5

    この二つのページが表示されれば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の起動

    shell1

    Shell」は、一行ずつコマンド(命令)を送ることで、ファイルのコピーをしたり、フォルダーの変更など色々な事ができるツールです。「MySQL」のコマンドを使ってユーザーのパスワード変更を行います。青字の「[email protected]」の箇所は個人の環境ごとに異なりますので、適宜置き換えて下さい。

    ▲ページトップへ戻る

    2.1.2. MariaDB(MySQL)コマンドフォルダへ移動する

    Shell」の井桁記号「#」の横に

    cd mysql\bin

    と入力して「Enter」キーを押して下さい。

    ●MySQLコマンドフォルダへの移動

    shell2

    mysql\bin」はMySQLのコマンドが入っているフォルダーで、ここに移動して命令を出してあげます。

    ▲ページトップへ戻る

    2.1.3. MariaDB(MySQL)にログインする

    なおコマンドを入力する行にある記号「#」は「プロンプト」と呼びます。プロンプトに続いて、「MySQLデーターベースに "root"という名前のユーザー(-u)でログインします」という意味のコマンド

    「mysql -u root」

    を入力して「Enter」キーを押して下さい。

    ●MariaDB(MySQL)へのログイン

    shell3

    すると「Welcome to the MariaDB monitor. ~」から始まるメッセージが表示され、最後に「MariaDB [(none)]>」と表示されます。DBの表示が統一されていないので紛らわしいのですが、MariaDB=MySQLと考えて下さい。今は、「MariaDB(MySQL)」にrootユーザーでログインした状態です。

    ▲ページトップへ戻る

    2.1.4. root ユーザーのパスワードを設定する

    次に、

    set password=password('your_password');

    と入力して「Enter」キーを押します。

    ●パスワードの設定

    shell4

    「your_password」のところは、自分の分かりやすいパスワードに変更して、決して忘れないで下さい。
    「Query OK」と表示されれば管理ユーザーのパスワード設定が正常に完了です。

    ▲ページトップへ戻る

    2.1.5. Shellを終了させる

    現在「MariaDB(MySQL)」にrootユーザーでログインしている状態ですので、接続を終了するコマンド「quit」をプロンプトに入力して「Enter」キーを押します。

    ●Shellの終了

    shell5

    PC上の「c:\xampp\mysql\bin」フォルダーに戻ってきました。
    Shellのウィンドウは[×]で閉じても構いませんが、せっかくなので、コマンドの「exit」を打ってウィンドウを閉じてみましょう。

    ▲ページトップへ戻る

    2.2 phpMyAdminの認証設定

    2.2.1. phpMyAdminにログインする

    rootユーザーのパスワードを設定したので、「XAMPP コントロールパネル(XAMPP Control Panel)」を開いて、"MySQL"の「Admin」ボタンをクリックしてphpMyAdminにログインできるか確認してみましょう。

    phpMyAdminでデーターベースに接続しようとすると、「接続せきません。設定が無効です。」のエラーメッセージが表示されます。

    ●phpMyAdminのエラーメッセージ

    mysql11

    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のログイン認証画面

    mysql18

    正常にサービスが起動したら、「MariaDB(MySQL)」の「Admin」をクリックして下さい。phpMyAdminログイン認証のページが開かれます。

    ▲ページトップへ戻る

    2.2.4. ブラウザーのキャッシュをクリアする

    設定ファイルも間違いなく修正したのに、ログインの認証画面が表示されずエラーになるという場合は、ブラウザーの履歴やキャッシュの削除をしてみて下さい。開発時に以前の設定がブラウザーのキャッシュに残っていてうまく動作しない!という事はよくある事ですので覚えておくとよいでしょう。また、設定ファイルを変更した場合は必ずサービスの停止(Stop)と開始(Start)を押して新しい設定情報を読み込む事を忘れないで下さい。

    ●Chromeの閲覧履歴データの消去ウィンドウ

    mysql20

    IEよりもChromのキャッシュは消えにくいので、履歴のリフレッシュ作業をすると問題解決する場合があります。 Chromeブラウザーをアクティブな状態にしてから「Ctrl+H」キーを押すか、もしくはブラウザー右上の「Chromeの設定」イコンから[履歴]→[履歴]を選択します。[閲覧履歴データの消去]ボタンを押すとポップアップウィンドウが出てきますので、「キャッシュされた画像とファイル」にチェックを入れて、下の[閲覧履歴データを消去する]ボタンを押して下さい。また、念のためphpMyAdminを開いた履歴だけを削除すればキャッシュはクリアになり、phpMyAdminのログイン認証画面がでてくるはずです。

    ▲ページトップへ戻る

    2.2.5. phpMyAdminの認証画面でID(root)とPWDを使ってログインする

    ユーザー名には「root」、パスワードは先ほど設定した「your_password」を入力して実行ボタンをクリックして下さい。
    phpMyAdmin」の管理画面が表示されます。

    ●phpMyAdminへのログイン(root)

    mysql19

    これで、管理者用ユーザーの「root」のパスワードの設定及びphpMyAdminのログイン認証の設定が完了しましたので、必要最低限のセキュリティは確保できたことになります。今回は「XAMPP」のセキュリティ設定を通して、サービスの起動の仕方や、Adminツールの呼び出し方なをど説明しました。「XAMPP」で出来ることは、まだまだたくさんありますが、まずは基本中の基本を覚えてから次のステップへと進んでゆきましょう。

    ▲ページトップへ戻る

    【関連記事】XAMPPをインストールしてみよう!
    【関連記事】xamppの設定 ~PHP設定ファイルの確認と編集~
    【関連記事】xamppの設定 ~Apache設定ファイルの確認と編集~

    • このページをはてなブックマークに追加

    おすすめ記事

  • OCTPASS

    ピックアップ

    フリーランス

    【Android】システムエンジニア★医療系企業向け総合支援プラットフォーム開発 NEW

    月額単価 :80万円〜

    医療系企業に特化した、医薬会社取引先とのチャット機能や、 従業員の勤怠管理、eラーニング、医師のア...

    フリーランス

    【Java】システムエンジニア★医療系企業向け総合支援プラットフォーム開発 NEW

    月額単価 :80万円〜

    医療系企業に特化した、医薬会社取引先とのチャット機能や、 従業員の勤怠管理、eラーニング、医師のア...

    フリーランス

    【TypeScript/Rust】フルスタックエンジニア★不動産売買支援クラウドシステムリプレイス NEW

    月額単価 :100万円〜

    不動産売買業務における物件と顧客に関する膨大なやり取りや 情報をまとめて管理し、業務改善を支援す...

    フリーランス

    【HTML/CSS/JavaScript/EC-CUBE2】WEBデザイナー・コーダー★ECパッケージサイト構築

    大手企業の自社ECパッケージの構築をお任せします。 また、今後はアパレル、食品などのテンプレート...

    フリーランス

    【Android Java】サーバーサイドエンジニア★大手企業向けスマホアプリ開発

    月額単価 :80万円〜

    大手企業より受託開発を行っている企業内にて スマホアプリのサーバーサイドの実装を お任せします。 ...