xamppでポータブル開発環境を作る

はじめに

 XAMPPはローカル環境にWebserverを設置するためのパッケージソフトです。前々回、AWSLAMP環境を構築するために手動でコマンドラインからミドルウェアをインストールしましたが、XAMPPをインストールするだけでApache,MariaDB*1,PHP,phpMyadmin等の開発に必要なものは一通り利用できるようになります
 XAMPPにはポータブル用パッケージのXAMPP Portableが用意されており、こちらはインストール不要となりますので、USBメモリに入れて持ち運ぶことも可能です。出先で開発したいときやPC環境を変更するときに便利ですね
 
 それでは早速導入の方へ移っていきましょう

XAMPPをUSBメモリに配置&動作確認

 以下のリンクからXAMPP Portableをダウンロードし、解凍してください。解凍したらxamppフォルダをUSBメモリのルートディレクトリ(一番上位のディレクトリです)に移します

 xamppフォルダ内のxampp-control.exeを起動します。言語選択画面が表示されたら、英語かドイツ語を選択します
 コントロールパネルが表示されたら、ApacheMysql(実際はMariaDBです)の欄のstartボタンをクリックしましょう。警告が表示された場合は「アクセスを許可する」を選択してください。ApacheMysqlの欄に緑のラベルが表示されたらOKです*2
 Webブラウザを立ち上げ、URLバーに「localhost」と入力してEnterキーを押してください。「XAMPP Apache+MariaDB+PHPH+Perl」というページが表示されれば成功です。ページ上部のphpMyAdminやPHPinfoもクリックして正常に表示されるか確かめてみてください

MariaDBのrootパスワードを設定

 MariaDBのrootパスワードを設定します(デフォルトはpass無し)。作業はコマンドプロンプトから行いますので、起動してください。Gitbushからでもできます。
 まずはrootでログインし、それからパスワードを設定します

mysql -u root
Welcome to the MariaDB monitor...

MariaDB[(none)]> update mysql.user set password = '設定するパスワード'
-> where user = 'root';
Query OK...

MariaDB[(none)]> flash privileges;
Query OK...

MariaDB[(none)]> quit
Bye

 もしmysqlコマンドが使えない場合は、PATHが通っているか確認してください。PATHはコマンドからecho $PATHと打てば確認できます。あるいは、xampp/mysql/binディレクトリまで移動し直接mysqlを起動してください

phpMyAdminにrootパスワードを設定する

 Mysqlでrootパスワードを設定した後でphpMyAdminのページに移ると、エラーが表示されてログインができなくなっていると思います。Mysqlの設定変更が自動的にphpMyAdminに反映されるわけではないので、phpMyAdmin側の設定も変える必要があります
 xampp/phpMyAdmin/confing.inc.phpを開き、以下の行にMysqlで設定したパスワードを入力してください

$cfg['Servers'][$i]['password'] = 'Mysqlで設定したパスワード';

 

MariaDB文字コードを変更する

 文字コードを変更するにはxampp/mysql/bin/my.iniを編集します。直接編集することもできますし、xamppコントロールパネルのmysqlの欄にある「config」ボタンから開くこともできます
 my.iniを開いたら[mysql]項目内の以下の行のコメントアウトを削除し、設定を有効化します(行の先頭にある#を削除すれば有効化されます)

変更前

## UTF 8 Settings
#init-connect=\'SET NAMES utf8\'
#collation_server=utf8_unicode_ci
#character_set_server=utf8
#skip-character-set-client-handshake
#character_sets-dir="C:/xampp/mysql/share/charsets"

変更後

## UTF 8 Settings
init-connect='SET NAMES utf8'
collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake
character_sets-dir="C:/xampp/mysql/share/charsets"

※2行目のSET NAMES utf8の前後の「\」も削除されている点にご注意ください

 さらに、[client],[mysqldump],[mysql]の各項目の最終行に、以下の内容を追加してください

default-character-set=utf8

 変更を保存したら、xamppのコントロールパネルからmysqlを再起動してください

PHPのopensslを有効化する

 xampp/php/php.iniを開き、「Dynamic Extensions」に含まれる以下の行のコメントアウトを削除し、設定を有効化します(行の先頭にある「;」を削除すれば有効化されます)

;extension=php_openssl.dll

 ついでに時間の設定も合わせておきましょう。「Module Settings」に含まれる[Date]項目内の以下の行を変更します

変更前

date.timezone=Europe/Berlin

変更後

date.timezone=Asia/Tokyo


 以上でXAMPP Portableの設定は完了となります。お疲れさまでした
 
 

*1:MariaDBMysqlから派生したDB管理システムです。Mysqlを作った方が開発されており、Mysqlとの互換性を保持しています。古いバージョンのXAMPPだとMysqlが同梱されていますが、新しいものはMariaDBが採用されています。どうしてもMysqlが使いたい方はMariaDBから差し替えることも可能ですが、少々設定を弄ることになります。この記事ではMariaDBのまま扱う前提で紹介しますので、その点ご了承ください

*2:他のアプリケーション(skype等)が80番ポートを使用している場合、Apacheが起動せずエラーとなります。その場合は競合しているアプリケーションを終了させるか、Apacheのポート番号を変更する必要があります。ポート変更はxampp/apache/conf/httpd.confファイルを編集して行います。詳細は別途お調べください。参考リンク:XAMPPでインストールしたApacheが起動しないとき | PHPプログラミングの教科書 [php1st.com]