WIndows8.1 に XAMPP をセットアップした時のメモ
インストール
まずはダウンロードしてインストール
Apache Friends
MySQLのrootパスワード変更
mysqladmin を有効にするためにパスを通す
winKey + R > sysdm.cpl > 詳細設定 > 環境変数 > Path > 変数値に「C:\xampp\mysql\bin」を追加
または
デスクトップのPCアイコン右クリック > プロパティ > システムの詳細設定 > 詳細設定 > 環境変数 > Path > 変数値に「C:\xampp\mysql\bin」を追加
コマンドプロンプトから MySQL のパスワードを設定する
- コマンドプロンプトを管理者で実行
- mysqladmin -u root password
- [New password: ]******** (パスワード入力)
- [Confirm new password: ]******** (パスワード確認再入力)
phpMyAdminの認証設定
MySQL のrootパスワードを変更して phpMyAdmin にアクセスすると「『config.inc.php』を確認しろ」と怒られる。
- 【C:\xampp\phpMyAdmin\config.inc.php】をエディターで開く
- /* Authentication type and info */ のセクションで下記の所を設定する
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'password';
- もう一度 phpMyAdmin にアクセスするとユーザー名とパスワードを入力できるようになっている
- 【ユーザー名:root】【パスワード:(設定したパスワード)】でログイン
- ログインできれば成功!
php.iniの設定
参考:「第9章」XAMPPのインストールとphp.iniの編集
【C:\xampp\php\php.ini】をエディターで開いて下記を編集
- output_handler = mb_output_handler
- default_charset = "UTF-8"
- mbstring.language = Japanese
- mbstring.internal_encoding = UTF-8
- mbstring.http_input = auto
- mbstring.http_output = auto
- mbstring.encoding_translation = Off
- mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
- mbstring.substitute_character = none
- date.timezone = Asia/Tokyo
自分の環境だと、これだと文字化けが発生した。
6.を mbstring.http_output = UTF-8
に変更して解決。
拡張子htmlのままphpを使う設定
拡張子が「.html」のままでPHPが動くようにしたかったので設定する。
- 【C:\xampp\apache\conf\httpd.conf】を開く
- AddType application/x-httpd-php .php .html を追加
サイトフォルダーの設定
XAMPPをCドライブにインストールしたものの、サイトフォルダーはCドライブではなくDドライブに置きたいのでシンボリックリンクを設定
Dドライブの「ドキュメントフォルダ」内にある「hoge」フォルダを設定する
- コマンドプロンプトを管理者で実行
- cd /
- mklink /d C:\xampp\htdocs\hoge d:\Users\USER\Documents\hoge
(「USER」のところは環境に合わせて)
これで「C:\xampp\htdocs」内に「hoge」というシンボリックリンクが作成される。
参照するフォルダーへのパスに日本語が含まれている(「d:\Users\USER\Documents\ほげほげ」とか)と色々と動かなくなるのでNG。
ホストの設定
参考:XAMPPで複数のサイトを制作しよう
異なるドメインの複数のサイトを制作したかったので設定
hostsを編集
- 【C:/WINDOWS/system32/drivers/etc/hosts】をエディターで開く
- 一番下に【127.0.0.1 local.dev】(local.devは任意の架空ドメイン)を入力
Virtualhostの設定
- 【C:\xampp\apache\conf\extra\httpd-vhosts.conf】をエディターで開く
- 【##NameVirtualHost *:80】の【##】を消し、Virtualhostを有効にする
- 一番下に下記を追加し、Virtualhostを設定する
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/"
ServerName localhost
</virtualhost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/hoge/"
ServerName local.dev
</VirtualHost>
この例だと「http://local.dev」にアクセスすると「C:\xampp\htdocs\hoge\」の中が表示される。
複数設定する時は、同様に「hosts」と「httpd-vhosts.conf」に追記すればOK。
CGIの設定
参考:自宅マシンWWWサーバ化計画 - CGIを動かそうの巻
デフォルトではXAMPPでのCGIのパスは「C:/xampp/perl/bin/perl」になっている。
これを本番用のPerlのパス「/usr/bin/perl」または「/usr/local/bin/perl」のままで動かしたかったのでシンボリックリンクを設定
- コマンドプロンプトを管理者で実行
- cd /
- mklink /d c:\usr c:\xampp\perl
- 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の設定を行う。
php.iniの編集
- 【C:\xampp\php\php.ini】をエディターで開く
- 「sendmail_path = ""C:\xampp\sendmail\sendmail.exe" -t"」を有効にする
sendmail.iniの編集
- 【C:\xampp\sendmail\sendmail.ini】をエディターで開く
- 「smtp_server = mail.mydomain.com」で使用する送信サーバーを設定
- 「smtp_port = 25」で使用する送信ポートを設定(587に変更)
- 送信時にSMTP-AUTHがある(認証が必要)なら「auth_username=」のところにユーザー名、「auth_password=」のところにパスワードを設定
- POP before SMTPの場合は「pop3_server=」でPOPサーバー名、「pop3_username=」でPOPユーザー名、「pop3_password=」でPOPパスワードを設定
参考サイトには「あとは特に気にしなくても大丈夫です。」とありますがここで罠が…
参考:Win8でXAMPPのsendmailが使えない
なにやらTLS/SSLの問題らしいので**「smtp_ssl=」を「none」に設定**して解決
あくまでもテスト環境なので問題無しと判断
CGIの時と同様に「/usr/sbin/sendmail」または「/usr/local/sbin/sendmail」で動かしたかったので以下でシンボリックリンク設定
- コマンドプロンプトを管理者で実行
- cd /
- mklink /d c:\usr\sbin c:\xampp\sendmail
「c:\usr\local\」にはCGI設定のところでリンクが通っているのでOK。
とりあえず以上