Buscar


imprimir pdf

Personalizar el PHP con la Release2


Introducción

La versión de PHP instalada con la Relese 2 está basada en una estructura FastCGI en modo user especialmente concebida por los administradores de OVH para maximizar la seguridad y la potencia.

Al utilizar Gentoo, la versión de PHP está especialmente compilada para su servidor, aprovechando al máximo la potencia de la máquina.

Existen dos modos de añadir opciones a PHP :

  • Recompilando PHP con una opción
  • Añadiendo una extensión dentro de PHP

Versiones de PHP

En la Release2 conviven diferentes versiones de PHP.
La Release2 tiene versiones de 32 y 64 bits.
Dependiendo de la versión de PHP y la versión del sistema, la ruta de php.ini es diferente.


PHP 5 - 64 bits
  • /usr/local/lib64/php5/php.ini

PHP 4 - 64 bits
  • /usr/local/lib64/php4/php.ini

PHP 5 - 32 bits
  • /usr/local/lib/php5/php.ini

PHP 4 - 32 bits
  • /usr/local/lib/php4/php.ini


Recompilar PHP con una opción

Gracias al comando de Gentoo "emerge -pv", podemos ver las opciones de compilación de cada paquete.

Para el paquete php5-ovh, se tienen las opciones siguientes :



# emerge -pv php5-ovh

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild R ] dev-lang/php5-ovh-5.1.4 -curl -bzip2 -db2 -mysqli -soap -zip 0 kB [1]



Con esto, sabemos que podemos compilar php5-ovh con Curl, Bzip2, Db2, Mysqli, Soap y/o Zip.

El símbolo menos "-" delante, significa que php5-ovh no ha sido compilado con estas opciones.


Ejemplo : Curl

Si queremos instalar una opción disponible, por ejemplo CURL a PHP5, basta con hacer :



# USE="curl" emerge php5-ovh



Y php5-ovh se compilará automáticamente con el soporte CURL.



Al poner el comando "php5 -m", os aparecerá la extensión correctamente listada:

# php5 -m
[PHP Modules]
...
curl
...




Fijar las opciones por defecto

Durante las actualizaciones automáticas de la Release 2, podréis perder esta opción de compilación, si el paquete vuelve a compilarse.

La solución definitiva es editar el fichero /etc/make.conf y añadir el a variable USE, la opción "curl" o bien quitar el guión si ya estaba añadida con un guión.


Ejemplo :

USE="curl -X mmx sse sse2 -gtk -sdl -nptl -xpm"



De este modo, el Curl se añadirá siempre en el PHP, por defecto en cada actualización.


Añadir una extensión dentro de PHP

Para recompilar un paquete nuevo con emerge y luego utilizar el comando "pecl" de PHP para añadirlo :

  • En PHP4 : /usr/local/php4/bin/pecl
  • En PHP5 : /usr/local/php5/bin/pecl

El paquete (fichero .so) aparece en el directorio extensions :

  • En PHP4 : /usr/local/php4/lib/php/extensions/
  • En PHP5 : /usr/local/php5/lib/php/extensions/


Ejemplo : Imagemagick

Por ejemplo, para añadir las librerías Imagemagick a PHP5 :

Antes de nada, añadimos las utilidades Imagemagick al servidor instalándolas con emerge :


# emerge dev-php5/pecl-imagick



A continuación instalamos el módulo en PHP a través de PECL :


# /usr/local/php5/bin/pecl install imagick



Por último añadimos en el fichero php.ini las líneas :


# nano /usr/local/lib/php5/php.ini

extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/"
extension=imagick.so




Al poner el comando "php5 -m", os aparecerá la extensión correctamente listada:

# php5 -m
[PHP Modules]
...
imagick
...



Zend Optimizer

La instalación de Zend Optimizer se realiza siguiendo las instrucciones de la página de Zend, basta con bajar el instalador y ejecultarlo.


Para añadirlo al php4, se debe instalar en /usr/local/php4/include/php/Zend
Para añadirlo al php5, se debe instalar en /usr/local/php5/include/php/Zend

Recordad que hay versiones diferentes para 32 y 64 bits.


Ejemplo : Instalar Optimizer v. 3.2.0 para PHP 5.2 con Release 2 de 32 bits:


# wget http://downloads.zend.com/optimizer/3.2.0/ZendOptimizer-3.2.0-linux-glibc21-i386.tar.gz

# tar -zxvf ZendOptimizer-3.2.0-linux-glibc21-i386.tar.gz

# ./ZendOptimizer-3.2.0-linux-glibc21-i386/install

Opciones :

- Please specify the location for installing Zend Optimizer:
/usr/local/php5/include/php/Zend

- Confirm the location of your php.ini file :
/usr/local/lib/php5

- Specify the full path to the Apache control utility (apachectl)
/usr/local/apache/bin/apachectl


# php5 -v
PHP 5.2.5-pl1-gentoo (cgi)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Extension Manager v1.0.11, Copyright (c) 2003-2006, by Zend Technologies
with Zend Optimizer v3.2.0, Copyright (c) 1998-2006, by Zend Technologies




Ioncube

La instalación de Ioncube se realiza siguiendo las instrucciones de la página de Ioncube, basta con bajar los loaders y cargarlos en el php.ini correspondiente.

http://www.ioncube.com/loaders.php

Deberéis copiar las versiones de los loaders (ficheros .so) al directorio "/usr/local/include/".
Recordad que hay versiones diferentes para 32 y 64 bits.

Una vez copiados los ficheros basta con modificar el archivo "php.ini" para que cargue el loader correspondiente.

Nota : Deberá añadir la extensión Ioncube al principio del fichero php.ini.


Ejemplo : Instalar Ioncube para PHP 5.2 con Release 2 de 32 bits:


# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
# tar -xvf ioncube_loaders_lin_x86.tar.gz
# cp ioncube/ioncube_loader_lin_5.2.so /usr/local/include/

# nano /usr/local/lib/php5/php.ini

Añadimos las dos líneas :

[PHP]
; ioncube
zend_extension=/usr/local/include/ioncube_loader_lin_5.2.so

...

# php5 -v
PHP 5.2.5-pl1-gentoo (cgi)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with the ionCube PHP Loader v3.1.34, Copyright (c) 2002-2009, by ionCube Ltd., and
with Zend Extension Manager v1.0.11, Copyright (c) 2003-2006, by Zend Technologies





Más información

: Release2Portage :: Uso de paquetes y del árbol Portage en Gentoo y Release2
: Release2Recompilar :: Procedimiento para modificar y compilar un paquete Gentoo

: PhpConOvh :: Algunas habilidades PHP con OVH
: PhpYSsh :: Cómo aprovechar PHP con acceso SSH