2010-05-21 19 views
6

Instalé el paquete Mail_Mime.No se puede incluir el paquete pear que definitivamente existe (y está instalado)

include('Mail.php'); 
include('Mail/mime.php'); 

consigo los siguientes errores:

Warning: include(Mail.php) [function.include]: failed to open stream: No such file or directory in /var/www/vhosts/domain.co.uk/httpdocs/mail_mime/index.php on line 2 

Warning: include() [function.include]: Failed opening 'Mail.php' for inclusion (include_path='.:/usr/lib/php/PEAR:/usr/lib/php/modules') in /var/www/vhosts/domain.co.uk/httpdocs/mail_mime/index.php on line 2 

Warning: include(Mail/mime.php) [function.include]: failed to open stream: No such file or directory in /var/www/vhosts/domain.co.uk/httpdocs/mail_mime/index.php on line 3 

Warning: include() [function.include]: Failed opening 'Mail/mime.php' for inclusion (include_path='.:/usr/lib/php/PEAR:/usr/lib/php/modules') in /var/www/vhosts/domain.co.uk/httpdocs/mail_mime/index.php on line 3 

los 2 archivos son definitivamente en las carpetas:

/usr/lib/php/PEAR/Mail.php 
/usr/lib/php/PEAR/Mail/mime.php 

lista de pera me dice que los paquetes necesarios están instalados y no hay dependencias faltantes

+0

lo tengo trabajo cambiando los valores open_basedir, ahora sólo necesito para averiguar cómo hacer eso en todo el servidor (es decir, permitir pear, tmp y webroot del dominio actual) – mononym

+0

Tenga cuidado: incluya Mail.php con una 'M' mayúscula si su archivo lo está usando. –

Respuesta

7

¿Está en su ruta include?

var_dump(get_include_path()); 

Si no es así, trate de añadir esto antes de mano para añadirlo a la ruta de inclusión:

en tiempo de ejecución:

$path = get_include_path() . PATH_SEPARATOR . '/usr/lib/php/PEAR'; 
set_include_path($path); 

O en php.ini

include_path=".:--Whatever's here already--:/usr/lib/php/PEAR" 

En una nota lateral, si le importa que se incluya, ¿por qué no usar require_once? Evitará que se incluya varias veces (la parte de _once) y causará un error fatal. También evitará la ejecución del resto del código si no se puede encontrar ...

+0

La ruta de inclusión está establecida correctamente – mononym

+0

¿Tiene permiso para leer el archivo? ¿El servidor? – ircmaxell

+0

intenté chmod a 777, todavía no funcionaba – mononym

1

Para usuarios de Plesk que utilizan hosts virtuales: no olvide incluir la directiva del directorio en el vhost.conf en el /var/www/vhosts/yourdomain/subdomains/yoursubdomain/conf/vhost.conf cuando se establece open_basedir para permitir que incluye las bibliotecas de PEAR

<Directory /var/www/vhosts/yourdomain/subdomains/yoursubdomain/httpdocs> 
     <IfModule mod_php4.c> 
       php_admin_flag engine on 
       php_admin_flag safe_mode off 
       php_admin_value open_basedir "/var/www/vhosts/yourdomain/subdomains/yoursubdomain/httpdocs:/tmp:/usr/share/php" 
     </IfModule> 
     <IfModule mod_php5.c> 
       php_admin_flag engine on 
       php_admin_flag safe_mode off 
       php_admin_value open_basedir "var/www/vhosts/yourdomain/subdomains/yoursubdomain/httpdocs:/tmp:/usr/share/php" 
     </IfModule> 
     Options -Includes -ExecCGI 
</Directory> 
Cuestiones relacionadas