XAMPP1.8.1は人気の開発環境のパッケージですが「Windows7 64bit版」用はありません。しかしながら「Windows7 64bit版」を利用されている方は数多くいると思いますので、自分の備忘録を兼ねて解説しています。
ただし、自分の環境下での勝手な備忘録ですので間違いや修正箇所がありますのでご注意ください。
現在の環境
- 設置PC側OS(ホストOS) : Win7 Home Premium 64bit
- ※DELL INSPIRON N5010
- ブラウザ : Firefox17.0.1
- 通信 : Frets 光
- テキストエディタ : 秀丸
- Apache 2.4.3
- MySQL 5.5.27
- PHP 5.4.7
- phpMyAdmin 3.5.2.2
- FileZilla FTP Server 0.9.41
- Tomcat 7.0.30 (with mod_proxy_ajp as connector)
- Strawberry Perl 5.16.1.1 Portable
- XAMPP Control Panel 3.1.0 (from hackattack142)
XAMPP1.8.1のWindows7 64bit版での初期設定(Apache・MySQL等)
【目次】
XAMPP1.8.1を管理者で実行する
MySQLの初期設定(rootパスワード)
Xampp1.8.1のMysql5(windows7コマンドプロンプト)文字化け解決方法、文字コードの設定
PHPで扱う日本語の文字化け解消・解決設定
コマンドラインからCSVやテキストファイル(TXT)などのデータをインポートする際の注意点
PHPの初期設定
PhpMyAdminの初期設定(セキュリティ設定)
Xampp1.8.1をWindows環境でインストール後に最初に設定すべき項目を色々と解説しています。
XAMPP1.8.1を管理者で実行する
Windows7 64bit版のデスクトップ上にあるXAMPP1.8.1のアイコンを右クリックして最下部の「プロパティを」選択
※XAMPP1.8.1は停止した状態で行って下さい。
ダイアログが開きます。
- 上部タブ「互換性」 → 最下部の「特権レベル 管理者としてこのプログラムを実行する」にチェックを入れる
- OKボタンで終了
日本語を扱えるようにするために文字コードを設定をしていきます。
先に現在、起動中のXAMPP1.8.1の「MySQL」を停止します。
「XAMPP Control Panel」 v3.1.0 3.1.0 の「MySQL」右側にある「Stop」ボタンを押して停止させます。
「MySQL」で日本語表示を行うために「my.ini」ファイルを編集する
ローカルPC内の「c:\xampp\mysql\bin\my.ini」にアクセスします。
エディタで開きます。
※Windows付属のメモ帳では開かないで下さい。
[mysqld]セクションに追記
※##### = シャープで区切らられているところ
character-set-server = sjis
skip-character-set-client-handshake
※文字コードは「sjis」、「EUC」ご自身の環境で適宜変更して下さい。
これでXAMPPでの文字コードの設定「my.ini」ファイルの変更・編集は終了です。
MySQLの初期設定(rootパスワード、文字コードを設定)
さて前回の「XAMPP1.8.1 Windows7 64bit版 インストール、初回起動 : 開発環境の構築」が終わってすぐのコントロールパネルからの解説になります。
まずは、Apacheの右側「Actions」と記載のある下、「Start」ボタンを押して実際に「Apache」を起動させてみましょう。
同様に「MySQL」も起動させて下さい。
「Apache」と「MySQL」が起動しました。
起動するかどうかの確認を行います。
この状態でブラウザで「http://127.0.0.1」または「http://localhost」 にアクセスして下さい。
XAMPP for Windowsが表示されました。
右側メニューの「セキュリティ」をクリックして下さい。
画面右側の「ステータス」に「要注意」や「不明」などが表示されていると思います。
- これらのXAMPPページは一般的にネットワーク経由でアクセス可能です。 要注意
- MySQLユーザルートにパスワードがありません 要注意
- PhpMyAdminはネットワーク上から自由にアクセスできてしまいます。 要注意
これらのXAMPPページは一般的にネットワーク経由でアクセス可能です。 要注意
現在ご覧になっているすべてのXAMPPデモページは、ネットワーク上で一般的にアクセス可能です。あなたのIPアドレスを知っている人は誰でもこれらのページを見ることができます。
MySQLユーザルートにパスワードがありません 要注意
Windows Box上のローカルユーザであれば誰でもあなたのMySQLデータベースに管理者権限でアクセスできます。パスワードを設定してください。
PhpMyAdminはネットワーク上から自由にアクセスできてしまいます。 要注意
PhpMyAdminはパスワードなしでネットワークからアクセスできます。. "config.inc.php"ファイルの’httpd’か’cookie’が設定の助けになります。
まずはこの「要注意」のを全て解消していきたいと思います。
これは簡単で、「XAMPP for Windows」のトップのセキュリティから今回の要注意と書かれている画面の下に【=> http://localhost/security/xamppsecurity.php <= [localhostからのみアクセスできます。]】というURLがあるのでここから設定を行います。
ページ最下部、「http://localhost/security/xamppsecurity.php」をクリック
MYSQL 項目 : “ROOT” パスワード
MySQL SuperUser : root
- 新しいパスワード : 任意
- 新しいパスワード(確認) : 任意
※こちらのパスワードはテキストファイルなどに保存しておいて下さい。
- その下のチェックボックスにチェックを入れる。
- 「パスワードを変更しました。」ボタンをクリック
XAMPPのディレクトリ制御(.htaccess)
- ユーザ名 : 任意
- パスワード : 任意
※どちらもPC内のテキストファイルなどにメモ&保存しておいて下さい。
- その下のチェックボックスにチェックを入れる。
- 「安全なXAMPPディレクトリを作成して下さい。」ボタンをクリック
これで再度「http://127.0.0.1」または「http://localhost」 にアクセスして下記のように「要注意」から「安全」に変更されていれば問題ありません。
これでMySQLの初期設定(rootパスワードを設定)は終了です。
Xampp1.8.1のMysql5(windows7コマンドプロンプト)文字化け解決方法、文字コードの設定
これにはかなり苦労しました。
誰かのお役に立てればと思いますが環境が違う場合も相当あるので
その点については自己責任にて設定して下さい。初回起動時に一気に
設定を行ってしまうのが良いかと思います。
最初に注意事項があります。
xampp1.8.1には何故か my.cnf がありません。
※ググっても my.cnf のページばかりでしたので苦労しました。
xampp1.8.1 mysql は、my.ini で設定を行います。
xampp1.8.1のmy.ini の [mysqld]ではdefault-character-set = utf8が使えません。
character-set-server = utf8 を使います。
xampp1.8.1のmysql のDBはそれぞれ文字コードを持ち、そして文字コード設定後の新規のDBの文字コードと既存のDBの文字コードは違います。
設定前の文字コードになっているDBにも設定が必要となりますが時間が空いたら記事にしたいと思います。
文字コード設定前の既存DBと設定後の新規DBへの設定が必要です。
まずは文字コードの設定を確認
mysql> show variables like ‘character%’;
または
mysql> status
+————————–+——————————–+
| Variable_name | Value |
+————————–+——————————–+
| character_set_client | cp932 |
| character_set_connection | cp932 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | cp932 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | C:\xampp\mysql\share\charsets\ |
+————————–+——————————–+
※最初の状態。「utf8」以外の設定であれば、その文字コードの設定を変更する必要があります。
データベースの文字コードの設定を確認
mysql> show create database DB_NAME;
+—————+—————————————————-+
| Database | Create Database |
+—————+—————————————————-+
| domain_server | CREATE DATABASE `domain_server` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+—————+—————————————————-+
テーブルの文字コード設定を確認
mysql> show create table TABLE_NAME\G;
*************************** 1. row ***************************
Table: tbtest
Create Table: CREATE TABLE `tbtest` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`pass` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
my.ini 追加・変更箇所一覧
my.ini の設定方法はxampp1.8.1はコメントアウトを外すだけで良い・・と思いました。
以下、「my.ini」の設定場所
※152行目辺り
#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箇所だけにしておきます。
最初はコメントアウトされてます。
#character_set_server=utf8
#skip-character-set-client-handshake
↓
コメントアウトを外します。
character_set_server=utf8
skip-character-set-client-handshake
とりあえずこれで問題はないはずかと思いますが、それでもダメな場合は
下記を参考に他のコメントアウトの設定も外してみて下さい。
xampp1.8.1以外のxampp1.7の場合の文字化け解消のための文字コードの設定方法
c:\xampp\mysql\bin にある my.ini をエディタで開きます。
1) [client] ※ファイル内に[client]という箇所があるのでその下に入力
[client]
default-character-set = utf8
クライアント側(client)の設定箇所、他のインポートデータやファイルは「utf8」で扱う
2) [mysqld] ※ファイル内に[mysqld]という箇所があるのでその下に入力
[mysqld]
character-set-server = utf8
skip-character-set-client-handshake
collation-server = utf8_general_ci
# init-connect = SET NAMES utf8
最も大切なサーバー側(mysqld)の設定箇所
- character-set-server = utf8
サーバー側の文字コードのデフォルト設定を「utf8」にします。
[mysqld]では、
default-character-set = utf8
扱えません。
xampp1.8.1にてmysqlがエラーで起動しなくなります。
- skip-character-set-client-handshake
サーバー側とクライアント側で文字コードの相違があると文字化けします。
そのクライアント側の文字コード設定を無視してサーバー側の文字コード設定で処理する。
この場合、先程設定した [client] で設定した「default-character-set = utf8」の文字コードのデフォルト設定は行われない。
- collation-server = utf8_general_ci
collation は文字の照合順序の設定。
ci = 大文字、小文字(A、A、a、a)を判別せず処理
cs = 大文字、小文字(A、A、a、a)を判別して処理
bin = バイナリコードで比較
# init-connect = SET NAMES utf8
※mysqlの文字コードの設定コマンドは「set names」ですが、コマンドラインで都度「set names」コマンドを打つのは面倒なので、設定ファイル「my.ini」に最初からこのコマンドを設定しておくということらしいですが、今はどうか知りませんが少々不安定らしく使うのには注意が必要かもとのこと。一応何もなければ、今はコメントアウトしておきます。
今のxampp1.8.1では修正されているのかなぁ・・・分かりません。
3) [mysqldump] ※ファイル内に[mysqldump]という箇所があるのでその下に入力
[mysqldump]
default-character-set = utf8
dumpファイルのデフォルトの文字コードを「utf8」に設定します。
※dumpファイルは、メモリや(CPU内部の)レジスタ、ディスク、ファイルなどのその時々の瞬間の中身を全て記録したファイル。いきなりシャットダウンや不明のエラーがあった際にこのファイルを見ることによりエラー原因の特定に繋がります。
4) [mysql] ※ファイル内に[mysql]という箇所があるのでその下に入力
[mysql]
default-character-set = utf8
5) 最後に文字コードを再度確認
mysql> show variables like ‘character%’;
または
mysql> status
+————————–+——————————–+
| Variable_name | Value |
+————————–+——————————–+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\xampp\mysql\share\charsets\ |
+————————–+——————————–+
※filesystem は「ファイル名」の設定とのこと。
基本的にファイル名に日本語などを設定しなければ「binary」でデフォルトのままでおk。
コマンドラインからCSVやテキストファイル(TXT)などのデータをインポートする際の注意点
CSVファイルやテキストファイル(TXT)インポートする際のコマンド
INTO TABLE FAILE_NAME
FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\r\n’;
※インポートしたいファイル名(CSVファイル、テキストファイル)は、mysqlのDB名と同様にすること。(拡張子)は除く。
「ファイル名」 hoge.csv = 「DB名」 hoge
※最初の行の末尾のファイル名は「拡張子」まで入れること。
改行コードの設定
Windows = \r\n 又は \n
Linux = \r\n 又は \n
Mac = \r
その他注意点
phpmyadmin のインポート機能を利用しCSVファイルやテキストファイルなどを読み込ンだ際に日本語が文字化け、または表示されない状態になっているときにチェックする設定
テキストエディタでUTF-8(BOM無し)に変換する際に、改行コードをWindows環境時でもCRLF(\r\n)ではなくLF(\n)にして一度試す
フォーマット特有のオプション
- テーブルデータを差し替えるファイル = チェックしない
- INSERT エラーで中断しない = チェックしない
- 区切り記号 = 「,」
- 囲み記号 = 「Nullもしくは空白」
- エスケープ記号 = 「\」
- 終端記号 = 「\n」
- カラム名 = 「Nullもしくは空白」
- xamppが動いているPCと、CSVを保持しているPCが、同一の場合は「LOCAL キーワードを使用する」にもチェックを入れます
エンコーディングへの変換
「なし」を選択
全角カナへ変換する = チェックしない
xampp1.8.1 mysql は、php.ini の設定
windows7 64bit 環境下ではデフォルトでおそらく「c:\xampp\php」内に「php.ini」があるかと思いますのでエディタで開き下記内容を変更します。
C:\xampp\php 内にある php.ini をテキストエディタで開き、以下の箇所をそれぞれ修正します。修正箇所は全部でかなりあります。
エラーレポートの設定 ※どちらでも良いです。エラーの表示についてです。
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
error_reporting = E_ALL
修正箇所についてですが上の記載が設定前、下の記載が設定後です。
全てに共通しているのは、先頭の「;」を外すことなので必ず忘れないように。
修正箇所(1)
;extension=php_mbstring.dll
extension=php_mbstring.dll
こちらの記述がもう1行あり既にコメントアウトが外されている場合は外さないこと。2回検索すると判明する。2つ外すとApache側で二重起動になりエラーになる。
修正箇所(2)
;mbstring.language = Japanese
mbstring.language = Japanese
修正箇所(3)
;mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8
マルチバイト文字列関数である「mbstring」のデフォルトエンコードの設定。
変換元の文字コードが指定されなかった場合、ここで指定した文字コードが適用となる。
修正箇所(4)
;mbstring.http_input = auto
mbstring.http_input = pass
HTTP通信の時のインプットの文字コード変換に関する設定。基本的に文字コードを設定しないことがないためここではpassに設定。とにかく「utf8」という場合はそれでもOK。
修正箇所(5)
;mbstring.http_output = SJIS
mbstring.http_output = pass
HTTP通信の時のアウトプットの文字コード変換に関する設定。基本的に文字コードを設定しないことがないためここではpassに設定。とにかく「utf8」という場合はそれでもOK。
修正箇所(6)
;mbstring.encoding_translation = Off
mbstring.encoding_translation = Off
自動で文字コードを勝手に変換しないように「Off」を指定。
修正箇所(7)
;mbstring.detect_order = auto
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
文字コードの自動判別を行う時の文字コードを確認する順番。「auto」の場合順番が不明なので上記に設定。
修正箇所(8)
;mbstring.substitute_character = none;
mbstring.substitute_character = none;
無効な文字の場合の表示文字をどれにするか?という設定。デフォルトの値のまま無効な文字だった場合は無表示の「none」とした。
修正箇所(9)
;mbstring.func_overload = 0
mbstring.func_overload = 0
シングルバイト対応の関数をマルチバイト対応の関数で自動でオーバーロードするどうかの設定。勝手に自動でオーバーロードしてしまうと思わぬエラーや不具合が発生することがあるためここではオーバーロードしない「0」とする。
修正終了後、Apacheを再起動し再度文字コードを確認。
またこちらは単純に他のテキストファイルやExcel加工後のCSVファイルなどからのインポート、連携、吸い込み、新規DB作成、新規テーブル作成でも文字化けがなくなりましたが、あくまでも私の環境下で素人の勝手な備忘録であることをご理解ください。
PHPの初期設定(pearの設定)
今のバージョンをコマンドプロンプトより確認します。
c:\
↓
c:\xampp\php>
※PHPフォルダに移動
↓
c:\xampp\php>php –version
※上記のようにPHPのバージョンを確認
PHP 5.4.7 (cli) (built: Sep 12 2012 23:48:31)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
※PHP 5.4.7 と判明
※確認しておくだけで良いです。自分のWebサーバのPHPのバージョンくらいは覚えておいた方が今後何かと便利です。
これでPearの確認は終了です。
xampp1.8.1でPHP5.4.7、PEARのインストールがうまくいかなかったので、備忘録も兼ねてメモ。最初にXAMPP1.8.1にはPEARのインストール状況がいかがなものか確認。
xampp1.8.1にpearのインストールができない
現在の状況 pear list でチェックしてみる
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET:
=========================================
PACKAGE VERSION STATE
Console_Getopt 1.3.1 stable
※何やらこれのみ・・・
pear install pear_infoやpear upgrade PEAR installerなどであがいてみる・・・
とにかくxampp1.8.1にpearのインストールができない・・・
c:\xampp\php>pear install pear_info
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-upd
ate pear.php.net" to update
Unknown remote channel: pear.phpunit.de
Did not download optional dependencies: channel://pear.phpunit.de/PHPUnit, use –
-alldeps to download automatically
pear/PEAR_Info can optionally use package "channel://pear.phpunit.de/PHPUnit" (v
ersion >= 3.1.4)
downloading PEAR_Info-1.9.2.tgz …
Starting to download PEAR_Info-1.9.2.tgz (60,722 bytes)
……………done: 60,722 bytes
downloading Console_Getargs-1.3.5.tgz …
Starting to download Console_Getargs-1.3.5.tgz (18,207 bytes)
…done: 18,207 bytes
ERROR: failed to mkdir C:\php\pear\docs\Console_Getargs\examples
ERROR: failed to mkdir C:\php\pear\docs\PEAR_Info\examples
WARNING、ERRORばかり・・・困ったものだと色々調べてみると、何故かまずは「Path」を変更してみることにしました。。ん~・・・とりあえず、とりあえず。
MySQLのディレクトリをシステム環境変数「Path」に設定する
コマンドプロンプトで毎回MySQLのディレクトリを指定するのは手間。
Windows7 64bit版でのシステム環境変数の「Path」を予め設定しておきます。
左下「スタートボタン」 → 「コンピューター」右クリック → 左メニュー「システムの詳細設定」を左クリック
最初に「システムのプロパティ」ダイアログが開くので右下「環境変数」ボタンをクリック
今度は「環境変数」ダイアログが開き下部の「システム環境変数」の「変数」の列の「Path」を探し選択した状態で「編集」ボタンをクリック
色々記載がありますが、下の行の「変数値」の一番最後に下記を入力。
;c:\xampp\mysql\bin
※Windowsでの「\ 」は、「¥の半角」になります。
※一番左の「 ; 」セミコロンを忘れないようにして下さい。
セミコロンで複数指定となりますので。。
※尚、XAMPP1.8.1のローカルへのインストール先は、「c:\xampp」としておりますので、インストール先のフォルダなどが違う場合は適宜変更して下さい。
入力後、「OK」ボタン
これでMySQLのディレクトリをシステム環境変数「Path」に設定する、は終了です。
コマンドプロンプトで再度「c:\xampp\php>pear list」を行うと・・・
c:\xampp\php>pear list INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET: =========================================
PACKAGE VERSION STATE
Archive_Tar 1.3.7 stable
Console_Getopt 1.3.0 stable
PEAR 1.9.4 stable
Structures_Graph 1.0.4 stable
XML_Util 1.2.1 stable
※何故か・・PEAR 1.9.4 が表示されました。よし。
最初は
Console_Getopt 1.3.0 stable
だけだったのですが何やら増えました。良かった。
さてさて、まだまだ足りないので更に弄ってみます。
次は何やら「Pear install」がうまくいかない理由は「cache」に問題があるかもと思い、次に実行したのは下記。
c:\xampp\php>pear clear-cache
※キャッシュに問題があったので該当するcacheを削除
何とようやく「pear install pear_info」がインストールできました。
後は、ひとつひとつpear packagesをダウンロードしインストールできるかやってみます。
結果、ここまではダウンロード&インストールが出来ました。
xampp1.8.1で go-pear.phar ではインストールできなかった場合
まずpear list でPHPのpear の状態をチェックした後、「pear install ●●」でインストール出来るパッケージはインストールしてみる
pear install PEAR_Info
※PEAR_Infoは大切なのでこれさえインストール出来ればと考えていました。
pear install MDB2
pear install Mail
pear install Mail_mimeDecode
pear install Net_SMTP
・・・・・
※個別にpearのパッケージをインストールすれば出来ると思っていましたが、いくつかのパッケージは何故かインストール出来ませんでした。
【補足】
これもやってみましたが効果はいか程か・・・理解している方だけ行って下さい。
c:\xampp\php>pear upgrade PEAR installer
※PEARのインストーラーをアップグレードしました。
それか下記のような方法をいくつか。いや~、ここら辺は素人には本当に難しい・・・
【横山】PHP/PEARインストールメモ(Windows)
http://ameblo.jp/halgroup/entry-10287160663.html
PEAR パッケージマネージャの取得とインストール
http://pear.php.net/manual/ja/installation.getting.php
PhpMyAdminの初期設定(セキュリティ設定)
DBを管理・操作できる「PhpMyAdmin」の初期設定を行っていきます。
まずは「PhpMyAdmin」にログインするためのパスワードの設定を行っていきます。
ローカルフォルダの下記ファイルをエディタで編集。
「c:\xampp\phpmyadmin\config.inc.php」
※「config.inc.php」にエディタ(秀丸やcresenteve)で開いて編集します。
21行目の白く塗られた行がありますが、こちらの「●●●●」にパスワードを入力していきます。
デフォルトでは何も入っていないと思います。
$cfg[‘Servers’][$i][‘password’] = ‘●●●●’;
※●●●●の部分に自分のパスワードを入力して下さい。
上書き保存をしてエディタを終了します。
「XAMPP Control Panel v3.1.0」より「MySQL」の右側にある【Admin】ボタンをクリックして「PhpMyAdmin 3.5.2.2」にログインしてみます。
【Admin】ボタンをクリック
「PhpMyAdmin 3.5.2.2」ログイン画面
言語 – Language
日本語 – Japanese
ログイン
ユーザ名 : root
パスワード : ●●●●(先程「config.inc.php」にて設定したパスワードを入力)
最後に実行を押して下さい。
これでPhpMyadminのパスワード設定は終了です。