MacでWeb開発-(3) XAMPP for MacのPHPの環境設定

 XAMPP for MacOS Xのデフォルトの設定では、PHPセッション機能や日本語(マルチバイト文字列)機能が無効になっている。
 そこで、PHPのセッションや日本語を使えるように、PHPの設定ファイル「php.ini」を書き換える。
 また、コマンドラインでPHPを利用しやすいように、シンボリックリンクを張ってパスを通す。

 なお、XAMPP for MacOS Xでは、php.iniは以下の場所にある。

/Application/xampp/etc/php.ini

 編集は、「ターミナル」でemacsやviなどのCUIのテキストエディタを使うか、「mi」「JEdit X」「TextMate」のようなGUIのテキストエディタを使う。

(1) セッション機能の有効化

 セッション機能は、ログイン状態を保持するときなどに便利な機能だ。
「session.save_path」の行頭のコメントアウト「;」を削除すれば、セッション管理が有効になる。
——————————
;session.save_path = /tmp

session.save_path = /tmp
——————————

(2)日本語機能の有効化

 XAMPPのPHPは、日本語などのマルチバイト文字を扱える「mbstring」モジュールが組み込まれており、設定ファイルで有効にするだけで使用できる。

 使用できる日本語の文字コードには、Shift_JIS、EUC-JP、UTF-8などがある。WindowsやMacでは、Shift_JISが標準になっている。
 しかし、現在のPHPではプログラムコードをShift_JISで書くことはできない。
 表示するHTMLをShift_JISにしたいときは、プログラムをEUC-JPで記述し、WebブラウザにHTMLを出力するときだけShift_JISに変換するように指定する。
 ただし、EUC-JP→Shift_JISの変換処理が行われるので、表示が遅くなることもある。
 現在のWebブラウザは、どんな文字コードも表示できるので、プログラムをEUC-JPで記述したら、HTMLも変換せずにEUC-JPで出力するほうが無駄がない。
 iモードなどのケータイ用ブラウザは、Shift_JIS専用なので、変換が必要になる。

 以下は、プログラムの文字コードをEUC-JPに設定し、出力もそのままEUC-JPで出している。
——————————
[mbstring]
; language for internal character representation.
mbstring.language = Japanese

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = EUC-JP

; http input encoding.
mbstring.http_input = auto

; http output encoding. mb_output_handler must be
; registered as output buffer to function
;mbstring.http_output = SJIS
mbstring.http_output = EUC-JP

; enable automatic encoding translation accoding to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
;mbstring.encoding_translation = Off

; automatic encoding detection order.
; auto means
mbstring.detect_order = auto

; substitute_character used when character cannot be converted
; one from another
mbstring.substitute_character = none;
——————————

(3) シンボリックリンクの張り直し

 PHPは、Webアプリケーションの記述だけでなく、コマンドラインの処理の記述にも使われる。
 Webアプリでも、リアルタイム更新ではないページは、コマンドライン版のPHPで、定期的に処理してページを生成する。

 Mac OS Xには、コマンドライン版のPHPが「/usr/bin/php」としてインストール済みなのだが、XAMPPのWebアプリと連動させたいなら、XAMPP側のコマンドライン版PHPを利用したい。こちらは「/Applications/xampp/xamppfiles/bin/php-5.2.5」としてインストールされている。

 対策としては、

  1. 新しく「/usr/local/bin」というディレクトリを作る。
  2. 「/usr/local/bin」のコマンドが「/usr/bin」の同名コマンドより先に実行されるように環境変数PATHを設定。
  3. 「/usr/local/bin」にXAMPP側コマンドライン版PHPへのシンボリックリンクを置く。

とすればいい。

ディレクトリとシンボリックリンクの作成
———————————–
$ sudo mkdir /usr/lcoal/bin
$ sudo ln -s /Applications/xampp/xamppfiles/bin/php-5.2.5 /usr/local/bin/php
———————————–

環境変数PATHの設定
~/.bash_profileに以下のように設定する。
—————————————–
PATH=/usr/local/bin:”$PATH”
—————————————–

【再起動】

設定が終了したら、XAMPP Control PanelでApacheを再起動(Reload)する。

以上。

関連記事

関連記事

投稿者:

ともゆき@zubapita

ともゆき@zubapita

