MavericksにWeb開発環境を構築する
まえがき
つい先日、愛用の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 |
目次
- Macportsをインストールする
- OSX付属のPHPとApacheを使えるようにする
- MySQLをインストールしてPHPから接続する
- Eclipse+PDT+xdebugでPHPのデバッグ環境を構築する
- MacportsPerl+EPIC+PadWalkerでPerlのデバッグ環境をつくる
- 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開発環境を構築する」の記事
- 第12回 MavericksにWeb開発環境を構築する << この記事です
- 第11回 Perl/MySQLを接続するパッケージ、DBD::mysqlをインストールする
- 第10回 Perlをインストールして、Eclipse+EPIC+PadWalkerでデバッグできるようにする
- 第9回 WordPressをインストールして、Eclipseから編集&デバッグする
- 第8回 Eclipse+PDTをインストールして、XDebugでデバッグできるようにする
- 第7回 MySQLをインストールしてPHPと接続する
- 第6回 ユーザー共有サイトを新設する
- 第5回 Mountain Lionでバーチャルホスト設定を行う
- 第4回 Mountain Lion付属のPHP&Apache2を使えるようにする
- 第3回 Macportsをインストールする
- 第2回 隠しファイルを表示する
- 第1回 Mountain Lionをクリーンインストールする