« »
Jun 13

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:

[php] set_include_path(get_include_path().PATH_SEPARATOR.’/home/usuario/pear/PEAR’); [/php]

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”.

Be Sociable, Share!
Tagged with:

14 Responses to “Instalar clases PEAR en un hosting compartido”

  1. Antonio Prado says:

    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. Oriol says:

    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. 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….

  4. […] En la misma wiki puedes ver una lista completa de los problemas q este nuevo estándar quiere solventar. Es realmente interesante la nueva característica unzip-and-go de las PEAR2, permite a quien sólo quiera usar una o dos clases PEAR las pueda descargar y utilizar directamente sin necesidad de usar el instalador. […]

  5. Carlos Sanchez says:

    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!

  6. Oriol says:

    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”.

  7. 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.

  8. Oriol says:

    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.

  9. manu says:

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

  10. Nelson says:

    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

  11. nelson says:

    hola , ya tengo rato buscando coo isntalar pear en mi sitio, y esta hoy lo consegui, gracias ha tus consejos, el unico problema que tengo es que, no puedo indicarle a egroupware en donde esta instalado el pear, ya le intente con .htaccess , pero me carca un error 500, asi que renombre el .htaccess y estoy utilizando php.ini (dentro de la carpeta egroupware), y entonces pude acceder al area de instalacion de egroupware, pero cuando realiza una prueba de instalacion, me manda este mensaje,

    Comprobando si PEAR ::Auth_SASL está instalado: Falso
    Se necesita PEAR para: EMailAdmin, felamimail. Puede instalarlo ejecutando: pear install Auth_SASL

    pero se supone que ya lo tengo instalado, ue estoy haciendo mal, por favor hayudame?

    la ruta en donde tengo instalado el pear es /home/mdgpcser/public_html/pear/PEAR

    y el systema egroupware esta en /home/mdgpcser/public_html/egroupware

    gracias

    por cierto , ya instale el paquete pear.php.net Auth_SASL

    es el que me pide el egroup ware.

  12. juan says:

    Como puedo instalar ahora propel sobre pear

  13. Manuel Alfonseca says:

    Tenemos instalado PEAR y funciona, siempre que el php que lo usa tenga como propietario root, pero no si tiene cualquier otro propietario. De hecho, el mismo php copiado por otro usuario a una carpeta con un propietario diferente, deja de funcionar. La instrucción que falla es
    require_once Mail.php
    lo que indica que hay un problema de autorizaciones.

    ¿Se os ocurre alguna solución?

    Gracias,

Leave a Reply

preload preload preload