安装 XCode 最新版 
安装 MacPorts 
sudo port install nginx fcgi spawn-fcgi 
sudo port install php5 +fastcgi …. 
vim org.macports.phpfcgi.plist
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key><string>org.macports.phpfcgi</string>
  <key>Debug</key><false />
  <key>OnDemand</key><false />
  <key>RunAtLoad</key><false />
  <key>EnvironmentVariables</key>
  </dict><dict>
    <key>PHP_FCGI_CHILDREN</key><string>2</string>
    <key>PHP_FCGI_MAX_REQUESTS</key><string>5000</string>
  </dict>
  <key>LaunchOnlyOnce</key><true />
  <key>ProgramArguments</key>
  <array>
    <string>/opt/local/bin/spawn-fcgi</string>
    <string>-C 2</string>
    <string>-p 9000</string>
    <string>-f /opt/local/bin/php-cgi</string>
  </array>
</plist>
sudo cp org.macports.phpfcgi.plist /Library/LaunchDaemons/
sudo launchctl load -w /Library/LaunchDaemons/org.macports.phpfcgi.plist
sudo vim /opt/local/etc/nginx/nginx.conf
user root admin;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include mime.types;
    include phpfcgi.conf;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 0;
gzip on;
include vhosts/*;
}
配置里面的 user root admin; 很重要,不然没法访问 /Users 目录里面的文件。
sudo vim /opt/local/etc/nginx/phpfcgi.conf
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
fastcgi_index index.php;
fastcgi_param REDIRECT_STATUS 200;
sudo vim /opt/local/etc/nginx/vhosts/localhost.conf
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  PATH_INFO          $fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
fastcgi_index index.php;
fastcgi_param REDIRECT_STATUS 200;
注意文件中的 fastcgi_param PATH_INFO $fastcgi_script_name。如果没有这一行,PHP 无法得到 PATHINFO 信息。
sudo vim /opt/local/etc/nginx/vhosts/localhost.conf
server {
    listen 8080;
    server_name localhost;
    root share/nginx/html;
location / {
        index index.html index.htm index.php;
    }
location ~ \.php {
        fastcgi_pass   127.0.0.1:9000;
    }
}
其他虚拟主机参考 localhost.conf,改 server_name 和 root 设定就可以了。
其中 location ~ \.php 后面没有$,否则无法匹配 index.php/xxx/yyy 带 PATHINFO 的脚本调用。
安装 MySQL 就没必要自己编译了,从 mysql.com 下载一个 .dmg 就是。装好后:
sudo cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf
sudo vim /etc/my.cnf
[mysqld]
...
default-character-set = utf8
...

