Table of Contents

PHP - PHP 5 Packages

php5

This package is a meta-package that, when installed, guarantees that you have at least one of the four server-side versions of the PHP5 interpreter installed. Removing this package won't remove PHP5 from your system, however it may remove other packages that depend on this one.

php5-adobe

Extension optimizing the ADOdb database abstraction library.

php5-auth-pam

A PHP5 extension for PAM authentication.

php5-cli

Command-line interpreter for the php5 scripting language. This package provides the /usr/bin/php5 command interpreter, useful for testing PHP scripts from a shell, or perhaps even performing general shell scripting tasks, if you're frightened of perl and python.

php5-cgi

Server-side, HTML-embedded scripting language (CGI binary).

Common Gateway Interface. One drawback of cgi is that since no php process/interpreter is actually persistent, its not possible to use an opcode cache like APC. Also, Cgi creates a php process only upon request, and closes them after the request is process. So there is an overhead to start a new php process on every request. This is overcome in fastcgi, where the php process is kept persistent to be reused.

And phpinfo() will report the Server API as CGI/FastCGI. This is because the php-cgi binary is being used to execute the php code.

FastCGI is like cgi but can keep multiple processes alive and reuse them. This is an enhancement to cgi.

Since fastcgi keeps processes alive, it consumes more resources in idle state compared to cgi. However fastcgi reuses php processes so is more efficient that cgi when it comes to processing concurrent resources.

It is well understood that when using php + fastcgi, fastcgi will create and manage multiple php processes and reuse them efficiently. However there is a lesser understood fact that the php process created by fastcgi is itself capable of create further child php processes and managing them.

So if fastcgi created 10 php processes, then each of these 10 processes can create 4 child php processes each, giving us a total of 10 + 10*4 = 50 processes.

So process management can happen at 2 levels. 1st at fastcgi, 2nd inside php.

php5-common

Common files for packages built from the PHP5 source.

php5-curl

CURL module for PHP5.

php5-dbg

Debug symbols for PHP5.

php5-dev

Files for PHP5 module development.

php5-fpm

Php-FPM is the new style of running php with fastcgi. FPM stands of fastcgi process manager and it is a separate process manager for managing multiple php processes and reusing them.

Php fpm is a process manager that is implemented inside php itself.

Php-fpm supports running different vhosts with different uids. But setting this up requires some configuration.

Php-fpm manages a pool of php processes to serve requests. Now, it can manage multiple separate pools each running with a different uid/gid. Multiple pools can be created by creating fpm configuration files.

Each pool will have a separate socket (mapped to a unix file).

Setting this up will require quite some effort when running multiple sites/vhosts on a server.

Moreover having multiple pools of php processes will significantly increase the resource usage, especially RAM. If one pool has 5 process anytime, and each taking around 4M, the total is minimum 20MB in 1 pool.

If there are 5 such pools it would require 100MB in its idle state and more when traffic rises on any single website. So consider this carefully when setting up multiple pools of fpm.

php5-gd

GD module for PHP5.

php5-gmp

GMP module for PHP5.

php5-intl

php5-ldap

LDAP module for PHP5.

php5-odbc

ODBC module for PHP5.

php5-pear

php5-pgsql

PostgreSQL module for PHP5.

php5-imagick

php5-imap

php5-mcrypt

php5-memcache

php5-mhash

php5-ming

php5-mysql

MySQL module for PHP5.

php5-ps

php5-pspell

pspell module for PHP5.

php5-recode

Recode module for PHP5.

php5-snmp

SNMP module for PHP5.

php5-sqlite

SQLite module for PHP5.

php5-tidy

tidy module for PHP5.

php5-xcache

php5-xmlrpc

XML-RPC module for PHP5.

php5-xsl

XSL module for PHP5.