Набросал небольшой патч, добавляющий в порт php 5.3 поддержку php-fpm. Из недостатков — требует наличие svn клиента для загрузки патчей с репозитария svn.php.net. Зато в теории будет работать для любой стабильной версии порта в пределах ветки 5.3.x.
Установка очень простая:
cd /usr/ports/lang/php5 fetch http://sav.ecom24.ru/freebsd/fpm.patch patch < fpm.patch make config install clean
Сам патч:
--- Makefile 2010-06-17 07:59:24.414207380 +0000 +++ Makefile 2010-06-17 08:56:48.418613806 +0000 @@ -43,7 +43,8 @@ OPTIONS= CLI "Build CLI version" on \ SUHOSIN "Enable Suhosin protection system" on \ MULTIBYTE "Enable zend multibyte support" off \ IPV6 "Enable ipv6 support" on \ - MAILHEAD "Enable mail header patch" off + MAILHEAD "Enable mail header patch" off \ + FPM "Enable PHP-FPM patch" off CONFLICTS= php4-4* php5-pcre-* php5-spl-* @@ -51,6 +52,13 @@ MAN1= php-config.1 phpize.1 .include+.if defined(WITH_FPM) +USE_RC_SUBR= php-fpm.sh +LIB_DEPENDS+= event:${PORTSDIR}/devel/libevent +BUILD_DEPENDS+= svn:$(PORTSDIR)/devel/subversion +CONFIGURE_ARGS+=--enable-fpm --with-fpm-log=/var/log/php-fpm.log --with-fpm-pid=/var/run/php-fpm.pid +.endif + PATCH_DIST_STRIP= -p1 .if !defined(WITHOUT_SUHOSIN) @@ -136,9 +144,16 @@ CONFIGURE_ARGS+=--disable-ipv6 post-patch: @${TOUCH} ${WRKSRC}/ext/php_config.h @${REINPLACE_CMD} "s|^\(extension_dir\)|; \1|" ${WRKSRC}/php.ini-* + @(svn export http://svn.php.net/repository/php/php-src/branches/PHP_5_3/sapi/fpm ${WRKSRC}/sapi/fpm) pre-configure: @${CAT} ${WRKSRC}/acinclude.m4 ${WRKSRC}/build/libtool.m4 > ${WRKSRC}/aclocal.m4 + @(cd ${WRKSRC} && ./buildconf --force) + +post-configure: +.if defined(WITH_FPM) + @${REINPLACE_CMD} "s|/usr/local/var|/var|" ${WRKSRC}/sapi/fpm/php-fpm.conf +.endif post-build: @${ECHO_CMD} "PHP_VER=5" > ${WRKDIR}/php.conf --- files/php-fpm.sh.in 1970-01-01 00:00:00.000000000 +0000 +++ files/php-fpm.sh.in 2010-06-17 09:05:07.600963518 +0000 @@ -0,0 +1,43 @@ +#!/bin/sh + +# PROVIDE: php-fpm +# REQUIRE: NETWORKING SERVERS +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable php-fpm: +# php_fpm_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable php-fpm +# php_fpm_config (str): Set to "" by default. +# Define your php-fpm configuration file here. + +. /etc/rc.subr + +name="php_fpm" +rcvar=`set_rcvar` + +load_rc_config $name + +: ${php_fpm_enable="NO"} +: ${php_fpm_pidfile="/var/run/php-fpm.pid"} +: ${php_fpm_config="%%PREFIX%%/etc/php-fpm.conf"} + +command="%%PREFIX%%/sbin/php-fpm" +pidfile=${php_fpm_pidfile} +reload_precmd="php_fpm_prereload" +quit_cmd="php_fpm_quit" + +[ -n "$php_fpm_config" ] && php_fpm_flags="--fpm-config $php_fpm_config" + +php_fpm_prereload() +{ + sig_reload=USR2 +} + +php_fpm_quit() +{ + sig_stop=QUIT + run_rc_command stop +} + +extra_commands="reload quit" +run_rc_command "$1"
Вроде как в php 5.3 fpm вошёл в состав, не? Вчера сам ставил из портов )
Ага, в 5.3.3 вошел, в 5.3.2 не было :)