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:

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:
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: artículos, hosting, pear, php, programación, webmasterEntradas Relacionadas:


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
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';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!
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" -printSino 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”.
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.
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.
tio, un post de escandalo par mi que soy un peazo d novato, gracias!!
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