XAMPPインストールメモ【Windows8.1】

WIndows8.1 に XAMPP をセットアップした時のメモ
#インストール
まずはダウンロードしてインストール
[Apache Friends](https://www.apachefriends.org/jp/index.html)

#MySQLのrootパスワード変更
参考：[新xamppセットアップ – セキュリティ対策編 –](http://www.koreyome.com/web/xampp-setup02-security/)
##mysqladmin を有効にするためにパスを通す
winKey + R ＞ sysdm.cpl ＞ 詳細設定 ＞ 環境変数 ＞ Path ＞ 変数値に「C:\xampp\mysql\bin」を追加
または
デスクトップのPCアイコン右クリック ＞ プロパティ ＞ システムの詳細設定 ＞ 詳細設定 ＞ 環境変数 ＞ Path ＞ 変数値に「C:\xampp\mysql\bin」を追加

##コマンドプロンプトから MySQL のパスワードを設定する
1. コマンドプロンプトを管理者で実行
2. mysqladmin -u root password
3. [New password: ]******** （パスワード入力）
4. [Confirm new password: ]******** （パスワード確認再入力）

##phpMyAdminの認証設定
MySQL のrootパスワードを変更して [phpMyAdmin](http://localhost/phpmyadmin) にアクセスすると「『config.inc.php』を確認しろ」と怒られる。

1. 【C:\xampp\phpMyAdmin\config.inc.php】をエディターで開く
2. /\* Authentication type and info \*/ のセクションで下記の所を設定する<br />
    \$cfg['Servers'][\$i]['auth_type'] = '**cookie**';<br />
    \$cfg['Servers'][\$i]['user'] = '**root**';<br />
    \$cfg['Servers'][\$i]['password'] = '**password**';<br />
3. もう一度 [phpMyAdmin](http://localhost/phpmyadmin) にアクセスするとユーザー名とパスワードを入力できるようになっている
4. 【ユーザー名：root】【パスワード:（設定したパスワード）】でログイン
5. ログインできれば成功！

#php.iniの設定
参考：[「第９章」XAMPPのインストールとphp.iniの編集](http://qiita.com/Siro/items/374d7f7ba518473b0f44)
【C:\xampp\php\php.ini】をエディターで開いて下記を編集

1. output_handler = mb_output_handler
2. default_charset = "UTF-8"
3. mbstring.language = Japanese
4. mbstring.internal_encoding = UTF-8
5. mbstring.http_input = auto
6. mbstring.http_output = auto
7. mbstring.encoding_translation = Off
8. mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
9. mbstring.substitute_character = none
10. date.timezone = Asia/Tokyo

自分の環境だと、これだと文字化けが発生した。

6.を mbstring.http_output = UTF-8

に変更して解決。

#拡張子htmlのままphpを使う設定
拡張子が「.html」のままでPHPが動くようにしたかったので設定する。

1. 【C:\xampp\apache\conf\httpd.conf】を開く
2. AddType application/x-httpd-php .php .html を追加

#サイトフォルダーの設定
XAMPPをCドライブにインストールしたものの、サイトフォルダーはCドライブではなくDドライブに置きたいのでシンボリックリンクを設定
Dドライブの「ドキュメントフォルダ」内にある「hoge」フォルダを設定する

1. コマンドプロンプトを管理者で実行
2. cd /
3. mklink /d C:\xampp\htdocs\hoge d:\Users\\*USER*\Documents\hoge<br />
（「*USER*」のところは環境に合わせて）

これで「C:\xampp\htdocs」内に「hoge」というシンボリックリンクが作成される。
**参照するフォルダーへのパスに日本語が含まれている（「d:\Users\\*USER*\Documents\ほげほげ」とか）と色々と動かなくなるのでNG。**

#ホストの設定
参考：[XAMPPで複数のサイトを制作しよう](http://web-dev.xyz/xampp-hosts/)
異なるドメインの複数のサイトを制作したかったので設定
##hostsを編集

1. 【C:/WINDOWS/system32/drivers/etc/hosts】をエディターで開く
2. 一番下に【127.0.0.1 local.dev】（local.devは任意の架空ドメイン）を入力

##Virtualhostの設定

1. 【C:\xampp\apache\conf\extra\httpd-vhosts.conf】をエディターで開く
2. 【##NameVirtualHost *:80】の【##】を消し、Virtualhostを有効にする
3. 一番下に下記を追加し、Virtualhostを設定する

```plain:httpd-vhosts.conf
<VirtualHost *:80>  
DocumentRoot "C:/xampp/htdocs/"
ServerName localhost
</virtualhost>
 
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/hoge/"
ServerName local.dev
</VirtualHost>
```
この例だと「[http://local.dev](http://local.dev)」にアクセスすると「C:\xampp\htdocs\hoge\」の中が表示される。
複数設定する時は、同様に「hosts」と「httpd-vhosts.conf」に追記すればOK。

#CGIの設定
参考：[自宅マシンWWWサーバ化計画 - CGIを動かそうの巻](http://www.kent-web.com/www/chap2.html)
デフォルトではXAMPPでのCGIのパスは「C:/xampp/perl/bin/perl」になっている。
これを本番用のPerlのパス「/usr/bin/perl」または「/usr/local/bin/perl」のままで動かしたかったのでシンボリックリンクを設定

1. コマンドプロンプトを管理者で実行
2. cd /
3. mklink /d c:\usr c:\xampp\perl
4. mklink /d c:\usr\local c:\xampp\perl

- 最初、「c:\usr\」というフォルダーを作って、その中に「bin」という名前で「c:\xampp\perl\bin」へのシンボリックリンクを作って、「c:\usr\local\」というフォルダーの中に「bin」という名前で「c:\xampp\perl\bin」へのシンボリックリンクを作ったら、いざCGIを実行する時に「ライブラリが見つからん！」と怒られて半日ハマったのは内緒。（これだと
 perl が 「c:\xampp\perl\lib」にたどり着けない）

#sendmailの設定
参考：[「XAMPP for Windows」の環境でsendmailの設定を行う。](http://piyopiyocs.blog115.fc2.com/blog-entry-623.html)

##php.iniの編集
1. 【C:\xampp\php\php.ini】をエディターで開く
2. 「sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"」を有効にする

##sendmail.iniの編集 
1. 【C:\xampp\sendmail\sendmail.ini】をエディターで開く
2. 「smtp_server = mail.mydomain.com」で使用する送信サーバーを設定
3. 「smtp_port = 25」で使用する送信ポートを設定（587に変更）
4. 送信時にSMTP-AUTHがある（認証が必要）なら「auth_username=」のところにユーザー名、「auth_password=」のところにパスワードを設定
5. POP before SMTPの場合は「pop3_server=」でPOPサーバー名、「pop3_username=」でPOPユーザー名、「pop3_password=」でPOPパスワードを設定

参考サイトには「あとは特に気にしなくても大丈夫です。」とありますがここで罠が…
参考：[Win8でXAMPPのsendmailが使えない](https://www.c-rowl.com/history/blog/xampp/912/)

なにやらTLS/SSLの問題らしいので**「smtp_ssl=」を「none」に設定**して解決
あくまでもテスト環境なので問題無しと判断

CGIの時と同様に「/usr/sbin/sendmail」または「/usr/local/sbin/sendmail」で動かしたかったので以下でシンボリックリンク設定

1. コマンドプロンプトを管理者で実行
2. cd /
3. mklink /d c:\usr\sbin c:\xampp\sendmail

「c:\usr\local\」にはCGI設定のところでリンクが通っているのでOK。

とりあえず以上