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

    公開日:2018年03月19日 最終更新日:2022年04月25日

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

    関連記事: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/)

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

    ウェブツールを使ってのセキュリティ設定ができなくなり、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

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

    Apache」と「MySQL※」の横の「Start」ボタンを押してウェブ(Web)サービスの「Apache」とデーターベースサービスの「MySQL[MariaDB]」を起動します。

    ※「MariaDB」は「MySQL」から派生したデーターベースで、MySQLと同じように利用できます。インターフェースの一部表示に「MySQL」とでてくる箇所がありますが「MariaDB」の事だと解釈して下さい。

    ●サービスを起動する

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

    Apache」と「MySQL」の文字背景が黄緑色になり、「Start」ボタンから「Stop」ボタンへと変わります。ApacheMySQLの横にある「PID(s)」と「Port(s)」の項目にそれぞれ番号が振られていれば正常にサービスが起動した証拠です。

    また、PIDとPort番号は下のボックス内でも確認できます。青色の文字で「Apache:80, 433」、「MySQL:3306」のポート(Port)が割り当てられています。
    この状態で、今度は「Apache」と「MySQL」の「Admin」ボタンを押してみて下さい。

    ●Apacheの「Admin」

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

    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」

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

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

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

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

    ▲ページトップへ戻る

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

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

    cd mysql\bin

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

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

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

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

    ▲ページトップへ戻る

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

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

    「mysql -u root」

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

    ●MariaDB(MySQL)へのログイン

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

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

    ▲ページトップへ戻る

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

    次に、

    set password=password('your_password');

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

    ●パスワードの設定

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

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

    ▲ページトップへ戻る

    2.1.5. Shellを終了させる

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

    ●Shellの終了

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

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

    ▲ページトップへ戻る

    2.2 phpMyAdminの認証設定

    2.2.1. phpMyAdminにログインする

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

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

    ●phpMyAdminのエラーメッセージ

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

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

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

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

    ▲ページトップへ戻る

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

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

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

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

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

    ▲ページトップへ戻る

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

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

    ●phpMyAdminへのログイン(root)

    XAMPPセキュリティの設定【フリーランスエンジニア案件情報 | プロエンジニア】

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

    ▲ページトップへ戻る

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

    最新案件情報をチェック!

    月額単価60万円〜70万円
    勤務地 東京都 港区
    勤務地 フルリモート
    月額単価60万円〜70万円
    勤務地 東京都 港区
    勤務地 フルリモート
    月額単価60万円〜70万円
    勤務地 東京都 港区
    月額単価100万円〜
    勤務地 東京都 品川区
    勤務地 フルリモート

    フリーランスの方でこのようなお悩みありませんか?

    • 定期的に案件を紹介してほしい
    • 完全フルリモートワークや、週1出勤など、働き方を選びたい
    • 単価交渉など営業周りが苦手なので、誰かに任せたい

    プロエンジニアにお任せください!

    プロエンジニアはほとんどEND直案件!高額単価案件ならお任せください。
    完全フルリモートや、週1出勤など、希望に合わせた働き方ができる案件を多数ご用意しています。
    単価や契約交渉などは弊社キャリアコンサルタントに全てお任せください。

    無料登録して、あなたの希望に合った案件をチェック!

    簡単60秒!無料登録はこちらから

    おすすめ記事

  • ピックアップ

    フリーランス

    【PHP(Laravel)/Nuxt.js】フルスタックエンジニア★保活支援ポータルサイトの開発

    保育・教育施設向けICTシステムやSaaSを展開している企業にて、保護者向け(園探しをサポートする)サー...

    月額単価:60万円〜70万円

    フリーランス

    【PHP】フルスタックエンジニア★保育・教育施設向け業務支援サービスの開発

    保育・教育施設向けICTシステムやSaaSを展開している企業にて、当システムの開発支援業務をご担当いただ...

    月額単価:60万円〜70万円

    フリーランス

    【JavaScript/PHP】フルスタックエンジニア★運送業界向け業務管理システムの開発

    運送業界に特化したサービスを展開している企業にて、今回は運送業界向け業務管理システムのフルスタッ...

    月額単価:60万円〜70万円

    フリーランス

    【Go/Ruby/PHP/TypeScript】フルスタックエンジニア★某大手ネット印刷プラットフォームの基幹システム開発

    某大手ネット印刷プラットフォームを展開する企業にて、基幹業務システムの開発プロジェクトに入って開...

    月額単価:100万円〜

SCROLL TOP