用macports定制安装php5-fpm

首先,请允许我感谢郭嘉,我的小黑T61光荣下岗了;还要感谢我的大肚老婆,赏赐重金购得MC373一台。以下操作假设您已经安装完macports,我的系统是10.6.3,10.5没测试过,不保证可用。

先安装nginx,建议用这个替换掉apache2


sudo port install nginx
cd /opt/local/etc/nginx
sudo cp nginx.conf.example nginx.conf
sudo cp mime.types.example mime.types
sudo cp fastcgi_params.example fastcgi_params

以上三个配置文件默认安装后没有,如果已经有就不用拷贝了。

加载到自动运行:


sudo launchctl load -w /Library/LaunchDaemons/org.macports.nginx.plist

下载我制作的包含php5-fpm Portfile的本地包


cd ~/ && wget http://liut.cc/DarwinPorts.tbz

解压到自己的位置 例如: /Users/liutao/


cd ~/ && tar jxvf DarwinPorts.tbz

修改自定义Port来源


sudo vim /opt/local/etc/marcports/sources.conf

在末尾添加一行(如果已经有就不要加了),实际路径根据需要修改:


file:///Users/liutao/DarwinPorts/local-sources/

然后就可以安装php5- fpm集成包。这个Port是我根据官方php-5.3.2修改而来,主要是添加了FPM和几个扩展选项,如PostgreSQL,MySQL,SOAP,GD,Tidy等,可以根据实际需要选择,FPM取自php.netsvn主干,默认有效,另外还默认有curl,iconv,mbstring,openssl 等。个人感觉,macports比FreeBSD的ports定制更容易,基于tcl的语法更简单易懂。

php5-fpm的Portfile部分内容:



# fpm
variant fpm conflicts apache apache2 fastcgi description {FPM support} {
    pre-fetch {
        if {"darwin" == ${os.platform} && ${os.major} < 9} {
            ui_error "The suhosin variant requires Mac OS X 10.5 or greater."
            return -code error "incompatible Mac OS X version"
        }
    }
	configure.args-delete 
        --disable-cgi
    configure.args-append 
		--enable-cgi --enable-fpm
	startupitem.create      yes
	startupitem.name        php-fpm
	startupitem.logfile     ${prefix}/var/log/php-fpm.log
	startupitem.start       "${prefix}/sbin/php-fpm.init start"
	startupitem.stop        "${prefix}/sbin/php-fpm.init stop"
	startupitem.restart     "${prefix}/sbin/php-fpm.init reload"
	startupitem.logevents   yes

	post-destroot {
		xinstall -m 755 -d ${destroot}${prefix}/var/log/php
		xinstall -m 755 -c ${worksrcpath}/sapi/fpm/init.d.php-fpm ${destroot}${prefix}/sbin/php-fpm.init
		xinstall -m 644 -c ${filespath}/php-fpm.conf ${destroot}${prefix}/etc
	}
	post-activate {
		if {[file exists ${prefix}/etc/php-fpm.conf.default] && ![file exists ${prefix}/etc/php-fpm.conf]} {
			copy ${prefix}/etc/php-fpm.conf.default ${prefix}/etc/php-fpm.conf
		}
	}

}

为什么叫php5-fpm这个名字呢?因为官方没有这个名称,所以会找到本地的source,要不然就得换个名字。

这时候就可以用macports来安装了,注意,如果您已经安装了官方的php5(就是默认会添加apache的那个,目前也是5.3.2,请先uninstall掉它)


sudo port install php5-fpm +postgresql +mysqlnd +soap +gd +tidy

sudo mkdir -p /opt/local/var/log/php 
## 一般安装会建立,但如果没有上级(log)会建立失败,所以建议先安装nginx

加载到自动运行:


sudo launchctl load -w /Library/LaunchDaemons/org.macports.php-fpm.plist

然后就是修改nginx.conf配置来支持PHP fastcgi,这样的内容网上有很多,请自行搜索。


Comments are closed.