====== PHP-FPM + NGINX ====== ===== Semi debian style (from sources) ===== === Build essential === apt-get install build-essential autoconf2.59 libpcre3-dev libssl-dev apt-get install libxml2-dev libcurl4-openssl-dev libpq-dev libmysqlclient15-dev === Libevent === LE_VER=1.4.12-stable wget "http://www.monkey.org/~provos/libevent-$LE_VER.tar.gz" tar -zxvf "libevent-$LE_VER.tar.gz" cd "libevent-$LE_VER" ./configure && make make install export LIBEVENT_SEARCH_PATH="/usr/local" === PHP-FPM === export PHP_VER=5.2.11 wget "http://launchpad.net/php-fpm/master/0.6/+download/php-fpm-0.6-$PHP_VER.tar.gz" tar -zxvf "php-fpm-0.6-$PHP_VER.tar.gz" "php-fpm-0.6-$PHP_VER/generate-fpm-patch" === PHP === export PHP_VER=5.2.11 wget "http://si2.php.net/get/php-$PHP_VER.tar.bz2/from/si2.php.net/mirror" tar -xf "php-$PHP_VER.tar.bz2" cd "php-$PHP_VER" === Adding PHP users / patching PHP source and compiling === PHP_GROUP=php PHP_USER=php addgroup --system $PHP_GROUP adduser --system --home /dev/null --no-create-home --disabled-password --disabled-login $PHP_USER adduser $PHP_USER $PHP_GROUP patch -p1 < ../fpm.patch ./buildconf --force mkdir fpm-build && cd fpm-build # Alternative # CFLAGS="-g -O2 -fno-omit-frame-pointer" CXX="gcc" CXXFLAGS="-g -felide-constructors \ -fno-exceptions -fno-rtti -O2 -fno-omit-frame-pointer" ../configure --enable-fastcgi \ --with-fpm --with-libevent=shared,"$LIBEVENT_SEARCH_PATH" --prefix="/usr/local/php-5.2" \ --disable-short-tags --enable-mbstring --with-mime-magic --with-curl --enable-sockets --enable-pdo \ --with-pdo-pgsql --with-pdo-mysql --with-pgsql --with-xmlrpc --enable-zip --with-pear --enable-bcmath \ --with-openssl CFLAGS="-g -O2 -fno-omit-frame-pointer" CXX="gcc" CXXFLAGS="-g -felide-constructors -fno-exceptions \ -fno-rtti -O2 -fno-omit-frame-pointer" ../configure --enable-fastcgi --with-fpm \ --with-libevent=shared,"$LIBEVENT_SEARCH_PATH" --prefix="/usr/local/php-5.2" --disable-short-tags \ --enable-mbstring --with-mime-magic --with-curl --enable-sockets --enable-pdo --with-pdo-pgsql \ --with-pdo-mysql --with-pgsql --with-xmlrpc --enable-zip --with-pear --enable-bcmath --with-openssl \ --enable-soap --with-xsl --enable-xmlwriter --with-bz2 --with-curl --enable-gd-native-ttf --with-iconv \ --with-zlib --with-mhash --enable-json --with-mcrypt --with-mysql make make install ===== Debian / Ubuntu style ===== ==== Nginx ==== sudo apt-get install nginx **/etc/nginx/sites-available/default** server { listen 80; server_name localhost; access_log /var/log/nginx/localhost.access.log; ## Default location location / { root /var/www; index index.php; } ## Images and static content is treated different location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { access_log off; expires 30d; root /var/www; } ## Parse all .php file in the /var/www directory location ~ .php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass backend; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } ## Disable viewing .htaccess & .htpassword location ~ /\.ht { deny all; } } ==== PHP ==== === Ubuntu (only) === **If you are running Ubuntu, we first have to resolve two dependencies required for the dotdeb packages. If you are running the amd64 version, you should replace ''i386'' with ''amd64''.** cd /tmp wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb sudo dpkg -i *.deb === Debian + Ubuntu === sudo echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list sudo apt-get update sudo apt-get install php5-cli php5-common php5-suhosin sudo apt-get install php5-fpm php5-cgi more at http://www.howtoforge.com/installing-php-5.3-nginx-and-php-fpm-on-ubuntu-debian