XAMPP7.1.1設定メモ

2017-04-06 「外部からの接続を禁止する」と「MySQLへの接続がなんだか遅い場合」の項目を追加。

XAMPPの旧バージョンを削除してXAMPP7.1.1に入れかえた。
以前のバージョンをインストールしたときの設定を忘れてしまったので、改めてメモしておく。

XAMPPはportable版をインストールした。ドライブのルート(c:\xampp など)にファイルを置いたあと、setup_xampp.bat を実行すればOK。

外部からの接続を禁止する

XAMPPへのアクセスをローカルのみに限定したい、外部のPCからのアクセスを禁止したい場合は以下の設定を。 とくに職場や学校、街なかのWiFiスポットなど、公共のネットワークでXAMPPを起動する場合は必ず設定すべし。

C:\xampp\apache\conf\httpd.conf を開き、Listen 80 とある部分を Listen 127.0.0.1:80 に書き換える。

# 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 127.0.0.1:80

PHPの設定

c:\xampp\php\php.ini を編集する。

マルチバイト文字の設定

[mbstring] セクションにある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.iniの中には [Date] セクションが2箇所あるが、ファイルの最後の方にあるdate.timezone=Europe/Berlinとなっている部分をdate.timezone=Asia/Tokyoにする。

[Date]
; date.timezone=Europe/Berlin
date.timezone=Asia/Tokyo

その他の設定

以下は問題が発生したときだけ必要になるかもしれない設定。問題ないなら設定する必要はない。

session_start がエラーになる

例えば以下のようなエラーが出た場合。

Warning: session_start() [function.session-start]: open(\xampp\tmp\sess_6sk49a8guo7n3dssak425s8fjjmk36, O_RDWR) failed: No such file or directory (2) in C:\example\index.php on line 3

[Session] セクションにあるsession.save_path = "\xampp\tmp"となっている部分を、フルパス(例えば c:\xampp\tmp)に書き換える。

[Session]
...中略...
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
; http://php.net/session.save-path
; session.save_path = "\xampp\tmp"
session.save_path = "c:\xampp\tmp"

SublimteTextでPHPをビルドしようとしたらエラー

browscap.ini が見つからんぞと怒られた場合。

PHP Warning: Cannot open '\xampp\php\extras\browscap.ini' for reading in Unknown on line 0 testzend_mm_heap corrupted

[browscap] セクションにあるbrowscap = "\xampp\php\extras\browscap.ini"を、フルパスに書き換える。

[browscap]
; http://php.net/browscap
; browscap = "\xampp\php\extras\browscap.ini"
browscap = "c:\xampp\php\extras\browscap.ini"

phpMyAdmin

MySQLのrootにパスワードを設定した場合は、‪C:\xampp\phpMyAdmin\config.inc.php を変更する必要がある。
$cfg['Servers'][$i]['password']に設定したパスワードを書き込んでおく。

/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'password';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';

MySQLへの接続がなんだか遅い場合

WordPressなんかのCMSを動かしたり、PHPとかのスクリプトからMySQLに接続すると、ローカルのくせに妙に遅いな~というとき。

OSがWindowsVista以降で、MySQLへの接続先のホスト名に "127.0.0.1" ではなく "localhost"と指定していると遅くなるそうだ。

手っ取り早い解決方法は、接続先の指定にIPを使えばいい。 Wordpressならwp-config.phpを以下のように変更する。

// ↓こうなっていた場合は
define('DB_HOST', 'localhost');
// ↓このように変更
define('DB_HOST', '127.0.0.1');

他にhostsファイルを編集する方法もある。 この現象が発生する理屈や、hostsファイルを編集する手順は以下のサイトを参照で。