技術メモ

【2022年版】Windowsに『XAMPP』をインストールする方法と最低限の設定【無料】

2022年1月6日

xampp

 

どうも、白夜霧(@KiRi_Byakuya)です。

 

今回はWindowsの環境に「XAMPP」をインストールする方法と最低限の設定内容の覚書。

 

 

完全無料のウェブアプリケーションパッケージ「XAMPP(ザンプ)」とは?

完全無料のウェブアプリケーションパッケージ「XAMPP(ザンプ)」とは?

 

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージとしてまとめたもので、apachefriends.orgから提供されている。主として開発用あるいは学習用ではあるが、イントラネットなどにおいて実運用環境として使われることもある。

引用:wiki

 

ApacheやPHP、MySQLなどウェブアプリを作る上で必須となるフリーソフトをパッケージ化したソフト。完全に無料で誰でも使え、初心者はまずお世話になる感じ。

 

 

Windowsに「XAMPP(ザンプ)」をインストールする手順

メモ,実験,勉強,推理

 

本書では下記環境下で実施します。

  • エディション:Windows 10 Home
  • バージョン:20H2
  • インストール日:‎2021/‎04/‎23
  • OS ビルド:19042.1415
  • エクスペリエンス:Windows Feature Experience Pack 120.2212.3920.0

 

XAMPPをダウンロードしてインストール

XAMPPを公式ページからダウンロードをして、exeファイルを起動する。※私の場合はバージョン「7.4.27」

1.XAMPPをダウンロード

 

Question

「ウィルス対策ソフトが、インストールの邪魔をするかもしれないけど、続行していい?」という質問メッセージが表示されますが「Yes」で問題なし。

XAMPPをダウンロードしてインストール

 

アンチウイルスが動作しているようです。場合によっては、ソフトのインストールが遅くなったり、邪魔になったりすることがあります。詳しくは、以下のリンクをご覧ください。

http://apachefriends.org/en/faq-xampp-windows,html#antivirus

インストールを続行しますか?

※直訳

 

Warning

UACに関する警告が出ますが特に問題がないので「OK」をクリック。

XAMPPをダウンロードしてインストール

 

重要! お使いのシステムでユーザーアカウント制御(UAC)が有効になっているため、XAMPPの一部の機能が制限される可能性があります。UACを使用している場合、XAMPPをC:³ Filesにインストールすることは避けてください(書き込み権限がないため)。または、このセットアップの後にmsconfigでUACを無効にしてください。

※直訳

 

Setup - XAMPP

「Next」

XAMPPをダウンロードしてインストール / Setup - XAMPP

 

Select Components

インストールするコンポーネントの選択画面。基本的にはデフォルトのまま「Next」でOKです。

XAMPPをダウンロードしてインストール / Select Components

 

私の場合は「Tomcat」「Perl」「Webalizer」のチェックを外してインストールしました。

 

Installation folder

インストール先のフォルダを選択。基本的にはデフォルトのままで「Next」。

XAMPPをダウンロードしてインストール / Installation folder

 

Language

日本語がないので「English」を選択して「Next」

XAMPPをダウンロードしてインストール / Language

 

Bitnami for XAMPP

Learn more about Bitnami for XAMPP」のチェックを外して「Next」

XAMPPをダウンロードしてインストール / Bitnami for XAMPP

 

Ready to Install

インストール開始の最終確認なので気にせず「Next」

XAMPPをダウンロードしてインストール / Ready to Install

 

Installing

インストール画面。

XAMPPをダウンロードしてインストール / Installing

 

Completing the XAMPP Setup Wizard

下記画面が表示されればインストール完了です。

XAMPPをダウンロードしてインストール / Completing the XAMPP Setup Wizard

 

「Do you want to start the Control Panel now?」はそのままチェックありで「Finish」を押して下さい。

 

確認:XAMPPでApacheのダッシュボードとphpinfoを開く

動作確認を踏まえてApacheのダッシュボードとphpinfoのページを開いてみます。コントロールパネルの「Apache」の右側のActionsにある「Start」ボタンを押す。

確認:XAMPPでApacheのダッシュボードとphpinfoを開く

 

起動に成功するとModuleのApacheが緑色になります。

確認:XAMPPでApacheのダッシュボードとphpinfoを開く

 

起動に成功したらApacheの「Admin」を押すとダッシュボードがブラウザで表示されます。

確認:XAMPPでApacheのダッシュボードとphpinfoを開く

 

Apacheのダッシュボード画面の右上の「PHPInfo」をクリックすると、PHPの現在の設定内容が確認できるページが開きます。

確認:XAMPPでApacheのダッシュボードとphpinfoを開く

 

 

XAMPPインストール後に行う最低限の設定

セキュリティ

 

ここでは、XAMPPインストール後に行う最低限の設定をご紹介します。

 

  • 記載する内容はあくまで「私の場合」ですのでご容赦下さい。
  • 「これも変えておいたほうが良い。」というものがありましたら、ぜひコメント欄で教えて下さいm(_ _)m

 

変更する設定ファイルは、下記ディレクトリに格納されています。※Windows版

  • httpd.conf:C:\xampp\apache\conf
  • php.ini:C:\xampp\php

 

