PHP-FPM for RHEL

1. Patch PHP-FPM to PHP
[codesyntax lang=”bash”]

$ wget http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz
$ wget http://cn.php.net/distributions/php-5.2.17.tar.bz2
$ tar -jxf php-5.2.17.tar.bz2
$ gzip -d php-5.2.17-fpm-0.5.14.diff.gz
$ patch -d php-5.2.17 -p1 < php-5.2.17-fpm-0.5.14.diff

[/codesyntax]

2. PHP Configure Options for CGI/FastCGI (for help)

[codesyntax lang=”bash”]

--disable-cgi                   Disable building CGI version of PHP
--enable-fastcgi                CGI: Enable FastCGI support in the CGI binary
--enable-force-cgi-redirect     CGI: Enable security check for internal server redirects.
                                Use this if you run the PHP CGI with Apache
--enable-discard-path           CGI: When this is enabled the PHP CGI binary can safely be placed
                                outside of the web tree and people will not be able to circumvent .htaccess security
--disable-path-info-check CGI:  If this is disabled, paths such as /info.php/test?a=b will fail to work
--enable-fpm                    FastCGI: If this is enabled, the fastcgi support
                                will include experimental process manager code
--with-fpm-conf=PATH            Set the path for php-fpm configuration file [PREFIX/etc/php-fpm.conf]
--with-fpm-log=PATH             Set the path for php-fpm log file [PREFIX/logs/php-fpm.log]
--with-fpm-pid=PATH             Set the path for php-fpm pid file [PREFIX/logs/php-fpm.pid]
--with-xml-config=PATH          FPM: use xml-config in PATH to find libxml

--with-ncurses[=DIR] Include ncurses support (CLI/CGI only) --enable-pcntl Enable pcntl support (CLI/CGI only) --with-libedit[=DIR] Include libedit readline replacement (CLI/CGI only) --with-readline[=DIR] Include readline support (CLI/CGI only)

[/codesyntax]

3. Install PHP
[codesyntax lang=”bash”]

$ ./configure --prefix=/usr/local/webserver/php-5.2.17 --with-config-file-path=/usr/local/webserver/php-5.2.17/etc --enable-fastcgi --enable-fpm --with-jpeg-dir= --with-png-dir --with-gd=/usr/local/gd --with-zlib-dir --with-curl --enable-mbstring=cn --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --enable-sysvshm --enable-sysvsem --enable-pcntl --enable-soap --with-freetype-dir --enable-gd-native-ttf --with-iconv-dir --with-imap=/usr/local/imap-c-client --with-imap-ssl --with-pdo-mysql=/usr/local/webserver/mysql
$ make all
$ make install

[/codesyntax]

4. Modify php.ini and php-fpm.conf
[codesyntax lang=”bash”]

$ cp php.ini-dist /usr/local/webserver/php-5.2.17/etc/php.ini
# open display_errors in php.ini

$ vi /usr/local/webserver/php-5.2.17/etc/php-fpm.conf
# uncomment these 2 lines
# <value name="user">nobody</value>
# <value name="group">nobody</value>

[/codesyntax]

5. Test and Start
[codesyntax lang=”bash”]

$ /usr/local/webserver/php-5.2.17/bin/php -v
$ /usr/local/webserver/php-5.2.17/sbin/php-fpm start

[/codesyntax]

Posted in PHP, RHEL | Tagged , | Leave a comment