mayy

Blog

MAMP proで最初にするPHPとMySQLの設定

カテゴリー
MySQL
タグ
,,
MAMP

MAMPに限ったことではないですが、PHPやMySQLの設定をしていないと「日本語がばける」「時間うまくとれない」「マルチバイト文字の処理がうまくいかない」といった問題が起こるので解決法。

MAMP proでの設定ファイルの編集

MAMP proではファイル→テンプレートの編集から設定ファイルの編集を行います。
PHPは利用しているバージョンの「php.ini」ファイル。
MySQLは「my.cnf」ファイルを編集していきます。

※バージョン2.1.1を利用しています。バージョンによっては編集方法が違うかもしれません。
また、この記事は2012年12月22日に作成しました。それ以降のバージョンアップにより記事とは異なる設定が必要になる可能性もありますのでご注意ください。

php.iniの編集

まずはPHPの初期設定を行なっていきます。
そのままではマルチバイト処理がうまくいかなかったりします。
以下が編集した項目です。先頭に「;」がついている場合はコメントアウトになっています。
反映したい場合はこれを削除してください。

default_charset = “UTF-8″
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
date.timezone = “Asia/Tokyo”
display_errors = On

mbstring~がマルチバイト処理の設定、date.timezone~で時間を扱う関数を日本時間に設定、display_errorsはPHPでエラーが出た場合画面に表示する設定です。
開発で利用する場合は特に、これをOnにしておくとエラーが分かりやすくなるので設定しておくとよいでしょう。

これで一通り問題なく利用できるようになると思います。
その他設定について気になる箇所がある場合は、調べてみてください。

my.cnfの設定

MySQLもPHPと同じく、初期設定ではうまく日本語が扱えない場合があります。
まず現在の文字コードを調べてみましょう。
MySQLにログインして以下のコマンドを打ってみてください。

[html]
mysql> show variables like ‘character_set%’;
[/html]

以下の画像のような文字列が出ると思います。
これに「latin1」がある場合日本語をうまく扱えないのでこれをUTF-8に変更していきます。

MySQL初期の文字コード

まず[client]と書かれている行の下に以下の行を追加。

[client]
charcter-set-server = utf8

次に[mysqld]と書かれている行の下に2行追加。

[mysqld]
skip-character-set-client-handshake
character-set-server = utf8

これでMAMPを再起動して先ほどと同じコマンドを打ってください。
先ほど「latin1」と書かれていた箇所が「utf8」に変わっていれば完了です。

文字コード変更後

参考にしたサイト

他にも色々調べましたが、my.cnfの設定は情報が古いものが多く苦戦しました。
試行錯誤した結果、上の2つをの記事を参考にすることで解決することができました。

カテゴリー

タグクラウド