Php 为什么';即使使用正确的include路径也不能工作吗?

Php 为什么';即使使用正确的include路径也不能工作吗?,php,pear,Php,Pear,这是我收到的错误消息 致命错误:require_once()[function.require]:无法打开所需的“Mail.php”(include_path=”。:/usr/share/psa pear/:/usr/share/pear:/local/pear/) Mail.php在这里/usr/share/pear 我和普莱斯克在VPS中运行Centos。脚本在命令行中工作正常,但在浏览器中消失 编辑:权限看起来正常 drwxr-xr-x 16根根4096 Jan 30 07:06梨 编辑2

这是我收到的错误消息

致命错误:require_once()[function.require]:无法打开所需的“Mail.php”(include_path=”。:/usr/share/psa pear/:/usr/share/pear:/local/pear/)

Mail.php在这里
/usr/share/pear

我和普莱斯克在VPS中运行Centos。脚本在命令行中工作正常,但在浏览器中消失

编辑:权限看起来正常

drwxr-xr-x 16根根4096 Jan 30 07:06梨

编辑2:

在附近钓鱼之后,我认为这与这里解释的普莱斯克有关

我有一堆包含文件

-rw-r-----  1 root apache   6648 Jan 31 20:06 12965206700.32285200_httpd.include
-rw-r-----  1 root apache   6532 Jan 31 15:54 12965108850.92819600_httpd.include
-rw-r-----  1 root apache   6532 Jan 31 07:01 12964788880.47252600_httpd.include
在编辑了最近的一个之后,如下所示

grep base 12965206700.32285200_httpd.include
php_admin_value open_basedir /var/www/vhosts/wor.wordswithfriends.net/httpdocs/:/tmp/:/usr/share/pear:/local/PEAR/
php_admin_value open_basedir /var/www/vhosts/wor.wordswithfriends.net/httpdocs/:/tmp/:/usr/share/pear:/local/PEAR/
php_admin_value open_basedir /var/www/vhosts/wor.wordswithfriends.net/httpdocs/:/tmp/:/usr/share/pear:/local/PEAR/
php_admin_value open_basedir /var/www/vhosts/wor.wordswithfriends.net/httpdocs/:/tmp/:/usr/share/pear:/local/PEAR/

然后重新启动。仍然没有乐趣

检查您对该目录的文件权限

当您在命令行上运行PHP时,您是以自己的身份运行的——但是当您通过浏览器访问时,PHP是以apache或www数据用户的身份执行的

您要么需要允许读取权限访问pear目录(及其所有内容),要么授予group read,然后使用chgrp将其设置为apache或www数据(我不完全确定CentOS上使用的是哪个用户)

编辑:


此外-您可能希望在配置中包含尾随斜杠-我注意到您仅将其添加为
/usr/share/pear
-我通常不会更改此ini值,因此不知道这是否会产生影响
Try/usr/share/pear/
php.ini中的include路径应该是这个命令的值:
pear-config-get-php\u-dir

@ircmaxell:如果它不在正确的ini中-php在哪里可以得到它以打印错误消息?;-)<代码>var_dump(是_文件('/usr/share/pear/Mail.php')没有文件,或者您(Web服务器)无权访问该目录/文件霍鲁斯科尔