Instalar clases PEAR en un hosting compartido

En muchas ocasiones disponemos de un servicio de hosting compartido que no tiene las PEAR instaladas, o que ofrece una instalación mínima que no incluye las clases que necesitamos. A continuación describo como realizar una instalación local de las PEAR en un servidor compartido usando la linea de comandos o un navegador web. A parte de instalaciones en servicios de hosting estos procedimientos resultan muy útiles en otras ocasiones, por ejemplo si queremos probar nuevas clases o distintas versiones de clases sin necesidad de instalarlas en el sistema.

Instalación por consola

Si disponemos de acceso SSH, Telnet, o directo a la consola del servidor este es el procedimiento a seguir.

1) Iniciamos la sesión de usuario.

2) Creamos una configuración por defecto para las PEAR:
$ pear config-create $HOME .pearrc

3) Creamos un directorio temporal en nuestra cuenta para evitarnos problemas de permisos en el directorio "/tmp" del sistema:
$ mkdir $HOME/tmp

4) Cambiamos las variables necesarias para que trabajen con nuestro directorio temporal:
$ pear config-set download_dir $HOME/tmp/download
$ pear config-set temp_dir $HOME/tmp

5) Verificamos la correcta configuración:
$ pear config-show

6) Instalamos el sistema base:
$ pear install -o PEAR

7) Instalamos las clases PEAR que necesitemos:
$ pear install <clase>

o si queremos instalar alguna versión beta:
$ pear install <clase>-beta

Instalación vía web

Si sólo disponemos de acceso por FTP o Web (como yo con HostGator) o si no queremos trabajar con comandos estos son los pasos necesarios para realizar una instalación vía web.

1) Vamos a http://go-pear.org/ y guardamos el script PHP que aparece como go-pear.php.

2) Creamos un directorio en nuestro servidor, por ejemplo "pear", y copiamos go-pear.php dentro.

3) Abrimos con un navegador la URL correspondiente, por ejemplo:
http://ejemplo.com/pear/go-pear.php

4) Seguimos los pasos que nos aparecen por pantalla, las opciones por defecto son válidas en la mayoría de ocasiones.

5) Posteriormente podremos gestionar las clases PEAR instaladas abriendo:
http://ejemplo.com/pear/
Allí nos encontraremos el Web-based PEAR Frontend que nos permitirá instalar, desinstalar y actualizar clases, buscar nuevas clases, cambiar la configuración, etc.

6) Es importante proteger el directorio de las PEAR para que no sea accesible al público. Al estar dentro del DocumentRoot del servidor Apache cualquiera podrá acceder a la configuración de nuestras PEAR a no ser que protejamos el directorio con usuario+contraseña y/o filtrando por IP.

Snapshot del frontend web de las PEAR:

PEAR Frontend snapshot

Configuraciones finales

Una vez completado con éxito cualquiera de los dos procedimientos anteriores sólo nos faltará añadir el directorio que contiene las clases PEAR, en el ejemplo "pear/PEAR", al include_path del PHP para que funciones como include() y require() puedan encontrar las nuevas clases:

  1. set_include_path(get_include_path().PATH_SEPARATOR.'/home/usuario/pear/PEAR');

Se ha de cambiar "/home/usuario" por la ruta física a tu home de usuario. En el último paso del proceso de instalación vía web se muestra la ruta física a las clases, si has realizado una instalación por consola teclea pwd en tu home y añade "pear/PEAR".

Etiquetas en Technorati: , , , , ,
Entradas Relacionadas:

