Installing Nginx With PHP 5.3 And PHP-FPM On Ubuntu Lucid Lynx (10.04)

Follow me on Twitter

In this post I will explain how to install Nginx with PHP 5.3.3 and PHP-FPM on Ubuntu Lucid Lynx (10.04-amd64). The Lucid release is a Long-Term Support (LTS), meaning that it will be supported for three years on the desktop and for five years with the server version.

 UPDATE 26 September 2010: Updated for the latest PHP 5.3 version (5.3.3).

Step 0 - Preliminary Notes

In order to complete this tutorial you should have a a base system of Ubuntu 10.04.


Step 1 - Install Nginx

apt-get install nginx


Step 2 - Install all required dependencies for this installation

apt-get install autoconf2.13 libssl-dev libcurl4-gnutls-dev libjpeg62-dev libpng12-dev libmcrypt-dev libmysql++-dev libfreetype6-dev libt1-dev libc-client-dev libbz2-dev mysql-client libevent-dev libxml2-dev


Step 3 - Download PHP

cd /usr/local/src
tar xzf php-5.3.3.tar.gz

Step 4 - Configure PHP

Now to configure the commands we should use with PHP, you can add more stuff if you want to. If you are missing something, you can always ask me and I can help you with that also:

./configure --enable-fpm --enable-soap --with-libevent-dir --with-mcrypt --enable-mbstring --with-openssl --with-mysql --with-mysql-sock --with-gd --with-jpeg-dir=/usr/lib --enable-gd-native-ttf --with-sqlite=shared --with-pdo-mysql --with-libxml-dir=/usr/lib --with-mysqli=/usr/bin/mysql_config --with-curl --enable-zip --with-bz2 --with-imap=shared --with-imap-ssl --enable-sockets --with-zlib --enable-exif --enable-ftp --with-iconv --with-gettext --enable-gd-native-ttf --with-t1lib=/usr --with-freetype-dir=/usr --with-kerberos --prefix=/usr/local/php --with-fpm-user=www-data --with-fpm-group=www-data

If everything goes well here (which it should), you can run the following command:

make && make install


Step 5 - Configuration

Download the vhost configuration (basic, edit for your own needs such as path to your home directory etc):

wget -O /etc/nginx/sites-available/default

Download the php.ini and place it in the correct directory (/usr/local/php/lib) or just run this command:

wget -O /usr/local/php/lib/php.ini

Download php-fpm.conf which is modified to fit kind of every server configuration, but it’s not necessary to change anything:

wget -O /usr/local/php/etc/php-fpm.conf

If you have problems with php-fpm behaving weird like it takes time to reload, I solved it a while ago by removing one line, but if you want to can download the edited php-fpm init script from here:

wget -O /etc/init.d/php-fpm

Now you need to reload Nginx and PHP-FPM for all the above stuff to work:

/etc/init.d/nginx reload
/etc/init.d/php-fpm reload

You are now finished. If you have any questions or concerns, do not hesitate to contact me.

Share this page:

7 Comment(s)