出先でデモを行いたいということでノートPCに入れて行きたいとの要望。
表に出せないのと、仮想環境で動かせるほど余力があるノートPCではないためXAMPPに入れて動くようにする必要があったのでその時の対応です。
移動元は
RedHat 6.0 / Apache 2.2.15 / MySQL 5.1 / PHP 5.3
移動先は
XAMPP 1.7.7
Apache 2.2.21 / MySQL 5.5.16 / PHP 5.3.8
少し古いバージョンのXAMPPなら仕様経験がありましたが、今回は現時点で最新のバージョンで少し勝手が違っていた部分もありました。
まずXAMPPのインストール後に「http://xxx.xxx.xxx.xxx/」でIPアドレスでアクセスすると
新しいXAMPPのセキュリティコンセプト~・・・
という表示とともに表示されず・・・。
以前より言われていたセキュリティの点を強化したようなので、以下のファイルにAllow from設定を追加してアクセスを許可。
c:\xampp\apache\conf\extra\httpd-xampp.conf
Allow from xxx.xxx.xxx.0/24
xxxの部分は自分のIPアドレスをいれてください。またプレフィックスも適切なのを入れてください。
次にMySQLの設定を変更。
デフォルトのままだと文字コードがlatin1になっているためUTF-8に変更。
以下ファイルに追記
c:\xampp\mysql\bin\my.ini
以下のセグメントに追加
[mysqld]
skip-character-set-client-handshake
character-set-server = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
※以前はmy.cnfとかの名称でしたがWindowsだと短縮ダイアルとかの拡張子なのでiniに変更されたんだと思います
とりえずの設定が終わったのでXAMPPコントロールパネルより「Apache」と「MySQL」を起動。
ちなみに検索すると[mysqld]にも「default-character-set = utf8」を追加するように書いてあったりしましたが、追加するとMySQLが起動しませんでした。
原因は分かりませんが、ここはset-serverを追加して対応。
MySQLはそのままだとパスがなにもない状態でよろしくないので、コマンドプロンプトより以下のコマンドでパスワードを設定。
cd c:\xampp\mysql\bin
mysqladmin -u root password example
次にphpMyAdminでもアクセス出来るようにphpMyAdminの設定パスワードも「example」に変更
c:\xampp\phpMyAdmin\config.inc.php 内の
passwordの項に example を追記
Windowsの状態によっては「セキュリティの重要な警告」がポップアップで出てくることもあるので「ブロックを解除(U)」を選択して起動します。
http://xxx.xxx.xxx.xxx/phpmyadmin/にアクセスしてMySQLにデータをインポート。
「c:\xampp\htdocs」へコンテンツを追加して正常に機能することを確認。
と、思ったらログインが出来ない・・・。
ログイン情報やセッション情報などはMySQLを使用しているので、そちらに問題があるのかと思い確認するも、問題なし。
色々とログを調べてみると時間が8時間ズレているところを発見・・・。9時間なら日本時間じゃないと思うが、8時間ってとっても微妙・・・
PHPの内部の時間が-8時間の地域となっていたため以下のファイルのタイムゾーンを修正
c:\xampp\php\php.ini
date.timezone = Asia/Tokyo
これでようやく時間の整合性が取れて正常に動くことを確認・・・。
また、設定を変更後はApacheやMySQLを再起動させたりするわけですが、再起動しても設定が反映されないことがありました。
これは再起動したように見えてプロセスが残っていたことが原因で、タスクマネージャーよりそれっぽい名称のものを終了させてやることでちゃんとした再起動が行われ、設定のリロードが行われました。
他にもケアレスミスも重なって結構な時間がかかってしまいましたが、いい経験になりました。
サーバー