2010-05-21 16 views
6

J'ai installé le package Mail_Mime.Impossible d'inclure le package pear qui existe définitivement (et est installé)

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

Je reçois les erreurs suivantes:

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 

les 2 fichiers sont certainement dans les dossiers:

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

me dit que les paquets nécessaires sont installés et il n'y a pas dépendances manquantes

+0

Je l'ai eu de travail en changeant les valeurs open_basedir, maintenant je dois juste pour savoir comment faire ce serveur large (ie autoriser pear, tmp et webroot du domaine courant) – mononym

+0

Attention: incluez Mail.php avec un 'M' majuscule si votre fichier l'utilise. –

Répondre

7

Est-il dans votre chemin d'inclusion?

var_dump(get_include_path()); 

Si ce n'est pas, essayez d'ajouter ceci avant la main pour l'ajouter à la voie comprennent:

au moment de l'exécution:

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

Ou dans php.ini

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

Sur une note de côté, si cela vous intéresse, pourquoi ne pas utiliser require_once? Cela l'empêchera d'être inclus plusieurs fois (la partie _once) et provoquera une erreur fatale. Il empêchera également l'exécution du reste du code s'il est introuvable ...

+0

Le chemin d'inclusion est défini correctement – mononym

+0

Avez-vous l'autorisation de lire le fichier? Est-ce que le serveur? – ircmaxell

+0

essayé chmod à 777, ne fonctionnait toujours pas – mononym

1

Pour les utilisateurs de Plesk utilisant des hôtes virtuels: n'oubliez pas d'inclure la directive Directory dans le fichier vhost.conf du fichier. /var/www/vhosts/yourdomain/subdomains/yoursubdomain/conf/vhost.conf lorsque vous définissez open_basedir pour permettre d'inclure les bibliothèques 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>