11 Respuestas a “Instalar clases PEAR en un hosting compartido”


  1. 1 Antonio Prado 21 Jun, 2007, 1:55 am

    Muchas gracias por la informacion… Espero no molestarles pero podrian explicar de otra forma la ultima parte de configuracion “Configuraciones finales” ya que se me hace un poco confusa… Gracias de antemano

  2. 2 Oriol 21 Jun, 2007, 6:36 pm

    Pues se trata de añadir el nuevo directorio de las PEAR a la directiva include_path del PHP. Así podrás hacer un include() o un require() de alguna PEAR sin necesidad de poner la ruta completa a la clase, a parte de que es una configuración necesaria para que muchas de las clases PEAR funcionen correctamente.

    Tienes tres formas de hacer esto:
    1) Modificar el PHP.INI y añadir el nuevo dir al include_path.
    2) Usar la linea que comento en el post al principio de cada script PHP.
    3) Añadir a tu .htaccess lo siguiente:
    php_value include_path "/home/usuario/pear/PEAR"

    Con lo anterior consigues poder hacer algo como esto:
    require_once 'Mail.php';

    en lugar de esto:
    require_once '/home/usuario/pear/PEAR/Mail.php';

  3. 3 Carlos Sanchez 27 Jul, 2007, 1:00 am

    Hola, un saludo a todos una consulta como puedo hacer para conocer la ruta local
    en donde se instalo una clase PEAR en el hosting.

    ya q me esta saliendo este error:

    Warning: main() [function.include]: Failed opening ‘Mail.php’ for inclusion (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/atumedid/public_html/pear/PEAR/prueba_email/prueba2.php on line 2

    y al parecer no estoy poniendo la ruta de la clase:

    set_include_path(get_include_path() . PATH_SEPARATOR . ‘.:/usr/lib/php:/usr/etc/pear/PEAR’);

    gracias!

  4. 4 Oriol 3 Sep, 2007, 1:49 pm

    uuups, se me pasó este comentario sin contestar xDD

    Bueno, pues parece que en “/usr/etc/pear/PEAR” no tienes las PEAR , sino no fallaría. Si has instalado las PEAR vía web al final de la instalación lo dice.

    En todo caso en un servicio de hosting normalmente sólo tienes acceso de escritura en tu directorio home, o sea que mucho me temo que deben estar en algún lugar dentro de “/home/atumedid”. Si tienes acceso por SSH puedes usar la orden find:

    $ find . -name "PEAR" -print

    Sino tienes una shell por FTP puedes listar los archivos y buscar un directorio llamado “PEAR”. O en ambos casos buscar directamente el archivo “Mail.php”.

  5. 5 Roberto Ortega 1 Feb, 2008, 8:03 pm

    Hola, me ha gustado mucho el artículo, muy práctico, tengo un problema:

    el archivo .htaccess lo he creado yo y cuando escribo algo tengo un error 500

    el tema es que introduzco el texto:

    php_value include_path “/kunden/homepages/2/d231512179/htdocs/pear/PEAR”

    lo he intentado con = ,sin comillas, con = y sin comillas… todo pero no hay forma de que no de error 500

    alguna idea¿?

    Gracias.

  6. 6 Oriol 4 Feb, 2008, 7:29 pm

    Hola Roberto,

    Siento la demora. En ocasiones los ISP que no permiten .htaccess devuelven un error 500 sólo con crear el archivo, aunque no pongas nada dentro. Si este es tu caso no es necesario que intentes más formas de poner lo mismo porque no lo vas a conseguir :(

    Otro posible motivo es que no estás ejecutando el módulo PHP sino que vas vía CGI (compruébalo con un phpinfo()), en este caso no se puede usar php_value en el .htaccess. Algunos ISP (como el mío) para solventar esta situación te permiten usar un PHP.INI propio.

  7. 7 manu 28 Mar, 2008, 12:21 am

    tio, un post de escandalo par mi que soy un peazo d novato, gracias!!

  8. 8 Nelson 24 Jun, 2008, 5:11 pm

    Cordial Saludo, ya instale el pear en mi wwwroot pero me sigue apareciendo que no esta instaldo….le doy la ruta y nada que otras maneras hay de darle la ruta, ya me mi servidor no adminte .htaccess y uso php.ini y es como si no lo reconociera. Gracias

  1. 1 AplicacionesWeb » Archivos del Blog » Instalar clases PEAR en un hosting compartido Dirección Pingback a 25 Jun, 2007, 11:15 pm
  2. 2 www.programame.net Dirección Trackback a 26 Jun, 2007, 8:50 pm
  3. 3 Nuevos estándares para las PEAR2 en PHPBSD.net Dirección Pingback a 12 Jul, 2007, 12:11 am

Añade un Comentario