不能包含绝对存在的梨包(并且已安装)

mon*_*nym 6 php pear

我安装了Mail_Mime包.

include('Mail.php');
include('Mail/mime.php');
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

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
Run Code Online (Sandbox Code Playgroud)

这2个文件肯定在文件夹中:

/usr/lib/php/PEAR/Mail.php
/usr/lib/php/PEAR/Mail/mime.php
Run Code Online (Sandbox Code Playgroud)

pear list告诉我安装了所需的软件包,并且没有遗漏的依赖项

irc*_*ell 7

它在你的包含路径中吗?

var_dump(get_include_path());
Run Code Online (Sandbox Code Playgroud)

如果不是,请尝试手动添加此内容以将其添加到包含路径:

在运行时:

$path = get_include_path() . PATH_SEPARATOR . '/usr/lib/php/PEAR';
set_include_path($path);
Run Code Online (Sandbox Code Playgroud)

或者在php.ini中

include_path=".:--Whatever's here already--:/usr/lib/php/PEAR"
Run Code Online (Sandbox Code Playgroud)

另外,如果您关心它被包含在内,为什么不使用require_once?它会阻止它被多次包含(_once部分)并导致致命错误.如果无法找到,它还会阻止执行其余的代码......