2012年4月16日月曜日

OS X lion にhomebrewでnginxとphpをインストールした

まずはnginxのインストール。

$ brew options nginx
nginx
--with-passenger
 Compile with support for Phusion Passenger module
--with-webdav
 Compile with support for WebDAV module

今回はどちらもいらないので普通に brew install nginx で設定をいじる。

$ cd /usr/local/etc/nginx
$ vim nginx.conf
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    include /usr/local/etc/nginx/sites-enabled/*;
}
こうしておいた
$ mkdir sites-enable
$ mkdir sites-available

このディレクトリ必要なの?って思ったけど、シンボリックリンクの作成/削除で複数ファイルの管理ができるよってことなんですね。なんかかっこいいですね。

で、availableの方に…

$ vim sites-available/localhost
server {
    listen 8080;
    server_name localhost;
    root /Users/kozo/Web/nginx/localhost/public;

    access_log  /Users/kozo/Web/nginx/localhost/logs/access.log;
    error_log  /Users/kozo/Web/nginx/localhost/logs/error.log warn;

    location / {
        index index.html index.htm index.php;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }
}

とした。

続いてphpのインストール。

$ brew options https://raw.github.com/ampt/homebrew/php/Library/Formula/php.rb
php
--with-mysql
 Include MySQL support
--with-pgsql
 Include PostgreSQL support
--with-mssql
 Include MSSQL-DB support
--with-fpm
 Enable building of the fpm SAPI executable
--with-apache
 Build shared Apache 2.0 Handler module
--with-intl
 Include intl extension
--with-readline
 Include readline extension

適当にオプション付けて

$ brew install https://raw.github.com/ampt/homebrew/php/Library/Formula/php.rb --with-mysql --with-pgsql  --with-fpm --with-intl --with-readline

そしたらエラー!
ココでも見てなんとかしろや的なこと言われたので見てみる
https://github.com/mxcl/homebrew/wiki/checklist-before-filing-a-new-issue

brew updateか。

$ brew update

またエラー。というかgitのリポジトリでconflict的なことが起きてるのかな?

$ cd /usr/local/
$ git fetch origin/master
$ git reset --hard origin/master
$ brew update
Already up-to-date.

OK! phpのインストール出来ました。 このままだとcliがMacにプリインストールされてる方を見ちゃうので

$ vim ~/.bash_profile
$ export PATH="$(brew --prefix)/bin:$PATH" 

上記を追加しました。

$ php -v
PHP 5.3.10 (cli) (built: Apr 16 2012 17:15:01) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
    with Xdebug v2.1.2, Copyright (c) 2002-2011, by Derick Rethans

よし。で、fpmの起動用plist作成

$ vim ~/Library/LaunchAgents/php-fpm.plist
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
<plist version='1'>
  <dict>
    <key>Label</key><string>org.php.php-fpm</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/sbin/php-fpm</string>
      <string>--fpm-config</string>
      <string>/usr/local/Cellar/php/5.3.10/etc/php-fpm.conf</string>
    </array>
    <key>Debug</key><false/>
    <key>RunAtLoad</key><true/>
    <key>KeepAlive</key><false/>
    <key>UserName</key><string>kozo</string>
  </dict>
</plist>

※.plistの拡張子付けないと後のlaunchctl loadで怒られました

php-fpm起動!

$ launchctl load -w ~/Library/LaunchAgents/php-fpm.plist

最終確認

$ cd ~/Web/nginx/localhost/public/
$ vim index.php
<?php echo 'Hello' ?>

と書いて http://localhost:8080/ を開いて Hello でました! 思ってたより簡単だったけどちょっと戸惑った。

参考にしたサイト

  • http://aoyagikouhei.blog8.fc2.com/blog-entry-195.html
  • http://d.hatena.ne.jp/YuhoYo/20110528/1306547056
  • http://labs.uechoco.com/blog/2011/12/php-homebrew-how-to-compile-intl-enabled-php.html
  • http://www26.atwiki.jp/nginx/pages/13.html
  • http://www.1x1.jp/blog/2011/05/yum_install_nginx_php-fpm.html

※追記 2012/04/17

再起動はこうすればいいらしい:

$ sudo nginx -s stop && sudo nginx

0 コメント:

コメントを投稿