- WebサーバーMAMPの設定といっても、ノートPCにローカルの開発系WEBサーバーを構築するだけです。
特に設定をしなくても、アプリケーションフォルダのMAMPをクリックすれば、WEBサーバーは立ち上がるのですが、この教科書通り[PHP 逆引きレシピ
]に、以下3点の設定を行います。
- 日本語のエンコード設定
- エラー表示の設定
- タイムゾーンの設定
アプリケーションのMAMPフォルダ配下、/Applications/MAMP/conf/php5/にphp.iniという設定ファイルがあります。このファイルの以下の項目を設定します。
・・・とその前に、の設定ファイルの編集は、macbook標準アプリのテキストエディタで編集すると色々と不都合なことが多いので、Mac OS X 用のテキストエディタ「Mi」をインストールして使います。
参考書のこの本[PHP 逆引きレシピ
]には親切に行番号まで記載してますが、Mac OS X 用のテキストエディタ「Mi」の検索機能(検索メニューからキーワードを入れて検索する)で、検索すれば結構楽に探し出すことができます。
PHP.iniの設定変更①:magic_quotes_gpc = On → Off に変更する。
「magic_quotes」は、セキュリティ対策として
- 「’」(シングルクオート)
- 「”」 (ダブルクオート)
- 「\」(バックスラッシュ)
- NULL
に、全て自動的に バックスラッシュでエスケープ処理(制御文字を無害な文字列に「エスケープ」)する機能なのですが、この機能が不完全というか、実行環境などによって、上手く動作しないことが多いため、Offにするケースが多いようです。そのため、PHP6系からは、この機能は搭載されないことが決まっているようです。(代わりに、個々のプログラムのコーディングのなかで、エスケープ処理をする必要があります。)
PHP.iniの設定変更②:日本語エンコードを整える。
次の設定変更は、エンコードを「UTF-8」に統一し、日本語環境を整えるすることです。エンコード設定は、統一されていればあまり不都合は無いようですが、「UTF-8」がPHPでは一般的なようで、望ましいエンコードらしいです。
- default_charset = “UTF-8″にする。(デフォルトではセットされていないので、「UTF-8」と書く)
- mbstring.language = Japaneseにする。(デフォルトでは「;」が先頭にあり、コメントになっているので、これを消す。)
- mbstring.internal_encoding = UTF-8にする。(同じく、コメントになっているので「;」を消す。)
- mbstring.http_input = auto(同じく、コメントになっているので「;」を消す。)
- mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII(同じく、コメントになっているので「;」を消す。そして、値が「auto」になっているので、これを、「SJIS,EUC-JP,JIS,UTF-8,ASCII」にする。autoでも良いらしいですが、うまく自動判定が機能しない場合もあるらしく、定義しておくと良いと書いてありました。)
PHP.iniの設定変更③:タイムゾーンを設定する。
MAMPのPHP.iniには、タイムゾーンの設定が無いそうなので、この[PHP 逆引きレシピ
]に従って、510行ぐらいに、以下の値を追加して、タイムゾーンを日本にしておく。
[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Tokyo
これで、MAMPでの設定は終わり。
あと、エラーメッセージが表示されるようになっているハズですが、一応、230行〜330行あたりの、「Error handling and logging」の項目をみて、
- error_reporting = E_ALL
- display_errors = On
となっていることを確認する。まあ、デバックに必要なので開発環境では、エラー表示はオンにしておく。逆に、本番環境だと、セキュリティ上の問題になるので、この辺の値は、ログに書き込ませて、WEBでは表示させない設定にする。
あと、localホストの開発環境なんで、セキュリティ対策の心配はあまりありませんが、一応、MacBook
の「システム環境設定」の「共有」のところで、「インターネット共有」のチェックが”無い(チェックがあれば、はずす)”ことを確認する。
一応、これで、MAMPの設定は終了で、開発用のWebサーバーが構築できました。
次は、開発用の統合環境Eclipseです。これは、その4につづく。