非推奨?Apache / httpd.conf:ListenにHTTPS(443)を追加

ローカルで使う分には必須ではありませんが、とりあえずListenに443を追加。


#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the 
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80
Listen 443

 

Apacheが起動しなくなった。。。

Apacheが起動しない/エラー

 

下記エラーが出てApacheが起動できなくなりました。どうやら上記で記載した「Listen 443」を追記するとポートが競合してエラーがでるみたい。

13:29:59 [Apache] Error: Apache shutdown unexpectedly.
13:29:59 [Apache] This may be due to a blocked port, missing dependencies,
13:29:59 [Apache] improper privileges, a crash, or a shutdown by another method.
13:29:59 [Apache] Press the Logs button to view error logs and check
13:29:59 [Apache] the Windows Event Viewer for more clues
13:29:59 [Apache] If you need more help, copy and post this
13:29:59 [Apache] entire log window on the forums

 

Apache起動中のコントロールパネルを見ると、80と443がデフォルトで設定されている?ので競合してエラーが出てるのかな?

 

Apache / httpd.conf:DirectoryIndexを整理

Apache内のファイルにブラウザからアクセスした際、ファイル指定なしでアクセスした時に開くファイルを指定します。

変更前


#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
                   default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
                   home.php home.pl home.cgi home.asp home.shtml home.html home.htm
</IfModule>

 

デフォルトのままでも大丈夫ですが、ゴチャゴチャしているので最小限に整理。

変更後


#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

 

PHP / php.ini:default_charsetをUTF-8に変更

文字コードをUTF-8に変更。※デフォルトでUTF-8になっているかも?


; PHP's default character set is set to UTF-8.
; http://php.net/default-charset
default_charset="UTF-8"

 

PHP / php.ini:date.timezoneを日本の時間帯に変更

PHPにで使用する日付や時刻の標準時間を日本時間に変更。

変更前


[Date]
date.timezone=Europe/Berlin

 

変更後


[Date]
date.timezone=Asia/Tokyo

 

KiRi

結構下の方に設定があります。

 

PHP / php.ini:mbstring.languageを日本語に変更

コメントアウトされているので解除する。

変更前


[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
;mbstring.language = Japanese

 

変更後


[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
mbstring.language = Japanese

 

PHP / php.ini:mbstring.detect_orderをUTF-8へ

変更前


; automatic encoding detection order.
; "auto" detect order is changed according to mbstring.language
; http://php.net/mbstring.detect-order
;mbstring.detect_order = auto

 

変更後


; automatic encoding detection order.
; "auto" detect order is changed according to mbstring.language
; http://php.net/mbstring.detect-order
mbstring.detect_order = UTF-8

 

PHP / php.ini:mbstring.substitute_characterを有効にする

無効な文字を代替えの文字で出力しないように変更

変更前


; substitute_character used when character cannot be converted
; one from another
; http://php.net/mbstring.substitute-character
;mbstring.substitute_character = none

 

変更後


; substitute_character used when character cannot be converted
; one from another
; http://php.net/mbstring.substitute-character
mbstring.substitute_character = none

 

PHP / php.ini:expose_phpをOFFにしてバージョンを隠す

セキュリティ対策のため、HTTP応答ヘッダーからPHPのバージョンを削除(見えなく)します。

変更前


; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header).  It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
; http://php.net/expose-php
expose_php=On

 

変更後


; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header).  It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
; http://php.net/expose-php
expose_php=Off

 

PHP / php.ini:session.sid_lengthの値を32以上にする

セッションのIDの文字列を長くして、セキュリティを改善する。※推奨は32以上。

変更前


; Set session ID character length. This value could be between 22 to 256.
; Shorter length than default is supported only for compatibility reason.
; Users should use 32 or more chars.
; http://php.net/session.sid-length
; Default Value: 32
; Development Value: 26
; Production Value: 26
session.sid_length=26

 

変更後


; Set session ID character length. This value could be between 22 to 256.
; Shorter length than default is supported only for compatibility reason.
; Users should use 32 or more chars.
; http://php.net/session.sid-length
; Default Value: 32
; Development Value: 26
; Production Value: 26
session.sid_length=32

 

PHP / php.ini:session.sid_bits_per_characterのビット数を指定する

ビット数を5に変更する。※windows版の場合は修正不要。


; Define how many bits are stored in each character when converting
; the binary hash data to something readable.
; Possible values:
;   4  (4 bits: 0-9, a-f)
;   5  (5 bits: 0-9, a-v)
;   6  (6 bits: 0-9, a-z, A-Z, "-", ",")
; Default Value: 4
; Development Value: 5
; Production Value: 5
; http://php.net/session.hash-bits-per-character
session.sid_bits_per_character=5

 

参考になったらポッチとお願いしますm(_ _)m


プログラムランキング

  • この記事を書いた人

白夜霧

現役のIT土方・社畜・カフェイン中毒者。趣味のために生きる。サラリーマンの雑記ブログ。さり気なくYouTuberデビューしました\(^o^)/

-技術メモ
-, , , ,

© 2022 My,WebNote - 備忘録 -