= HomebrewでMAMP環境を構築する話 = MAMPとかいう一瞬で環境構築が可能なソフトウェアがあったり、あらかじめMacにApacheやらPHPが入っている訳ですが、あえてHomebrewでMAMP環境を構築しようという試み。とりあえず「動いてるなー」というところまで Homebrewはインストール済みということで話を進めていきます。 行うことは、 * PHPのインストール * Apacheのインストール * MySQLのインストール == PHPのインストール == 今回はPHP5.3をインストール {{{ $ brew install php53 }}} 多分恙無く終了するはず。 php.iniなどの場所は {{{ $ brew info php53 }}} で確認できます。 php.iniにて、MySQLとPHPで通信を行うためにソケットファイルの位置を設定。 {{{ 1075行付近 pdo_mysql.default_socket= /tmp/mysql.sock 1230行付近 mysql.default_socket= /tmp/mysql.sock 1288行付近 mysqli.default_socket= /tmp/mysql.sock }}} 念のためにpod_mysqlとmysqliも書いておく。 PEAR用にパーミッションの変更とcomfigの設定。これについては先のbrew infoから確認できる。 {{{ $ chmod -R ug+w /usr/local/Cellar/php53/5.3.xx/lib/php $ pear config-set php_ini /usr/local/etc/php/5.3/php.ini }}} ついでに拡張モジュールなどもインストール {{{ $ brew install php53-intl $ brew install php53-apc $ brew install php53-xdebug }}} PEAR関係も {{{ $ pear config-set auto_discover 1 $ pear install pear.phpunit.de/PHPUnit $ pear install PhpDocumentor $ pear install pear.phing.info/phing }}} ここで一旦Homebrewでリンクの張り直しをする。 {{{ $ brew unlink php53 Unlinking /usr/local/Cellar/php53/5.3.21... 33 links removed $ brew link php53 Linking /usr/local/Cellar/php53/5.3.21... 44 symlinks created }}} == Apacheのインストール == {{{ $ brew install httpd }}} こちらも恙無く終了するはず。 で、このまま起動できるか試してみる {{{ $ sudo apachectl start }}} そしたら、こんなエラー吐かれました {{{ (2)No such file or directory: httpd: could not open error log file /usr/local/Cellar/httpd/2.2.23/var/apache2/log/error_log. }}} どうやらログファイルのディレクトリがないらしいので {{{ mkdir -p /usr/local/Celler/httpd/2.2.23/var/apache2/log }}} としてディレクトリを作成し、再度起動してみる。 {{{ $ ps aux | grep httpd }}} とか打って、httpdプロセスが起動していれば問題なし。 しかしなぜか私のは起動していなかったので、errer_logを見に行くと... {{{ [error] (2)No such file or directory: could not create /usr/local/Cellar/httpd/2.2.23/var/apache2/run/httpd.pid }}} とかなんとか。runディレクトリが今度はないようなので作成して再度起動させると今度はプロセスが確認できた。 続いて、軽くhttpd.confを編集し、 {{{ LoadModule php5_module /usr/local/opt/php53/libexec/apache2/libphp5.so }}} を追記してPHPのモジュールを読み込ませる。 また、PHPを認識させるためにhttpd.confの {{{ TypesConfig etc/apache2/mime.type AddType application/x-compress .Z AddType application/x-gzip .gz .tgz }}} の部分を {{{ TypesConfig etc/apache2/mime.type AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType application/x-httpd-php .php }}} と追記し、 {{{ DirectoryIndex index.html }}} に {{{ DirectoryIndex index.php index.html }}} と追記する。 index.phpをindex.htmlより先に書くと優先的に読み込まれるようになる。 httpd.confを変更したので {{{ $ apachectl congigest }}} を実行し、Syntax OKと出力されれば問題ないので、設定を反映する為にApacheの再起動を行う。 {{{ $ sudo apachectl stop $ sudo apachectl start }}} == MySQLのインストール == {{{ $ brew install mysql }}} でインストール。 {{{ $ brew info mysql }}} で情報を表示させると初期設定する方法が簡易に書かれているので {{{ $ unset TMPDIR $ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp }}} を実行する。 そして、起動してみる {{{ $ mysql.server start }}} {{{ Starting MySQL .. SUCCESS! }}} となれば起動成功かと。