2010-05-21 65 views
6

我安装了Mail_Mime包。不能包含肯定存在(并且已安装)的梨包

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

我收到以下错误:

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 

的2个文件是绝对的文件夹:

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

梨名单告诉我,需要的软件包安装,也没有缺少依赖关系

+0

我把它通过改变open_basedir的价值观工作,现在我只需要了解如何在服务器范围内完成该操作(例如,允许当前域的pear,tmp和webroot) – mononym 2010-05-21 14:39:15

+0

注意:如果您的文件正在使用它,请将Mail.php包含大写'M'。 – 2013-10-09 01:01:13

回答

7

它是否在您的包含路径中?

var_dump(get_include_path()); 

如果不是的话,试试手之前添加此将其添加到包括路径:

在运行时:

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

或者在php.ini

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

在附注中,如果您关心它被包含在内,为什么不使用require_once?它会阻止它被多次包含(_once部分)并导致致命错误。如果找不到其他代码,它将阻止其执行...

+0

包含路径设置正确 – mononym 2010-05-21 13:48:37

+0

您是否有权读取文件?服务器? – ircmaxell 2010-05-21 13:55:24

+0

尝试chmod到777,仍然没有工作 – mononym 2010-05-21 14:10:41

1

对于使用虚拟主机的Plesk用户:不要忘记将Directory指令包含在vhost.conf中/var/www/vhosts/yourdomain/subdomains/yoursubdomain/conf/vhost.conf当您设置的open_basedir允许包括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>