作ったモノ 雑誌:月刊アスキー(デスク)、アスキー.PC(副編集長)、インターネットアスキー(編集長)、アスキーPCエクスプローラー(編集長) Webサイト:東京グルメ/ライブドアグルメ、映画を語ろう、本が好き 著書:「Twitter 使いこなし術」「facebook 使いこなし術」 最近は、株式会社ブックウォーカーにて、「BWインディーズ」をやってます。

“MacでWeb開発-(3) XAMPP for MacのPHPの環境設定” への7件のフィードバック

  1. お世話になっております
    サイトーです。お忙しいところ、お手数ですが、また質問させてください。

    (1) セッション機能の有効化で
    ; session.save_path = “N;/path”
    という記述しかないのですが、session.save_path = /tmpと書き直したほうがいいですか?

    他に コメントアウトされていない
    session.save_path = /Applications/XAMPP/xamppfiles/temp/
    というのがあります、、、

    (3) シンボリックリンクの張り直し で
    環境変数PATHの設定
    ~/.bash_profileに以下のように設定するには、
    PATH=/usr/local/bin:”$PATH” と
    ターミナルに 113x33x242x100:~ ユーザー$ の後に 書けばいいのでしょうか?

    ls -aをしてみると、
    . .crash_report_preview Documents
    .. .crash_reportrc Downloads
    .CFUserTextEncoding .cups Library
    .DS_Store .dvdcss Movies
    .Trash .filezilla Music
    .Xauthority .fontconfig Pictures
    .Xcode .macports Public
    .adobe .mysql_history Sites
    .bash_history .profile
    .cpan Desktop

    しかありません、、、

  2. サイトウさん
    (1)ですが、すでに設定があって、ディレクトリがあって、誰でも書き込めるようになっているなら、とりあえず、それで良いと思います。

    (3) えっと、.bash_profileが存在しないので、編集できないということでしょうか?

    $ emacs ~/.bash_profile
    とか
    $ vi ~/.bash_profile
    みたいに、エディタコマンドの後ろにファイル名つけて起動すれば、ファイルが存在するときはそれを開き、ファイルがないときは、ファイルが作成されます。

    ということで、よいでしょうか?

  3. tomoyunさん お世話になっております。
    ありがとうございます
    (3)了解いたしました、
    ターミナルにはどのように書けば、
    ~/.bash_profileというファイルが作成されて
    PATH=/usr/local/bin:”$PATH” となるのでしょうか、、、
    すいません、UNIXの絵本を買って読んでいるのですが、、要領を得ず、、
    毎回、お手数をおかけします。

  4. サイトウさん

    「テキストエディタ」は分かりますか?ワープロみたいなものですが。

    ターミナルの中で動くテキストエディタには、viやemacsがありますが、ちょっと操作が難しいので、フリーのテキストエディタをダウンロードして使ってください。miとかいろいろあるはずです。

    Mac OS Xでは、.bash_profileは存在しないので、自分で作ります。
    テキストエディタで新規ファイルを作って、
    そこに
    PATH=/usr/local/bin:”$PATH”
    と書き込んで、ホームディレクトリに.bash_profileという名前で保存すればいいのです。

    最終的には、viとemacsのどちらかをマスターしたほうがいいので、勉強してください。

  5. っそっそうですよね、、、
    テキストで作って書けばよいのですよね
    すいません、、、ありがとうございます
    また、初歩すぎる問い合わせをすると思いますが、
    よろしくお願いいたします。
    ありがとうございました。

  6. お世話になっております
    とんちんかんなことばかりですいませんでした。
    unixの説明書のvi のところをよく読みましたら、tomoyunさんのおっしゃる通り、書き込めました!
    ありがとうございます。

  7. いつも、拝見させて頂いております。
    お忙しい所、大変恐縮ですが私にも質問させて下さい。

    全くの初心者ですが、勉強してます。
    2点、分からない事があります。
    1、XAMPPのセキュリティーで、ユーザーnobodyのパスワードを何百回としてますが、そこだけかわりません。
    この様に表示されます。
    「ユーザnobody のFTPパスワードが「xampp」のままです」
    ここだけなんです。変更出来ないのが。

    2、PHPファイルをXAMPPを使って表示させたいのですが、URLの最後にファイル名を指定しても表示されません。

    ひょっとして、PHPファイルの保存場所が違うのかもしれません。どこに保存すれば、見れるようになりますか?
    アドバイスお願いします。
    保存場所はデスクトップです。
    ひょっとしてそもそも、保存場所が違ったりしますか?

    最後になりますが、環境はMACのOSXです!

    ご指導の程、よろしくお願いします!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>