开发者

PHP 5.3.x include statement problems on iis7 with fast cgi

I have a web server that is running开发者_C百科 PHP 5.3.6 non thread safe (VC9), running on a server 2008 R2 (iis 7.5) using FastCGI.

I am getting several errors like the one below:

 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

The file is calling like so: <?php ... include("DB-FUNCTIONS.PHP"); ... ?>

the file exists in the folder, the permissions are set correctly, other include files are working.

I have tracked the problem down to the following

say you have the following folder structure:

/includes - inc.php - db.php -index.php

if index.php includes /includes/inc.php and inc.php calls include("db.php") (no include/) then the file will not be found. if you put all the files in one folder it will find them.

is anyone else running into this problem?

I am pasting in a cleaned up version of my php.ini file but i think that everything is set correctly. (sorry for the double spacing ... it would all run together otherwise. in order to make the file shorter i have only included variables different that what the default php.ini is set to.)

[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

I have looked at several different sites and couldn't find anything really similar to this problem. This code did work on version 4.4.7 (the web sites were migrated from a 2k3 server runnning iis6 with 4.4.7 in isapi mode)


The include behaviour is expected.

The . in PHP's include path only refers to the outermost PHP file, usually the one invoked by the request.

If you want to include a file relative to the file doing the including, use the __DIR__ magic constant, eg

include __DIR__ . '/DB-FUNCTIONS.php';
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