Don't understand the problems

Shpankov - December 17, 2005 - 19:40

Hi all

After installation of Drupal-4.6 I open index.php and see next:
=============================
Warning: main(sites/default/settings.php): failed to open stream: No such file or directory in /srv/www/htdocs/drupal-4.6.5/includes/bootstrap.inc on line 636
Warning: main(): Failed opening 'sites/default/settings.php' for inclusion (include_path='/usr/share/php') in /srv/www/htdocs/drupal-4.6.5/includes/bootstrap.inc on line 636
Warning: main(includes/database.inc): failed to open stream: No such file or directory in /srv/www/htdocs/drupal-4.6.5/includes/bootstrap.inc on line 637
Warning: main(): Failed opening 'includes/database.inc' for inclusion (include_path='/usr/share/php') in /srv/www/htdocs/drupal-4.6.5/includes/bootstrap.inc on line 637
Warning: main(includes/session.inc): failed to open stream: No such file or directory in /srv/www/htdocs/drupal-4.6.5/includes/bootstrap.inc on line 638
Warning: main(): Failed opening 'includes/session.inc' for inclusion (include_path='/usr/share/php') in /srv/www/htdocs/drupal-4.6.5/includes/bootstrap.inc on line 638
Warning: main(includes/module.inc): failed to open stream: No such file or directory in /srv/www/htdocs/drupal-4.6.5/includes/bootstrap.inc on line 639
Warning: main(): Failed opening 'includes/module.inc' for inclusion (include_path='/usr/share/php') in /srv/www/htdocs/drupal-4.6.5/includes/bootstrap.inc on line 639
Fatal error: Call to undefined function: db_fetch_object() in /srv/www/htdocs/drupal-4.6.5/includes/bootstrap.inc on line 199
=============================

But all files is plased in this folders. What the problems?

have you set baseurl is settings.php?

chromeyellow - December 17, 2005 - 22:41

Hmm, just a guess, but maybe you haven't set the correct baseurl variable in the file sites/default/settings.php. Assuming that you're installation is on your own computer for testing, the baseurl should be something like this: $base_url = 'http://localhost/drupal-4.6.5';

Try that out, if you haven't set it. And if you have... maybe the next reader can help!

probably

chx - December 18, 2005 - 01:24

the error message speaks for itself: Apache can not read settings.php (nor can anything else). Set your permissions accordingly. If this sounds like sanskrit (Hungarian :P) to you then mail your hoster with a link to this comment.
--
Read my developer blog on Drupal4hu. | The news is Now Public

the error message speaks for

Shpankov - December 18, 2005 - 07:25

the error message speaks for itself: Apache can not read settings.php (nor can anything else). Set your permissions accordingly. If this sounds like sanskrit (Hungarian :P) to you then mail your hoster with a link to this comment.

No, see below.

Hmm, just a guess, but maybe you haven't set the correct baseurl variable in the file sites/default/settings.php. Assuming that you're installation is on your own computer for testing, the baseurl should be something like this: $base_url = 'http://localhost/drupal-4.6.5';

Yes. I test drupal locally. And base_url like in your post $base_url = 'http://localhost/drupal-4.6.5';
I think, the problem is in my OS. It's SuSE-10.0 and all site files placed at the /srv/www/ directory. For example: /srv/www/htdocs/drupal-4.6.5/ etc. Maybe I should change something (i.e. paths) in the some drupal conf.files?

So, I do next:
1. Open the includes/bootstrap.inc
2. Change the next lines:
===============
include_once "$confdir/settings.php";
include_once '/includes/database.inc';
include_once '/includes/session.inc';
include_once '/includes/module.inc';
===============
to
===============
include_once "/srv/www/htdocs/drupal-4.6.5/sites/default/settings.php";
include_once './includes/database.inc';
include_once './includes/session.inc';
include_once './includes/module.inc';
===============

and then see the next message:
===============
Warning: db_set_active(includes/database.mysql.inc): failed to open stream: No such file or directory in /srv/www/htdocs/drupal-4.6.5/includes/database.inc on line 116
Warning: db_set_active(): Failed opening 'includes/database.mysql.inc' for inclusion (include_path='/usr/share/php') in /srv/www/htdocs/drupal-4.6.5/includes/database.inc on line 116
Fatal error: Call to undefined function: db_connect() in /srv/www/htdocs/drupal-4.6.5/includes/database.inc on line 122
===============

So, I don't want manually changing all drupal files. Maybe I can change only one conf.file for drupal correct working? But now I hadn't found that file yet ;)

First of all, I will point

