[SPT/CWIS] cwis 1.4.0: can't find includes

Kucera, Rich Kucerar at hhmi.org
Tue Apr 18 11:20:15 CDT 2006


The problem is include_path in php.ini.

This is the way php.ini is in standard package management installation:
include_path = "/usr/share/php"

This setting will not allow the relative include mechanisms of CWIS (the
include paths in CWIS source require statements do not start with either a
'.' or a '..',  therefore they can't use PHP's include semantics regarding
paths starting with those prefixes).

The solution is either comment it:
;include_path = "/usr/share/php"  #/usr/share/php is empty anyway

Or add a '.' to the beginning of the include_path,  so that relative path
searches can be done:
include_path = ".:/usr/share/php"

Restart apache.

CWIS include mechanics depends on the include path setting.  I would now
reinstall CWIS because it may be tainted--part of the install is executed in
PHP script with the faulty include settings.

Could there be a test in the install scripts to check for this?

-Rich


-----Original Message-----
From: spt-cwis-users-bounces at scout.wisc.edu
[mailto:spt-cwis-users-bounces at scout.wisc.edu] On Behalf Of Kucera, Rich
Sent: Monday, April 17, 2006 4:23 PM
To: SPT / CWIS Users Discussion List
Subject: [SPT/CWIS] cwis 1.4.0: can't find includes

Hello,

I'm getting the following error from the fresh install of CWIS 1.4.0 using
PHP 4.4.0:

Warning: main(include/SPT--SPTDatabase.php) [function.main]: failed to open
stream: No such file or directory in
/srv/www/htdocs/CWIS/include/SPT--ItemFactory.php on line 29

Fatal error: main() [function.require]: Failed opening required
'include/SPT--SPTDatabase.php' (include_path='/usr/share/php') in
/srv/www/htdocs/CWIS/include/SPT--ItemFactory.php on line 29


Looking over the includes in 1.4.0 includes directory,  they don't seem to be
consistently done.  Some are begun with " dirname(__FILE__)",  a few others
(including this problem case),  just specify the include by "include/").

Grepping for require_once:

freezone:/srv/www/htdocs/CWIS/include # grep require_once *
SPT--ClassificationFactory.php:require_once(dirname(__FILE__)."/SPT--ItemFact
ory.php");
SPT--ClassificationFactory.php:require_once(dirname(__FILE__)."/SPT--Classifi
cation.php");
SPT--Classification.php:require_once(dirname(__FILE__)."/SPT--SPTDatabase.php
");
...
SPT--ItemFactory.php:require_once("include/SPT--SPTDatabase.php");
SPT--ItemFactory.php:require_once("include/SPT--Common.php");        # (to
make sure we have $Session and $User global vars)

Hopefully this is just a PHP or permission setting and not a problem with the
release.  

Thanks,
-Rich
_______________________________________________
SPT-CWIS-Users mailing list
SPT-CWIS-Users at scout.wisc.edu
http://scout.wisc.edu/mailman/listinfo/spt-cwis-users



More information about the SPT-CWIS-Users mailing list