Instalando PHP 5.4 com pacotes SCL do CentOS 6

No CentOS existe um repositório chamado SCL (Software Collections) que nos oferece alguns conjuntos de pacotes de softwares em versões mais recentes para instalação em nosso CentOS 6, o PHP 5.4 é um deles.

Veja as coleções disponíveis no SCL

O SCL tem um funcionamento bastante particular, não basta apenas instalar o pacote é necessário saber utilizar o SCL para usar as versões mais novas de sofwares, acompanhe o passo a passo para entender o processo.

Para instalar esse repositório e habilitá-lo rode o comando abaixo

yum install centos-release-SCL

Depois de habilitar pesquise pelos pacotes que deseja instalar

yum search php54

Acompanhe a saída

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
============================================================ N/S Matched: php54 =============================================================
php54.x86_64 : Package that installs php54
php54-runtime.x86_64 : Package that handles php54 Software Collection.
php54-apc-panel.noarch : APC control panel
php54-build.x86_64 : Package shipping basic build configuration
php54-php.x86_64 : PHP scripting language for creating dynamic web sites
php54-php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php54-php-cli.x86_64 : Command-line interface for PHP
php54-php-common.x86_64 : Common files for PHP
php54-php-dba.x86_64 : A database abstraction layer module for PHP applications
php54-php-devel.x86_64 : Files needed for building PHP extensions
php54-php-enchant.x86_64 : Enchant spelling extension for PHP applications
php54-php-fpm.x86_64 : PHP FastCGI Process Manager
php54-php-gd.x86_64 : A module for PHP applications for using the gd graphics library
php54-php-imap.x86_64 : A module for PHP applications that use IMAP
php54-php-intl.x86_64 : Internationalization extension for PHP applications
php54-php-ldap.x86_64 : A module for PHP applications that use LDAP
php54-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
php54-php-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases
php54-php-odbc.x86_64 : A module for PHP applications that use ODBC databases
php54-php-pdo.x86_64 : A database access abstraction module for PHP applications
php54-php-pear.noarch : PHP Extension and Application Repository framework
php54-php-pecl-apc.x86_64 : APC caches and optimizes PHP intermediate code
php54-php-pecl-apc-devel.x86_64 : APC developer files (header)
php54-php-pecl-memcache.x86_64 : Extension to work with the Memcached caching daemon
php54-php-pgsql.x86_64 : A PostgreSQL database module for PHP
php54-php-process.x86_64 : Modules for PHP script using system process interfaces
php54-php-pspell.x86_64 : A module for PHP applications for using pspell interfaces
php54-php-recode.x86_64 : A module for PHP applications for using the recode library
php54-php-snmp.x86_64 : A module for PHP applications that query SNMP-managed devices
php54-php-soap.x86_64 : A module for PHP applications that use the SOAP protocol
php54-php-tidy.x86_64 : Standard PHP module provides tidy library support
php54-php-xml.x86_64 : A module for PHP applications which use XML
php54-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol

Depois podemos instalar o php54 e suas dependências conforme necessidade de seu projeto

yum install php54.x86_64 php54-php-ldap.x86_64 php54-php-gd.x86_64 php54-php-pear.noarch

Veja que se rodarmos o comando abaixo veremos que o php ainda continua na versão 5.3.

php -v

Acompanhe a saída

PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Para utilizarmos um software SCL precisamos chamá-lo da seguinte forma

scl enable php54 "php -v"

Acompanhe a saída

PHP 5.4.16 (cli) (built: Dec 11 2013 16:55:27)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

Contudo, caso deseje que o PHP54 seja realmente o PHP default de sua sessão rode este comando

source /opt/rh/php54/enable

Agora verifique

php -v

Acompanhe a saída

PHP 5.4.16 (cli) (built: Dec 11 2013 16:55:27)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

Isso só vai valer para sua sessão portanto você precisa configurar suas variáveis de ambiente para chamar esse comando durante o logon ou inicialização de algum serviço.

No caso do apache tem um jeito mais fácil, podemos instalar o pacote abaixo

yum install php54-php.x86_64

Após instalar o pacote, remova os arquivo php5.conf e php5.load do diretório /etc/httpd/conf.d mantendo apenas o arquivo php54-php.conf neste diretório, após o ajuste reinicie o apache.

service httpd restart

Com isso você estará rodando seu site com o php 5.4.16 em seu CentOS 6 com pacotes oficiais.

[s]
Guto