chromeyellow - December 18, 2005 - 18:00

First of all, I will point out that your other helper so far - chx - is one of the main developers of Drupal. When he talks, I listen! So double check his suggestion about permissions...

As for config files and include paths... Drupal is nice - you can't find any more conf.files because there aren't any! You really only need to set two or three things in the settings.php file - baseurl, database connection info, and db_prefix if you are using prefix for your tables. The only other place you sometimes have to set a path is in .htaccess. Around line 45 you will find a line like this:
#RewriteBase /drupal

# means it's commented out and not being used. But if there is no #, make sure it looks like this (if drupal-4.6.5 is still name of your drupal directory):
RewriteBase /drupal-4.6.5

Next thing - as far as I know, Drupal doesn't care about server paths - only base URL. That is, all include_once, require_once etc commands are based on URL not path, so your OS shouldn't matter. In this line:

include_once "$config/settings.php";

Drupal automatically figures out $config variable by using $base_url plus its own set of rules. So if your $base_url is set correctly, should be no problem. But maybe next three lines are your problem:

------WRONG------------
include_once '/includes/database.inc';
include_once '/includes/session.inc';
include_once '/includes/module.inc';

Does your bootstrap.inc file really have the first / for each file? There should be no slash. OR there should be ./ (like in your edited version). SO

------RIGHT-------------
include_once 'includes/database.inc';
include_once 'includes/session.inc';
include_once 'includes/module.inc';

OR

--------ALSO RIGHT----------
include_once './includes/database.inc';
include_once './includes/session.inc';
include_once './includes/module.inc';

Conclusion:
1- triple check base_url
2- put line in bootstrap back to: include_once "$config/settings.php";
3- make sure other includes in bootstrap are correct

If this doesn't work...

4. wait for more help!? I'm out of ideas...

Thanks, but...

Shpankov - December 18, 2005 - 19:33

First of all, I will point out that your other helper so far - chx - is one of the main developers of Drupal. When he talks, I listen! So double check his suggestion about permissions...

OK, I checked it. No results - as root and as user.

means it's commented out and not being used. But if there is no #, make sure it looks like this (if drupal-4.6.5 is still name of your drupal directory):RewriteBase /drupal-4.6.5

I checked it too. I try any variants:
RewriteBase /drupal-4.6.5
RewriteBase /srv/www/htdocs/drupal-4.6.5
RewriteBase http://localhost/drupal-4.6.5
No results.

include_once "$config/settings.php";

Drupal automatically figures out $config variable by using $base_url plus its own set of rules. So if your $base_url is set correctly, should be no problem.

So, I understand. But if I change this line to:
/srv/www/htdocs/drupal-4.6.5/sites/default/settings.php
it works correctly.
Also I try change the base_url to any variants - no results.
$base_url = http://localhost/drupal-4.6.5
doesn't work too.

------RIGHT-------------
include_once 'includes/database.inc';
include_once 'includes/session.inc';
include_once 'includes/module.inc';

this variant doesn't work. But...

--------ALSO RIGHT----------
include_once './includes/database.inc';
include_once './includes/session.inc';
include_once './includes/module.inc';

...this works correctly. But appeared the new errors. I can fix it by editing any files and by changing include/_file_name_ to ./include/_file_name_, but it's wrong way.

I think, there is one problem: drupal doesn't handle the base_url correctly, but I can't find the answer.

Like you, I am now frustrated

chromeyellow - December 19, 2005 - 00:20

Answer is within grasp. But I can't see it! Last guess - (maybe you have already tried this too as you mentioned trying variants).

I assumed that apache calls this folder 'localhost' :
/srv/www/htdocs

But I overlooked what you said, slightly. Maybe *this* folder is 'localhost':
/srv/www

If so, try $base_url='http://localhost/htdocs/drupal-4.6.5';

And use either one of the 'correct' variants for included files.

Drupal is not usually so disagreeable. But since 4.6.5 is a very recent release, I suppose there is a possibility of a bug. Anyone else having this type of install problem?

If so, try

Shpankov - December 19, 2005 - 10:25

If so, try $base_url='http://localhost/htdocs/drupal-4.6.5';

There is no results. The changing of included files not helped too.
Also I try to move all drupal folder to folder /srv/www/. There is no results too.

PHP include path

bendi - January 4, 2006 - 21:44

I had the same problem.
Modified "php.ini" (on SUSE it's on /etc/php.ini) and changed the following line;

         include_path = "/usr/share/php"

to
         include_path = ".:/usr/share/php"

This did the trick!

 
 

Drupal is a registered trademark of Dries Buytaert.