Hoy vamos a ver como podemos compilar PHP 5.4.x (aunque es equivalente para cualquier versión de PHP) en un sistema operativo CentOS 6.4 de 64 bits que es lo mismo que en un Redhat Linux 6.4.

Lo primero que tenemos que hacer es verificar que tenemos todo el sistema actualizado, y esto con el comando yum lo podemos hacer.

Paso 1) #yum update

Paso2) Después vamos a necesitar realizar algunos pasos para la compilación de PHP en nuestro sistema Linux.

Creamos un directorio:

# cd /usr/local/src
# mkdir /php54x/

Paso 3) Vamos a descargar nuestra versión desde PHP.NET.

# wget//www.php.net/get/php-5.4.x.tar.gz/from/at2.php.net/mirror  Nota: (php-5.4.x donde la x es la subversión que deseamos, es un número entero, coloco x como una variable)
# tar xzvf php-5.4.x.tar.gz
# cd php-5.4.x

Paso 4) Vamos a necesitar varias dependencias para poder compilar PHP de forma correcta, para ello necesitamos instalar estos RPM con Yum.

# yum groupinstall “Development Tools”

# yum groupinstall “MySQL Database client”

#yun install openssl-devel libcurl-devel libjpeg-turbo-devel yum install bzip2-devel libpng-devel gmp-devel libicu-devel cyrus-sasl-devel mysql-devel  unixODBC-devel aspell-devel net-snmp-devel libxslt-devel freetype-devel

Y deben aceptar todas las dependencias para que sean también instaladas.

Paso 5)

Seguimos en el directorio: /usr/lcoal/src/php-5.4.x/ y ahora ejecutamos este comando:

# ./configure '--with-libdir=lib64' '--cache-file=../config.cache' '--prefix=/usr/local/php540-cgi' '--with-config-file-path=/usr/local/php540-cgi/etc' '--disable-debug' '--with-pic' '--disable-rpath' '--enable-fastcgi' '--with-bz2' '--with-curl' '--with-freetype-dir=/usr/local/php540-cgi' '--with-png-dir=/usr/local/php540-cgi' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr/local/php540-cgi' '--with-openssl' '--with-pspell' '--with-pcre-regex' '--with-zlib' '--enable-exif' '--enable-ftp' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-wddx' '--with-kerberos' '--with-unixODBC=/usr' '--enable-shmop' '--enable-calendar' '--without-sqlite3' '--with-libxml-dir=/usr/local/php540-cgi' '--enable-pcntl' '--with-imap' '--with-imap-ssl' '--enable-mbstring' '--enable-mbregex' '--with-gd' '--enable-bcmath' '--with-xmlrpc' '--with-ldap' '--with-ldap-sasl' '--with-mysql=/usr' '--with-mysqli' '--with-snmp' '--enable-soap' '--with-xsl' '--enable-xmlreader' '--enable-xmlwriter' '--enable-pdo' '--with-pdo-mysql' '--with-pdo-pgsql' '--with-pear=/usr/local/php540-cgi/pear' '--with-mcrypt' '--enable-intl' '--without-pdo-sqlite' '--with-config-file-scan-dir=/usr/local/php540-cgi/php.d'

 

Paso 6: Ejecutamos el comando make.

# make && make install (si da problemas, verificamos que es lo que paso, lo arreglamos y volvemos a ejecutarlo)

Paso 7) Editamos Apache para ver si se cargará el módulo de PHP.

# vi /etc/httpd/conf/httpd.conf

LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so  (debe estar presente en el archivo)

 

Paso 8) Verificamos el handler o asignaciones de controlador de Apache para que sirva PHP.

# vi /etc/httpd/conf/httpd.conf

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

Paso 9) Reiniciamos Apache.

# service httpd restart ó

#/etc/init.d/httpd restart

 

También podemos incluir más extensiones en PHP como Zend, IonCube, esto se hace de manera intuitiva modificando el archivo php.ini y asegurándonos que tenemos los archivos .so correspondientes.

Ejemplo para Zend:

[Zend]

zend_extension=”/usr/lib64/php-5.3.x/ZendGuardLoader.so”
zend_loader.enable=
(Visitado 1.018 veces, 1 visitas hoy)