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.