Setup Nginx and PHP5 (voyage 0.7.5)

Nginx is preferred because of small footprint.

Setup the dotdeb apt repository

# install key
wget "http://www.dotdeb.org/dotdeb.gpg" -O - |  apt-key add -

echo <<EOT > /etc/apt/sources.list.d/dotdeb.list
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org stable all
EOT

Install packages

apt-get install nginx php5 php5-fpm php5-gd
apt-get install fcgiwrap

Config nginx

Relocate temp file folder to save CF: add var/lib/nginx to VOYAGE_SYNC_DIRS in /etc/default/voyage-util

Tune down process in /etc/nginx/nginx.conf:

# max 64 connections:
worker_processes 4;
worker_connections 16;

Config php-fpm

Edit /etc/php5/fpm/pool.d/www.conf:

pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 500

Config php

Set timezone , error reporting in /etc/php5/fpm/php.ini:

date.timezone = "Asia/Hong_Kong"
error_reporting = E_ALL & ~E_NOTICE | E_STRICT

Config nginx to use fcgiwrap

Add this to a server section in nginx to make it serve CGI scripts under /var/www/cgi-bin/:

server {
...
    # setup to serve CGI scripts:
    location ~ ^/cgi-bin/(.*\.cgi)$ {

      gzip off;

      # Fastcgi socket
      fastcgi_pass  unix:/var/run/fcgiwrap.socket;

      # Fastcgi parameters, include the standard ones
      include fastcgi_params;

      # Adjust non standard parameters (SCRIPT_FILENAME)
      fastcgi_param SCRIPT_FILENAME  /var/www$fastcgi_script_name;
    }

Setup Nginx and PHP5 (voyage 0.6.x)

Nginx is preferred because of small footprint. Lighttpd is also a good choice but I cannot get it to work with PHP File Navigator.

Setup Nginx

Use apt-get to install the stock nginx web server.

Trim down memory usage, adjust these options in nginx.conf:

  • worker_processes (e.g. 1)
  • worker_connections (e.g. 128)

Build PHP5

Compile the source using the build-box as the ALIX is too slow for this.

Assume we we want to use PHP 5.2.11

Download fpm: php-fpm-0.6-5.2.11.tar.gz, fpm is the php fast CGI manager.
Download php: php-5.2.11.tar.bz2

Extract both packages in the same build folder.

cd build-folder
tar zxvf php-fpm-0.6-5.2.11.tar.gz
tar jxvf php-5.2.11.tar.bz2

Build the fpm patch for php, run:

php-fpm-0.6-5.2.11/generate-fpm-patch

The patch file will be created at the current folder

Patch the php source:

cd php-5.2.11
patch -p1 < ../fpm.patch

if ok, then:

./buildconf --force
mkdir fpm-build
cd fpm-build
../configure \
        --with-fpm \
        --with-libevent \
        --disable-debug \
        --disable-rpath \
        --without-gdbm \
        --without-sqlite \
        --with-gd \
        --enable-gd-native-ttf \
        --with-zlib \
        --enable-mbstring \
        --with-mysql
make

Install PHP5

Copy the build-folder to the voyage box. And run at the voyage box:

make install

Output excerpt:

Installing PHP SAPI module:       fpm
Installing PHP CLI binary:        /usr/local/bin/
Installing PHP CLI man page:      /usr/local/man/man1/
Installing build environment:     /usr/local/lib/php/build/
Installing header files:          /usr/local/include/php/
Installing helper programs:       /usr/local/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/lib/php/

[PEAR] Archive_Tar    - installed: 1.3.3
[PEAR] Console_Getopt - installed: 1.2.3
[PEAR] Structures_Graph- installed: 1.0.2
[PEAR] XML_Util       - installed: 1.2.1
[PEAR] PEAR           - installed: 1.8.0
Wrote PEAR system config file at: /usr/local/etc/pear.conf
You may want to add: /usr/local/lib/php to your php.ini include_path
Installing PHP FPM binary:        /usr/local/bin/php-fpm
Installing PHP FPM config:        /etc/php-fpm.conf
Installing PHP FPM man page:      /usr/local/man/man1/php-fpm.1
Installing PHP FPM init script:   /etc/init.d/php-fpm

* FPM Installation complete. *

run:
`update-rc.d php-fpm defaults; invoke-rc.d php-fpm start`

or system equivalent to start the php-fpm service.

Installing PDO headers:          /usr/local/include/php/ext/pdo/

Install any missing dependencies using apt-get.

Tuning

You should trim down memory use by php-fpm. Check this option in /etc/php-fpm.conf:

<value name="max_children">5</value>

voyage/setup_nginx_php5.txt · Last modified: 2011-09-28 16:55 by admin
Back to top
GNU Free Documentation License 1.3
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0