投稿日:2017年4月11日50002017年版XAMPPを安全に導入する方法XAMPPとは何かというのは「以前のページ」で解説しました。以前の解説からXAMPPも進化をしているようでインストールや設定の方法が変更になってます。そこで新しく解説ページを作り直しました。新しいXAMPPにはセキュリティに関する設定がなくなったため、自前で設定します。具体的にはベーシック認証の導入、MySQLのパスワード設定といった項目です。OPcacheの導入方法も解説します。OPcacheの有効化XAMPPのダウンロードとインストールまずはXAMPP公式サイトからダウンロードします。(PHPのバージョン違いが欲しい場合は「その他のバージョンについてはこちらをクリックしてください」のリンクからダウンロードしてください)ダウンロードしたファイルを実行して「次へ」ボタンをクリック。いらないもののチェックを外して「次へ」ボタンをクリック。インストールするフォルダを選択してインストール。(x86)」へインストールすると正しく動作しません。Cドライブ直下がおすすめです。Bitnamiのチェックを外して「次へ」ボタンをクリック。Bitnamiとは、どうやらオープンソースのソフトを簡易インストールするソフトのようです。(WordPressのインストールくらい自分でやっても5分もかからないので個人的には必要ないと思います。)インストールが開始されるのでしばらく待って、FINISH。これでXAMPPのインストールは完了です。XAMPPの初期設定MySQLの初期設定コントロールパネル(C:\xampp\xampp-control.exe)を実行してMySQLを実行。プライベートネットワークの設定すると確認のダイアログが出るので「プライベートネットワーク」にチェックを入れて「アクセスを許可する」ボタンをクリック。(自分のPCでしかアクセスしない場合許可する必要はありません)Apacheの初期設定Apacheも同じように実行します。以下のように赤文字でエラーが出ることがあります。10でIISがポート80を利用しているため、Apacheのプロセスがポート80で起動できないことが原因です。netstatで調べると以下の通りsystemが利用しています。デスクトップ左下の「Windowsを検索」で「windowsの機能」と入力。「windowsの機能の有効化または無効化」をクリック。インターネットインフォメーションサービスのチェックを「■」から「空欄」にして「OK」ボタンをクリック。再起動を促されるので、再起動します。再度コントロールパネルでApacheを実行するとMySQLと同じようにダイアログが出るので許可します。以下のようにApacheとMySQLの欄がグリーンになっていれば正常に起動しています。Windows起動時に自動起動させるには管理者権限でコントロールパネルを開き、左のServiceの欄にチェックを入れてください。以前のXAMPPにはセキュリティをチェックするページがありましたが、現在では廃止されているようです。大人の事情なのか、はたまたそれくらい自分でやれということなのでしょうか?とりあえず以前セキュリティの項目にあった設定を踏襲しておきます。ベーシック認証を導入するApacheのベーシック認証を導入してユーザーIDとパスワードで認証します。外部からアクセスする場合は設定しておきましょう。「C:\xampp\apache\conf\httpd.conf」を開いてファイルの最後に以下のように追加します。valid-user</Directory>それぞれの項目の意味は以下の通りDirectory認証を行うディレクティブを指定(今回はXAMPPの公開ディレクトリ全て)AuthUserFile認証に使うファイルの場所AuthGroupFileグループ認証用(今回は使わない)AuthName認証の領域を設定AuthType認証方法Require認証ユーザーの指定(valid-userは認証ファイルにリストされているユーザーは全て許可という意味)更に詳しく知りたい方はApache公式ページへどうぞ。続いてXAMPPのコントロールパネル(C:\xampp\xampp-control.exe)を実行してShellを実行。以下のコマンドを入力。hoge「hoge」ユーザーを作る例。htpasswdを利用してhogeというユーザーを新規追加(-c)。パスワードファイルの場所は「C:\xampp\apache\conf\.htpasswd」というコマンドです。新しく設定するパスワードを聞かれるので2度入力。hogeこれで設定したユーザー名とパスワードでアクセスできるようになりました。「C:\xampp\htdocs」以下へアクセスすると認証を求められます。これでベーシック認証を導入できました。MySQLのパスワードを設定セキュリティを高めるためMySQLのパスワードも設定しておきます。ベーシック認証で新しいユーザーを作った時と同じようにXAMPPのコントロールパネルからShellを起動します。今回はrootユーザーを作成します。passwordするとパスワードを求められるので任意のパスワードを入力。作成したrootユーザーで利用できるようにphpMyAdminの設定を行います。コントロールパネルのApache側のconfigにphpmyadmin用の設定ファイルがあるのでクリック。(C:\xampp\phpMyAdmin\config.inc.phpを直接編集してもOK)21行目あたりに先程のパスワードを入力。'';これで無事にパスワードの設定が完了です。「http://localhost/phpmyadmin/」へアクセスすれば確認できます。5.5以降でUTC以外の時間を設定する場合は明示的にdate_default_timezone_set()関数で設定するか、php.iniのdate.timezoneに設定してくれとのこと。サーバは殆どの場合は日本時間を利用すると思うので、ローカルでも設定します。「C:\xampp\php\php.ini」の943行目あたり、date.timezoneのコメントアウト削除しAsia/Tokyoとして再起動。「.htaccess」を使うと以下のエラーが出る場合があります。リクエストに応えることができませんでした。スクリプトにエラーがあります。サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。500その際は以下のファイル(C:\xampp\apache\conf\extra\httpd-xampp.conf)を開き。Allに変更してApacheを再起動。apcを導入apcとはPHPを高速化するためのキャッシュ機構です。詳しくは以前の投稿でまとめたので参照してください。4.0.11を利用します。pecl.php.netへダウンロードしに行きます。5.6用のTSバージョンの32bit用を利用します。x86」をダウンロードします。ファイルを解凍して「php_apcu.dll」を「C:\xampp\php\ext」へ移動。「C:\xampp\php\php.ini」を編集。ページの最後に以下の記述を追加。(キャッシュサイズ等は環境に合わせて変更してください。)extension=php_apcu.dll[APCu]apc.enabled=1apc.shm_size=32Mapc.ttl=7200apc.enable_cli=1apc.serializer=phpApacheを再起動して「http://localhost/dashboard/phpinfo.php」でapcやapcuの項目が追加されているか確認します。memcacheを導入キャッシュ技術といえばmemcache。ローカルの環境では恩恵は感じにくい技術ですが、テストに利用することもあると思います。Windowsからダウンロードします。apcのときと同じ要領でtsの32bitバージョンを選びます。具体的には「php_memcache-3.0.8-5.6-ts-vc11-x86.zip」です。ファイルを解凍して「php_memcache.dll」を「C:\xampp\php\ext」へ移動。続いて「C:\xampp\php\php.ini」を編集。ページの最後に以下の記述を追加。(キャッシュサイズ等は環境に合わせて変更してください。11211Apacheを再起動して「http://localhost/dashboard/phpinfo.php」でmemcacheの項目が追加されているか確認します。導入方法はこちらが詳しい。解説より新しいバージョンが出てるようなのでmemcached-1.4.5-x86をダウンロードします。解凍したmemcached-x86をmemcachedに改名してC直下に移動します。コマンドプロンプトを管理者権限で起動して以下のコマンドでインストール。install正しく導入できたかテストします。XAMPPの公開フォルダに適当な名前のPHPファイルを作成して以下の記述を追加。var_dump($get_result);?>ブラウザでアクセスすると以下のように表示されるはずです。1.4.5以降はWindowsが起動した時点で自動起動しなくなりました。そこでタスクスケジューラにコマンドを登録します。コマンドプロンプトを管理者権限で実行して以下のコマンドを実行します。ちなみにmemcachedはApacheの起動後に実行する必要があります。正しく作成されました。コマンドの意味を簡単に解説すると以下の意味です。0000:30実行タスクこれで起動後30秒でmemcachedサーバが自動起動するようになりました。最新のxamppだとdefaultでdllがインストール済みなので、「C:\xampp\php\php.ini」にて設定するだけです。こちらのサイトの記述をそのままいただきます。メモリ量は32MBに減らします。memoryを見ればわかります。以上でXAMPPの設定とキャッシュ系の設定は完了です。キャッシュ系は高速化に寄与しますが、変更点がすぐに反映されないというデメリットもあります。テストする環境に合わせて設定を変更してください。コメントをキャンセルコメントは認証制のため、すぐには反映されません。sukegra」をご利用ください。Share)Linuxの基本の基本。Share)他に運営しているサイトGOいけん世間を騒がせている、あの話題について言いたい。そんなあなたの「ご意見」を世に問うサイト。SUKEGRA「スケグラ」は日本語でプログラミングの悩みを解決するQ&Aサイトです。アクアリウムWikiアクアリウムに関することをみんなでまとめるWikiです。