文件明明存在,却require_once(./*.php)出错

问题描述:

刚装好PMA,在火狐中访问,会看到白板,什么都没输出。使用IE可以看到500错误(服务器内部错误)

打开报错后发现

Warning: require_once(./libraries/common.inc.php) [function.require-once]: failed to open stream: No such file or directory in ***\mousebomb\pma\index.php on line 35

Fatal error: require_once() [function.require]: Failed opening required ‘./libraries/common.inc.php’ (include_path=’.;C:\php5\pear’) in ***\mousebomb\pma\index.php on line 35

而文件是确实存在且IUSR(IIS匿名访问用户)有权限的。

解决方案:

白板的解决:修改php.ini中的相关错误输出设置,默认的php.ini只需要把display_error=off改成display_error=on就可以

require出错解决:require所有./开头的相对路径文件,都必须把上级目录的IUSR开启可读权限。不仅配置PMA,无论什么网站,在wimp下都要注意./开头的文件要想访问都必须上级目录可读

相关文献:

http://hi.baidu.com/ucsec/blog/item/193bc1b6e3ae98fc31add1ab.html

有的时候安装好PHPmyAdmin后,在IE里访问时会出现下面的这种情况:

Warning: require_once(./libraries/common.lib.php): failed to open stream: No such file or directory in ***\index.php on line 40
Fatal error: main(): Failed opening required ‘./libraries/common.lib.php’ (include_path=’.;c:\php5\pear’) in ***\index.php on line 40

出现这种问题的原因有下面几种:

1、你的PHPmyAdmin目录放到了磁盘的根目录下
2、你的PHPmyAdmin目录及上层目录的权限设置问题

解决方法:

·将PHPmyAdmin的目录不要放在磁盘的根目录下,如放在D:\SiteManage\phpmyadmin
·将PHPmyAdmin的目录及上层目录,设置权限如下:
Users    读取和运行
IUSR_……  读取和运行

另外的解决方法:
-----------------

遇到个奇怪的问题。在安装完phpmyadmin后报如下错误:
Warning: require_once(./libraries/common.lib.php) [function.require-once]: failed to open stream: No such file or directory in X:\Xxxxx\phpmyadmin\index.php on line 36
Fatal error: require_once() [function.require]: Failed opening required ‘./libraries/common.lib.php’ (include_path=’.;C:\php5\pear’) in X:\Xxxxx\phpmyadmin\index.php on line 36

将Mysql数据库导入到新装的Mysql5.2中,打开BLog首页,却仍报如上类似错误.

经过一阵调试终于发现解决方法:
原于phpmyadmin与php安装目录的上级ACls权限不够,呵!
给phpmyadmin,php,及它们上一级目录同样的Acls用户读取权;然后再打开Blog,成功搞定! ^_^

注意事项与安全隐患:
1、请不要将phpmyadmin安装在站点或虚拟主机根目录,因为这样guest用户就会拥有根目录的权限。
2、给phpmyadmin给予IIS进程运行用户以及IIS匿名User读取权限即可。强烈建议不要将everyone加入ACLs权限列表。
3、大家在调试程序或配置脚本环境时,请尽量先多看FAQ!然后从报错代码中去寻找原因…(比如上述中错语,你打开index.php的第36行,看PHP代码执行的是什么命令就很清楚错误原因所在了)

注意技巧:

1、不要将phpmyadmin解压安装在根目录,因为这样guest用户就会拥有根目录的权限。
2、给phpmyadmin给予iis用户权限,user组用户权限即可。不建议加everyone权限。

---------

以上两种方法思路一样,大家可试试

你可能感兴趣的:(PHP技术)