2007年10月31日に、PHP in Fukuoka主催の「PHP基礎講座vol.1」に参加しました。
今回は初日ということで開発環境の構築を行いましたが、基本的にWindows中心に話が進んでいくので、公開される資料だけではMacユーザーには情報が足りません。そこで、僕なりに気づいたこととか、当日の作業を公開します。
ただし、 実行環境としてXAMPPを使用することになっていましたが、すでにMAMPをインストールしていたため、MAMPで作業を進めています。よって、XAMPPのインストール部分は省いています。
事前準備
講座開催の事前に各受講者は、当日必要になるデータをダウンロードしなくてはいけません。Macユーザーが必要なデータは以下の通り
- JDK:Macは既にインストールされているそうなので不要
- PDT:Eclipseのことらしい。eclipse.orgよりcarbon版をダウンロード
- Pleiades:Eclipseを日本語化するツール。ダウンロードサイトより最新版をダウンロード。
- XAMPP:実行環境アプリケーション。今回はMAMPを使用した。
- PHPマニュアル
開発環境構築
XAMPPのインストール
MAMPを既に入れているので省きます。MAMPのポートはデフォルトの8888のまま。PHPのバージョンは5(5.2.3)に設定した。
php.iniの設定
テキストエディタでphp.iniを開きます。MAMPでは「MAMP > conf > php5 > php.ini」にファイルがあります。編集時は設定項目名を検索しながら行うと楽です。もし、設定を変更する項目の行頭に「;」が付いていたら、設定が有効にならないので「;」を消します。
設定する項目は以下の通り
- default_charset = “UTF-8″(UTFは大文字)
- short_open_tag = Off
- magic_quotes_gpc = Off
- expose_php = Off
- log_errors = On
- log_errors_max_len = 4096
- error_log = “/Applications/MAMP/logs/php_error.log”
- session.use_only_cookies = 1
- mbstring.language = Japanese
- mbstring.internal_encoding = UTF-8
- mbstring.http_input = pass
- mbstring.http_output = pass
- mbstring.substitute_character = “”;
- register_argc_argv = Off
公開されたスライドでは設定することになっているが、MAMP1.7 php5のphp.iniにはない項目が存在します。それは以下の通り。これらは設定しなくてOK。
- session.hash_function
- register_long_arrays
JDKのインストール
Macはインストールされているそうなので次へ。
PDTの準備
あらかじめダウンロードしておいたファイル(今回はpdt-all-in-one-1.0-R20070917-macosx-carbon.tar.gzだった)を解凍すると「eclipse」フォルダが現れます。このフォルダをApplicationフォルダに移動させておきます。これは、後から初期設定ファイルにフルパスを指定するので、Applicationフォルダがわかりやすくて楽だったからです。フルパスで指定するのが面倒でなければどこにおいても構わないと思います。
PDTの日本語化
ダウンロードしておいたファイル(今回はpleiades_1.2.1.p13.zip)を解凍、現れた「pleiades_1.2.1.p13 Folder」の中にある「features」フォルダの中身を「Application > eclipse > features」にコピーします。同様に「plugins」フォルダの中身を「Application > eclipse > plugins」にコピーします。
eclipse.iniの編集
Mac版のeclipse.iniはeclipse.app内にあるので、eclipse.appのアイコン上でコンテクストメニューを表示、「パッケージの内容を表示」を選びます。その中の「Contents > MacOS > eclipse.ini」をテキストエディタで開きます。
解凍してできた「pleiades_1.2.1.p13 Folder」内の「eclipse.ini.sample.3.3-」をテキストエディタで開き、全文をコピーして、eclipse.iniを書き換えます。Macではこのあと、最終行の「-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar」を「-javaagent:/Applications/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar=no.mnemonic」に変更します。
最終的にeclipse.iniの内容は以下のようになります
–launcher.XXMaxPermSize
256M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-javaagent:/Applications/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar=no.mnemonic
PDTの起動
Eclipse.appをダブルクリックし起動します。するとワークスペース・ランチャーが表示されるのでワークスペースを任意の場所に設定。僕は今回、MAMPで設定したルートフォルダ内に「php-basic」フォルダを作成し、それを選択しました。
PDTの設定
Eclipseが完全に起動したら、実行ファイルとマニュアルの場所を指定します。メニューバー「Eclipse > Preference…」を選択し、初期設定画面を表示します。
「PHP実行可能ファイルの追加」で以下のように設定
- PHP実行可能ファイル・ラベル=「PHP5.2.4」
- PHPディレクトリー・パス=「/Applications/MAMP/bin/php5/bin」
- PHP debugger=「Zend」
「PHPマニュアル」で以下の手順で設定
- あらかじめPHPマニュアル「php_manual_ja.tar.gz」を任意の場所に解凍しておく
- 「新規」ボタンをクリック。
- 名前=「Manual」(たぶん判れば何でも良い)
- ラジオボタンをLocal Directoryに
- 「…」ボタンをクリックし、あらかじめ解凍しておいたマニュアルのパスを指定
- 一覧に表示されるので、デフォルトに設定しておく
ZendDebuggerの設定
あらかじめダウンロードしておいたファイル(今回はZendDebugger-5.2.10-darwin8.6-uni.tar.gz)を解凍します。解凍して出来たフォルダ内から、PHPのバージョンに合わせてフォルダを開きます。PHPのバージョンは、MAMPを起動しスタートページを表示させたあと、メニュー「phpinfo」で確認できます。
もしPHP Version 5.2.3だった場合は、「5_2_x_comp」フォルダ内の「ZendDebugger.so」ファイルを任意の場所に置きます。ファイルまでのフルパスを指定するので判りやすいところが良いです。今回僕は「Applications/MAMP/bin/php5/zend/lib/」にコピーしました。
php.ini(MAMPでは「MAMP > conf > php5 > php.ini」)を開いて編集します。詳細はREADMEに書かれていますが、最終行のあとに以下の3行を追加します。(1行目は先ほどのZendDebugger.soまでのフルパス)
- zend_extension=/Applications/MAMP/bin/php5/zend/lib/ZendDebugger.so
- zend_debugger.allow_hosts=127.0.0.1
- zend_debugger.expose_remotely=always
さらに、「zend_extension=/Applications/MAMP/bin/php5/zend/lib/ZendExtensionManager.so」の行頭に「;」を入力し、無効にしておきます。これがあると、Apacheサーバが起動しないようです。
今回はここまでです。
詳細な解説をどうもありがとうございます!MAMP×Eclipseでここまで詳細にまとめてあるのも珍しいのではないでしょうか。
[…] grafoo:blog » Blog Archive » PHP基礎講座 vol.1 1日目作業メモ macにMAMPでテストサーバーを構築し、eclipseのPDTで開発するための導入 (tags: eclipse php mamp mac) […]
わかりやすい解説ありがとうございます。
説明の通りすすめて、
無事PDTの日本語化までたどりつきました。
しかしPHPのサンプルコードを入力し、
実行またはデバッグしようとすると
下記のエラーが表示されます。
解決策をご存知でしたらエントリしていただけないでしょうか。
よろしくおねがいします。
The session could not be started.
In order to generate debug information,
please make sure that the debugger is properly configured as a php.ini directive.
takさんへ
PHPは専門外なのと、普段からEclipseを使っていないので
実はよく分からないんです。
どうやらデバッガの設定に問題があるようなメッセージですね。
この勉強会も随分と前の話ですが、たしかデバッガの設定では苦労した記憶があります。
結局、この後の勉強会に参加できなかったのでそのままになってしまっています。
参考にならずごめんなさい。