CentOS – Difficulty Installing PHP from Source on CentOS 6.4

centosPHPsource

The problem:

After installing PHP from source, functionality is not present – my phpinfo test page does not work. If I use yum to install from the repository functionality is restored.

Why am I doing this:

Ultimately I want to add ImageMagick/MagickWand funcationality. Appearently MagickWand needs to be compiled with PHP and sources I've found stating otherwise have been unsuccessful for me.

What I've tried:

About every resource I've found is fairly straight-forward but nothing really addresses what to do if this process fails:

  1. Get your desired distribution. I've tried the latest (5.5.1) and what is in the CentOS repository (5.3.3)
  2. Get prerequsits – most reference libxml2-devel, some httpd-devel and gcc.
  3. ./configure –with content specific to your build (varies)
  4. make && make install
  5. place php.ini from source folder into /etc/
  6. restart httpd.

A couple examples of documents I've observed for this process:

http://benramsey.com/blog/2012/03/build-php-54-on-centos-62/
http://www.thegeekstuff.com/2008/07/instruction-guide-to-install-php5-from-source-on-linux/

Im not sure what I'm doing wrong but honestly I don't work from source very often. I feel that I am missing an unwritten constant. Any advice? I'll be able to provide any additional information as needed.

Best Answer

It's very bad practice to install from source. All you need is to install IUS Community Repo

excerpt

The IUS Community Project is aimed at providing up to date and regularly maintained RPM packages for the latest upstream versions of PHP, Python, MySQL and other common software specifically for Redhat Enterprise Linux. IUS can be thought of as a better way to upgrade RHEL, when you need to.

You can add the repo as follows to yum:

# rpm --import http://dl.iuscommunity.org/pub/ius/IUS-COMMUNITY-GPG-KEY

# rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/epel-release-6-5.noarch.rpm
# rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/ius-release-1.0-11.ius.el6.noarch.rpm

And then install necessary packages

# yum search --enablerepo=ius-testing php55u
php55u-debuginfo.x86_64 : Debug information for package php55u
php55u.x86_64 : PHP scripting language for creating dynamic web sites
php55u-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php55u-cli.x86_64 : Command-line interface for PHP
php55u-common.x86_64 : Common files for PHP
php55u-dba.x86_64 : A database abstraction layer module for PHP applications
php55u-devel.x86_64 : Files needed for building PHP extensions
php55u-embedded.x86_64 : PHP library for embedding in applications
php55u-enchant.x86_64 : Human Language and Character Encoding Support
php55u-fpm.x86_64 : PHP FastCGI Process Manager
php55u-gd.x86_64 : A module for PHP applications for using the gd graphics library
php55u-gmp.x86_64 : A module for PHP applications for using the GNU MP library
php55u-imap.x86_64 : A module for PHP applications that use IMAP
php55u-interbase.x86_64 : A module for PHP applications that use Interbase/Firebird databases
php55u-intl.x86_64 : Internationalization extension for PHP applications
php55u-ldap.x86_64 : A module for PHP applications that use LDAP
php55u-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
php55u-mcrypt.x86_64 : Standard PHP module provides mcrypt library support
php55u-mssql.x86_64 : MSSQL database module for PHP
php55u-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases
php55u-odbc.x86_64 : A module for PHP applications that use ODBC databases
php55u-opcache.x86_64 : The Zend OPcache
php55u-pdo.x86_64 : A database access abstraction module for PHP applications
php55u-pear.noarch : PHP Extension and Application Repository framework
php55u-pgsql.x86_64 : A PostgreSQL database module for PHP
php55u-process.x86_64 : Modules for PHP script using system process interfaces
php55u-pspell.x86_64 : A module for PHP applications for using pspell interfaces
php55u-recode.x86_64 : A module for PHP applications for using the recode library
php55u-snmp.x86_64 : A module for PHP applications that query SNMP-managed devices
php55u-soap.x86_64 : A module for PHP applications that use the SOAP protocol
php55u-tidy.x86_64 : Standard PHP module provides tidy library support
php55u-xml.x86_64 : A module for PHP applications which use XML
php55u-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol
Related Question