为什么即使使用正确的包含路径,PHP梨也不能工作?

del*_*ber 2 php pear

这是我得到的错误消息

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

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

我正在使用Plesk在VPS中运行Centos.该脚本在命令行中运行良好,但在浏览器中死亡.

编辑:权限看起来不错

drwxr-xr-x 16 root root 4096 Jan 30 07:06 pear

EDIT2:

钓鱼后,我认为这与plesk有关,如此处所述

http://www.matteomattei.com/en/install-yum-and-php-pear-on-centos-5/

我有一堆包含文件

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

编辑最新的一个如下

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

然后重新启动.仍然没有快乐

Hor*_*Kol 6

检查该目录的文件权限.

当您在命令行上运行PHP时,您正在自己运行 - 但是当您通过浏览器访问时,PHP将作为apache或www-data用户执行.

你需要允许读取权限来传递pear目录(及其所有内容),或者你给组读取然后使用chgrp将它设置为apache或www-data(我不完全确定在CentOS上使用了哪个用户)

编辑:

另外 - 您可能希望在配置中包含尾部斜杠 - 我注意到您仅将其添加为/usr/share/pear- 我通常不会更改此ini值,因此不知道这是否有所不同.Try /usr/share/pear/