Removing PHP ensures that existing files or services of PHP will not create conflict when we install PHP from source code. The following procedure will completely remove PHP from our system.
Let us get a list of all installed PHP packages. In the terminal, execute the following command.
# yum list installed *php*
OPTIONS EXPLAINED list Is used to list various information about available packages; more complete details are available in the List Options section. installed List the packages installed on the system specified by args. If an argument does not match the name of an available package, it is assumed to be a shell-style glob and any matches are printed.
NOTE: The escape character '' prevents our shell from parsing '*'. So that yum gets the global expression we intended, which is *php*.
We will get a list of all installed packages having php in their name.
NOTE: Repository information has been stripped from the below output.
php.i686 5.3.3-3.el6_2.8 php-cli.i686 5.3.3-3.el6_2.8 php-common.i686 5.3.3-3.el6_2.8 php-gd.i686 5.3.3-3.el6_2.8 php-ldap.i686 5.3.3-3.el6_2.8 php-mysql.i686 5.3.3-3.el6_2.8 php-odbc.i686 5.3.3-3.el6_2.8 php-pdo.i686 5.3.3-3.el6_2.8 php-pear.noarch 1:1.9.4-4.el6 php-pecl-apc.i686 3.1.9-2.el6 php-pecl-memcache.i686 3.0.5-4.el6 php-pgsql.i686 5.3.3-3.el6_2.8 php-soap.i686 5.3.3-3.el6_2.8 php-xml.i686 5.3.3-3.el6_2.8 php-xmlrpc.i686 5.3.3-3.el6_2.8
We can get a description of each of the above package by using the yum info command. For example, to get information on php.i686 package, execute the following command. The architecture spec i686 need not be specified.
# yum info php
OPTIONS EXPLAINED info Is used to list a description and summary information about available packages; takes the same arguments as in the List Options section.
Also we can get a list of all files with their locations, installed by a specific package, by using the rpm -ql command. For example, to get information on php.i686 package, execute the following command. The architecture spec i686 need not be specified.
# rpm -ql php
OPTIONS EXPLAINED -q query -l list files in package
The yum descriptions for each package is given below. It is for us to understand what each packages are, so that we can decide which of them to remove.
php.i686 PHP is an HTML-embedded scripting language. PHP attempts to make it easy for developers to write dynamically generated webpages. PHP also offers built-in database integration for several commercial and non-commercial database management systems, so writing a database-enabled webpage with PHP is fairly simple. The most common use of PHP coding is probably as a replacement for CGI scripts. The php package contains the module which adds support for the PHP language to Apache HTTP Server. php-cli.i686 The php-cli package contains the command-line interface executing PHP scripts, /usr/bin/php, and the CGI interface. php-common.i686 The php-common package contains files used by both the php package and the php-cli package. php-gd.i686 The php-gd package contains a dynamic shared object that will add support for using the gd graphics library to PHP. php-ldap.i686 The php-ldap package is a dynamic shared object (DSO) for the Apache Web server that adds Lightweight Directory Access Protocol (LDAP) support to PHP. LDAP is a set of protocols for accessing directory services over the Internet. PHP is an HTML-embedded scripting language. If you need LDAP support for PHP applications, you will need to install this package in addition to the php package. php-mysql.i686 The php-mysql package contains a dynamic shared object that will add MySQL database support to PHP. MySQL is an object-relational database management system. PHP is an HTML-embeddable scripting language. If you need MySQL support for PHP applications, you will need to install this package and the php package. php-odbc.i686 The php-odbc package contains a dynamic shared object that will add database support through ODBC to PHP. ODBC is an open specification which provides a consistent API for developers to use for accessing data sources (which are often, but not always, databases). PHP is an HTML-embeddable scripting language. If you need ODBC support for PHP applications, you will need to install this package and the php package. php-pdo.i686 The php-pdo package contains a dynamic shared object that will add a database access abstraction layer to PHP. This module provides a common interface for accessing MySQL, PostgreSQL or other databases php-pear.noarch PEAR is a framework and distribution system for reusable PHP components. This package contains the basic PEAR components. php-pecl-apc.i686 APC is a free, open, and robust framework for caching and optimizing PHP intermediate code php-pecl-memcache.i686 Memcached is a caching daemon designed especially for dynamic web applications to decrease database load by storing objects in memory. This extension allows you to work with memcached through handy OO and procedural interfaces. Memcache can be used as a PHP session handler. php-pgsql.i686 The php-pgsql package includes a dynamic shared object (DSO) that can be compiled in to the Apache Web server to add PostgreSQL database support to PHP. PostgreSQL is an object-relational database management system that supports almost all SQL constructs. PHP is an HTML-embedded scripting language. If you need back-end support for PostgreSQL, you should install this package in addition to the main php package. php-soap.i686 The php-soap package contains a dynamic shared object that will add support to PHP for using the SOAP web services protocol. php-xml.i686 The php-xml package contains dynamic shared objects which add support to PHP for manipulating XML documents using the DOM tree, and performing XSL transformations on XML documents. php-xmlrpc.i686 The php-xmlrpc package contains a dynamic shared object that will add support for the XML-RPC protocol to PHP.
For removing PHP, we must remove all of the above packages. In the terminal, execute the following command.
# yum remove php php-cli php-common php-gd php-ldap php-mysql php-odbc php-pdo php-pear php-pecl-apc php-pecl-memcache php-pgsql php-soap php-xml php-xmlrpc
OPTIONS EXPLAINED remove Are used to remove the specified packages from the system as well as removing any packages which depend on the package being removed. remove operates on groups, files, provides and filelists just like the "install" command.(See Specifying package names for more information)
We will get a detailed list of all packages with their dependencies, ready to be removed. There will be also a [y/N] prompt, asking permission to continue.
NOTE: Repository information has been stripped from the below output.
================================================================================ Package Arch Version Size ================================================================================ Removing: php i686 5.3.3-3.el6_2.8 3.3 M php-cli i686 5.3.3-3.el6_2.8 6.3 M php-common i686 5.3.3-3.el6_2.8 2.9 M php-gd i686 5.3.3-3.el6_2.8 312 k php-ldap i686 5.3.3-3.el6_2.8 44 k php-mysql i686 5.3.3-3.el6_2.8 188 k php-odbc i686 5.3.3-3.el6_2.8 82 k php-pdo i686 5.3.3-3.el6_2.8 150 k php-pear noarch 1:1.9.4-4.el6 2.2 M php-pecl-apc i686 3.1.9-2.el6 310 k php-pecl-memcache i686 3.0.5-4.el6 160 k php-pgsql i686 5.3.3-3.el6_2.8 140 k php-soap i686 5.3.3-3.el6_2.8 332 k php-xml i686 5.3.3-3.el6_2.8 272 k php-xmlrpc i686 5.3.3-3.el6_2.8 80 k Removing for dependencies: graphviz-tcl i686 2.26.0-7.el6 1.4 M ibutils i686 1.5.7-6.el6 4.7 M piranha i686 0.8.5-19.el6 5.0 M Transaction Summary ================================================================================ Remove 18 Package(s) Installed size: 28 M Is this ok [y/N]:
If we remove PHP packages, the dependency packages will also be removed. That is a loss we have to take. The yum descriptions for dependency packages are given below.
graphviz-tcl Various tcl packages (extensions) for the graphviz tools. ibutils ibutils provides IB network and path diagnostics. piranha Various tools to administer and configure the Linux Virtual Server as well as heartbeating and failover components. The LVS is a dynamically adjusted kernel routing mechanism that provides load balancing primarily for web and ftp servers though other services are supported.
Type y and press Enter to continue. All the PHP packages along with their dependencies will be removed from the system.
You may go back to the following section.
Removing Apache HTTP Server