【发布时间】:2011-09-09 17:41:37
【问题描述】:
我有一个运行 PHP 5.3.6 非线程安全 (VC9) 的 Web 服务器,在使用 FastCGI 的服务器 2008 R2 (iis 7.5) 上运行。
我遇到了几个错误,如下所示:
PHP Warning: include_once(\\DB-FUNCTIONS.PHP): failed to open stream: No such file or directory in M:\Depts\uc\uc-template\resources\library\faq-functions.php on line 3
PHP Warning: include_once(): Failed opening 'db-functions.php' for inclusion (include_path='.;D:\php5\extras;D:\php5\pear;D:\php5;N:\orgs;T:\Users;M:\depts;L:\Departments;M:\depts\include;') in M:\Depts\uc\uc-template\resources\library\faq-functions.php on line 3
文件调用如下:<?php ... include("DB-FUNCTIONS.PHP"); ... ?>
该文件存在于文件夹中,权限设置正确,其他包含文件正在工作。
我已将问题归结为以下问题
假设您有以下文件夹结构:
/包括 - 公司.php - 数据库.php -index.php
如果 index.php 包含 /includes/inc.php 并且 inc.php 调用 include("db.php") (没有 include/),则找不到该文件。如果您将所有文件放在一个文件夹中,它会找到它们。
还有其他人遇到这个问题吗?
我正在粘贴我的 php.ini 文件的清理版本,但我认为一切设置正确。 (对不起,双倍间距......否则它会一起运行。为了使文件更短,我只包含了与默认 php.ini 设置不同的变量。)
[PHP]
extension_dir ="D:\PHP5\ext"
short_open_tag = On
asp_tags = Off
register_globals = On
register_long_arrays = On
register_argc_argv = On
post_max_size = 8M
magic_quotes_gpc = On
include_path = ".;D:\php5\extras;D:\php5\pear;D:\php5;M:\depts;M:\depts\include;"
cgi.force_redirect = 0
cgi.fix_pathinfo =1
fastcgi.impersonate = 1;
allow_url_fopen = On
allow_url_include = On
fastcgi.logging =0
extension =php_sqlsrv_53_nts_vc9.dll
extension =php_curl.dll
extension =php_gd2.dll
extension =php_imap.dll
extension =php_oci8.dll
extension =php_openssl.dll
我查看了几个不同的站点,但找不到与此问题真正相似的任何内容。此代码在 4.4.7 版本上运行(网站是从运行 iis6 的 2k3 服务器迁移而来,4.4.7 在 isapi 模式下)
【问题讨论】:
-
您确实注意到
\\DB-FUNCTIONS.PHP中的双\ 前缀对吧?在 Windows 上,它可能会将其视为 UNC 路径。无论哪种方式,它看起来都不是正确的文件路径。 -
我确实注意到了这一点,但包含语句只是“文件名”...我尝试使用 google 和 bing 搜索,但它们都从搜索中删除了标点符号,所以我没有任何运气找到任何东西。我也觉得它不对,但我找不到任何关于它的信息。