まえがき

つい先日、愛用のMacbook Airがお亡くなりになりました。水がちょっとかかったみたいなんですが、復活には多大な出費が必要そう・・・。ならばと思い、Macbook Pro Retina 15inchを買いました。ワーイワーイ(泣

幸いデータは無事なのですが、諸々の都合上Macの環境設定もゼロからやり直しました。せっかくゼロから構築する機会を得たので、その手順を記事にすることにしました。詳細はMountain Lion versionでこちらの過去記事に書いてあるものと内容はほぼ同じなので、この記事では手順のみを紹介します。WordPressインストールに関しても、その過去記事にありますので省略いたします。

Spec

本体 Macbook Pro Retina, 15-inch, Late 2013
OS OS X 10.9
OSインストール プリインストール版
PHP OS付属のPHP5.4.x
Apache2 OS付属のApache2.2.x
MySQL Macportsインストール MySQL5.5
Perl Macportsインストール perl5.16
PHP開発環境 Eclipse Kepler + PDT + XDebug
Perl開発環境 Eclipse Kepler + EPIC + PadWalker

 

目次

  1. Macportsをインストールする
  2. OSX付属のPHPとApacheを使えるようにする
  3. MySQLをインストールしてPHPから接続する
  4. Eclipse+PDT+xdebugでPHPのデバッグ環境を構築する
  5. MacportsPerl+EPIC+PadWalkerでPerlのデバッグ環境をつくる
  6. PerlからMySQLに接続するツールDBD::mysqlをインストールする

 

Macportsをインストールする

Xcodeをインストールする

App Storeからインストール

Command Line Toolをインストールする

Xcodeを起動して、メニューバーから

Xcode > Open Developer Tool > More Developer Tools…

を選択する。Mavericks用のツールをダウンロード。インストーラが付いているので簡単。

Macportsをインストールする

下記URLに飛び、Mavericks用をダウンロード。インストーラ付きなので簡単です。

http://www.macports.org/install.php

ターミナルを開き、

source ~/.profile

念のためバージョンを表示して、インストールされたかを確認。

port version

 

OSX付属のPHPとApacheを使えるようにする

PHPを有効化してApacheを起動する

Finderメニューから、
Finder > 移動 > フォルダへ移動を選択して、次のファイルへ移動する

/etc/apache2/httpd.conf

次の行のコメントアウト(#)を外して、PHPを有効にする

#LoadModule php5_module libexec/apache2/libphp5.so

Apacheを起動する

sudo apachectl start

下記にアクセスする。It works!が表示されれば、Apacheは動作OK.

http://localhost

PHPの動作確認をするために、次の1行を書いたtest.phpを作成する。

<?php phpinfo();

次のフォルダに保存する。なお初期設定時には、このフォルダの書き込み権限が無いと思うので、フォルダを選択して、Command+iで情報パネルを表示、読み書きアクセス権を自分に付与しておく。

/Library/WebServer/Documents

下記にアクセスして、PHPの紫色の画面が表示されればOK.

http://localhost/test.php

 

Virtual Host機能を利用する

先ほどのApacheの設定ファイルを開く

/etc/apache2/httpd.conf

次の行を探してコメントアウト(#)を消す

#Include /private/etc/apache2/extra/httpd-vhosts.conf

PHPファイルを入れるフォルダを作成する。ここでは、ユーザーフォルダの下にWebSitesというフォルダを作成して、その中に複数のサイトデータを入れると仮定して進める。

mkdir ~/WebSites

ここでは、”localtest”という名前でフォルダを作成する。これを後でドキュメントルートとして指定する。

mkdir ~/WebSites/localtest

先ほど作成した、test.phpをlocaltest直下に入れておく。

次に、Virtual Hostの設定ファイルを編集する。次のファイルを開く。

/etc/apache2/extra/httpd-vhosts.conf

dummyを消して、次のような設定を追記する。****には、ユーザー名を入れる。URLはlocaltest.netとした。

<VirtualHost *:80>
  ServerAdmin webmaster@localtest.net
  DocumentRoot "/Users/****/WebSites/localtest"
  ServerName localtest.net
  ErrorLog "/private/var/log/apache2/localtest.net-error_log"
  CustomLog "/private/var/log/apache2/localtest.net-access_log" common
  <Directory "/Users/****/WebSites/localtest/">
    AllowOverride Fileinfo Options
    order deny,allow
    deny from All
    allow from localhost 127.0.0.1
  </Directory>
</VirtualHost>

次のファイルを開く

/etc/hosts

最後に次の行を追記する。

127.0.0.1     localtest.net

apacheを再起動する。

sudo apachectl restart

httpd-vhosts.confで指定したURL/test.phpにアクセスする。

http://localtest.net/test.php

PHPの情報画面が出ればOK.

補足:この手順でVirtual Host設定を行うと、最初に確認した”/Library/WebServer/Documents/”にはアクセスできなくなる。このディレクトリにアクセスしたいならば、httpd-vhosts.confにそのための設定を書き加えないとならない(と思う)。

 

MySQLをインストールしてPHPから接続する

MySQLをMacportsインストールする

Macportsでインストールする(かなり時間がかかる、途中でJava Runtimeのインストールが促されたら入れておく)

sudo port install mysql55-server

初期化する

sudo -u _mysql /opt/local/lib/mysql55/bin/mysql_install_db --tmpdir=/tmp

補足
tmpdirをオプション指定しないとエラーが発生。このサイトを見て解決しました。感謝!

自動起動設定しておく

sudo port load mysql55-server

mysqlコマンドで、mysql5.5を実行できるようにする

sudo port select mysql mysql55

mysqlにログインしてみる

mysql -u root

 

MySQLとPHPを接続する

mysqlでsocket-fileのpathを確認する

mysql> status;

UNIX socket:…の行を確認する。多分次のようなパスになっているはず。

UNIX socket:/opt/local/var/run/mysql55/mysqld.sock

mysqlを終了

mysql> exit

php.iniファイルを作成する。まずはdefaultからコピー

sudo cp /etc/php.ini.default /etc/php.ini

iniファイルを開く

/etc/php.ini

次の行を探す(たぶん@1135 line)

mysql.default_socket =

先ほどのsock-fileのpathを指定する

mysql.default_socket = /opt/local/var/run/mysql55/mysqld.sock

Apacheを再起動する

sudo apachectl restart

接続テストをする。次のようなファイルを作成して、~/localtest直下に保存する。

sample.php
<?php
if (!$link = mysql_connect('localhost', 'root', '')) {
die('MySQL access failed.');
}
echo 'MySQL access successful.';
mysql_close($link);

次のURLにアクセス。

http://localtest.net/sample.php

MySQL access successfulが表示されれば接続OK.

 

MySQLの文字コードをUTF-8に指定する

MySQLの設定ファイルmy.cnfは、MacportsのMySQL用に作成された設定ファイルをインクルードするように書いてあります。このままで問題があるか分からないのですが(内容を確認していないです、スミマセン)、ここではMySQLで元々用意されているテンプレートを利用することにします。

テンプレートをコピーする(MySQLの使用状況やHardware-Specによってサイズ選択)

sudo cp /opt/local/share/mysql55/support-files/my-medium.cnf /opt/local/etc/mysql55/my.cnf

client, mysqldの項に、文字コード設定を追記する

[client]
default-character-set = utf8
...
[mysqld]
character-set-server = utf8

MySQL-serverを一度停止する

sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql55-server.plist

MySQL-serverを起動する

sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql55-server.plist

これで設定ファイルが反映されるハズ。

補足:
MySQLを止めたり動かしたりしていると、MySQL起動時に”ERROR! MySQL server PID file could not be found!”なるエラーに出会うかもしれない。エラー名でgoogle先生に聞くと色々対処法が出てくるので、聞いてみてください。

 

Eclipse+PDT+xdebugでPHPのデバッグ環境を構築する

Eclipse+PDTをインストールする

Eclipse Keplerのサイトを開き、Downloadの項を選択&ファイルダウンロード。私はStandard for Mac OS X 64bitを選択。

http://www.eclipse.org/kepler/

tarを解凍して、フォルダを移動する

mv ~/Downloads/eclipse /Applications/

アプリ立ち上げ・・・と思ったらエラー発生。
システム環境設定>セキュリティとプライバシーを開き、「このまま開く」を押す。

Eclipseを起動して、メニューバーからHelp > install new softwareを選択する。Work withに

Kepler - http://download.eclipse.org/releases/kepler

を指定する。PHP Development Tools (PDT)をチェックしてNext>Next…accept…Finishを押す。

文字コードをUTF-8に指定する

Eclipseで扱うファイルのエンコードを指定する。Eclipse > 環境設定 > General > Content Typesを開き、UTF-8に指定したいファイルタイプに対して、Default encodingの項に”utf-8″を入力し、Updateボタンを押します。

Eclipse全体のエンコードもUTF-8に指定しておきます(Perlとか利用中にEclipse内でコンソール出力するときに文字コードを揃えないと面倒なので)。Finder > 移動 > 次のフォルダに移動を選択し、次のファイルを指定します。

/Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.ini

次の1行を追記します。

-Dfile.encoding=utf-8

iniファイルを保存したら、一度Eclipseを再起動します。

Xdebugを有効にする

xdebug.soファイルを探索。

mdfind -name xdebug.so

たぶん、下記に見つかる

/usr/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so

php.iniを開いて[xdebug]の項を編集・・・と思ったら、[xdebug]が無いです。php.iniの最後に自分で追加します。

[xdebug]
zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.profiler_output_dir="/tmp/xdebug/profiler_output"
xdebug.profiler_enable=On
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.idekey=ECLIPSE_DBGP

apacheを再起動する

sudo apachectl restart

この時点で、先ほどのtmp.phpを表示すれば(phpinfo();のやつ)、xdebugに関する情報が出力されるようになっているハズ。

EclipseでPHPを実行&デバッグできるようにする

Eclipse環境設定で、PHP Debug, PHP Executables, PHP Serversの3つを編集する。その後、新しいPHPプロジェクトを作成して、Run > Debug configurationsを開き、PHP Web Applicationをダブルクリックして、諸々を設定。テストのために”最初の行でブレークする”にチェックを入れておき、実行。実際に最初の行でBreakしたら動作OK。

これらの環境設定&プロジェクト作成手順については、Mountain Lion向け記事を参照してください。内容は同じです。

MacportsPerl+EPIC+PadWalkerでPerlのデバッグ環境をつくる

Perl5.16をMacportsインストールする

コマンド一発です

sudo port install perl5 +perl5_16

Perlの場所を確認しておく。下記パスに変わっていればOKです。

which perl 
/opt/local/bin/perl

EPICをインストールする

EPICのサイトにアクセス

http://www.epic-ide.org

downloadの項を探して、プラグインDLのURLを確認する。たぶん、下記のアドレスが指示されている。

http://e-p-i-c.sf.net/updates/testing

Eclipseを起動して、メニューバーのHelp > Install New Softwareを選択。WorkWithの項のAddボタンを押し、適当な名前&先ほど確認したdownload-urlを指定する。プラグイン一覧からEPICの項をチェックしてNext…Next…と進める。インストール途中Security warningが出るが、OKボタンを押す。Eclipseを再起動。

EPICの環境設定を行う。Perl EPICの項のPerl executableに、”which perl”で確認したパスを指定する。

cpanmのインストール

各種Perlモジュールをインストールするために、ここではcpanmを利用します。まずは、cpanm本体をgitインストール。なお、OSX10.9にはgitが最初から標準で入っている。

ターミナルから、次のような手順でインストールできる。

cd ~
sudo git clone git://github.com/miyagawa/cpanminus.git
cd cpanminus
sudo perl Makefile.PL
sudo make install

cpanmコマンドを簡単に使えるように、シンボリックリンクを作成する。インストールされたcpanmを探す。

mdfind -name cpanm

たぶん、次のような場所に入っている。

/opt/local/libexec/perl5.16/sitebin/cpanm

次のコマンドでリンク作成。

sudo ln -s /opt/local/libexec/perl5.16/sitebin/cpanm /opt/local/bin/cpanm

 

PadWalkerをインストールする

cpanmでコマンド1発インストールできるハズ。

sudo cpanm PadWalker

実際にインストールできたか、確認しておく。コンソールから下記を実行する。

perl -MPadWalker -e'print "installedn"'

“installed”と表示されればOK。(ごにょごにょ色々な結果が帰ってきたら、インストール失敗。)早速Eclipseで適当なPerlプロジェクトを作成、デバッグ実行&途中でブレークしてみて、変数が見えればOK。

 

PerlからMySQLに接続するツールDBD::mysqlをインストールする

依存モジュールをインストールする

まずは、DBI::DBDをcpanmでインストール

sudo cpanm DBI::DBD

次に、Test::Deepをcpanmでインストール

sudo cpanm Test::Deep

 

DBD::mysqlをインストールする

cpanmコマンド一発でインストールするのではなく、ログ等を確認しながら進める。まずはmysql_configファイルの在処を調べる。

mdfind -name mysql_config

たぶん、次の場所に見つかる(この記事通りにmacportsでmysqlをインストールした場合)

/opt/local/lib/mysql55/bin/mysql_config

DBD::mysqlを半手動でインストールする。ダウンロード&解凍までで止めるために、–lookオプションを付けてcpanmを実行する。

sudo cpanm --look DBD::mysql

解凍したフォルダに移動する。xxxにはcpanmから割り振られた数字が入る

~/.cpanm/work/xxxxx.xxxxxx

先ほど探しておいたmysql_configの在処をオプション指定して、Makefile.PLを実行する。

sudo perl Makefile.PL --testuser=root --mysql_config=/opt/local/lib/mysql55/bin/mysql_config

エラー等出なければ、

sudo make && make test

最後にインストール実行

sudo make install

モジュールが入ったどうかを確認しておく。

perl -MDBD::mysql -e'print "installedn"'

 

DBD::mysqlの動作を確認する

最後に、PerlからMySQLの接続テストを行う。次のようなPerlプログラムを書いて実行。Connecting…と表示されればOK.

connect_mysql_test.pl
#! /opt/local/bin/perl
use strict;
use warnings;
use 5.012;
use DBI;
my $dbh = DBI->connect( 'DBI:mysql:mysql', 'root', '',) or die "Can't connect to databasen";
print "Connecting...n";
$dbh->disconnect();

 

以上で終わりです。お疲れ様でした!

 

「MacにWeb開発環境を構築する」の記事