Php Can';t包括明确存在(已安装)的pear包
我安装了Mail_Mime软件包Php Can';t包括明确存在(已安装)的pear包,php,pear,Php,Pear,我安装了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('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
这两个文件肯定在文件夹中:
/usr/lib/php/PEAR/Mail.php
/usr/lib/php/PEAR/Mail/mime.php
pear列表告诉我所需的软件包已安装,并且没有缺少依赖项它是否在您的include路径中
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_一次呢?这将防止它被多次包含(一次部分)并导致致命错误。对于使用虚拟主机的Plesk用户:当您将open_basedir设置为允许包含PEAR库时,不要忘记将Directory指令包含在vhost.conf的/var/www/vhosts/yourdomain/subdomains/yoursubdomain/conf/vhost.conf中
<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>
php_admin_标志引擎打开
php_管理_标志安全模式关闭
php_admin_value open_basedir“/var/www/vhosts/yourdomain/subdomains/yourdomain/httpdocs:/tmp:/usr/share/php”
php_admin_标志引擎打开
php_管理_标志安全模式关闭
php_admin_value open_basedir“var/www/vhosts/yourdomain/subdomains/yourdomain/httpdocs:/tmp:/usr/share/php”
选项-Includes-ExecCGI
我通过更改open_basedir值实现了这一点,现在我只需要了解如何在服务器范围内(即允许当前域的pear、tmp和webroot)使用:
来分隔目录,还是代码>?为什么一开始会有一个点?我通过更改open_basedir值来实现它,现在我只需要解决如何在服务器范围内实现这一点(即允许当前域的pear、tmp和webroot)小心:如果您的文件正在使用Mail.php,请将其包含为大写的“M”。