Login
Immutable PageDiscussionInfoAttachments
hirosun/Homebrew/MAMP環境構築

MMA

HomebrewでMAMP環境を構築する話

MAMPとかいう一瞬で環境構築が可能なソフトウェアがあったり、あらかじめMacにApacheやらPHPが入っている訳ですが、あえてHomebrewでMAMP環境を構築しようという試み。とりあえず「動いてるなー」というところまで

Homebrewはインストール済みということで話を進めていきます。

行うことは、

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の

<IfModule mime_module>
     TypesConfig etc/apache2/mime.type
     AddType application/x-compress .Z
     AddType application/x-gzip .gz .tgz
</IfModule>

の部分を

<IfModule mime_module>
     TypesConfig etc/apache2/mime.type
     AddType application/x-compress .Z
     AddType application/x-gzip .gz .tgz
     AddType application/x-httpd-php .php
</IfModule>

と追記し、

<IfModule dir_module>
     DirectoryIndex index.html
</IfModule>

<IfModule dir_module>
     DirectoryIndex index.php index.html
</IfModule>

と追記する。 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!

となれば起動成功かと。

hirosun/Homebrew/MAMP環境構築 (last edited 2013-03-30 13:33:40 by hirosun)