New installation - open_basedir restriction

Permalink
I have just uploaded concrete5.4.0.5 to my test location such that the folder with that name is at the root level of the site. Then when I browse tohttp://www.example.com/concrete5.4.0.5... to initiate the installation process, I am told -

Warning: require_once() [function.require-once]: open_basedir restriction in effect. File(../../../../../concrete5.4.0.5/concrete/libraries/3rdparty/Zend/Zend/Loader.php) is not within the allowed path(s): (/var/www/vhosts/example.com/httpdocs:/tmp) in /var/www/vhosts/example.com/httpdocs/concrete5.4.0.5/concrete/libraries/3rdparty/Zend/Translate.php on line 25

Other errors follow, but they are probably related to this one. I'd appreciate any suggestions as to what I might be missing!

Thanks,

Murray

View Replies: View Best Answer
nteaviation replied on at Permalink Reply
nteaviation
See:
http://www.geeklog.net/forum/viewtopic.php?showtopic=67174...

There is a php security setting that prevents opening files in the directory /libraries (and most likely others). Not sure what the scope is. This is something your web host will have to fix.
msummers replied on at Permalink Reply
Thanks! I have now gotten rid of the open_basedir restriction, but I am still throwing errors -

Warning: require_once(../../../../../concrete5.4.0.5/concrete/libraries/3rdparty/Zend/Zend/Loader.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/vhosts/gws-sitetest.com/httpdocs/concrete5.4.0.5/concrete/libraries/3rdparty/Zend/Translate.php on line 25

Notice that the Zend directory is specified TWICE in the error pathing. Does this suggest anything to you? I didn't configure anything - just uploaded the Concrete 5.4.0.5 distro files....

Murray
nteaviation replied on at Permalink Reply
nteaviation
Yes, you are correct, there is one too many "Zend" directory references. This in on a new/fresh install correct? Did you drop all your database tables before reinstalling (easy way) or drop the database and recreate it?

Very odd how the relative path is getting "hosed".
msummers replied on at Permalink Reply
Could be operator error here. Please standby....

Murray
msummers replied on at Permalink Reply
OK - there was some operator error, but I don't think it was causing the problem. When I open the Translate.php file that is in the 'concrete/libraries/3rdparty/Zend' folder, I see this line -

require_once 'Zend/Loader.php';

To me, that's an error. The "Zend" folder should NOT be listed in that require_once() path.

By the way, the database has been set up but contains no tables yet since I can't even get the default concrete page to load....

Murray
nteaviation replied on at Permalink Reply
nteaviation
I agree, but every file in that directory uses that syntax to reference "require_once" files. Something is mangeling the path. Since this is only happening on your setup, it leads me to belive there is still a confiruration and or a compatibility issue.
msummers replied on at Permalink Reply
It's that way in the concrete distro files for this release. This is copied directly from the Translate.php file -

/**
* @see Zend_Loader
*/
require_once 'Zend/Loader.php';


Murray
DavidMIRV replied on at Permalink Reply
DavidMIRV
I've only seen zend compatibility issues when zend server is used which already includes the zend core.. This is very strange that it is listing zend twice
msummers replied on at Permalink Reply
Download the 5.4.0.5 release and look in that file. Do you see what I am seeing?
DavidMIRV replied on at Permalink Reply
DavidMIRV
yes I see it but I don't know what to say .. works fine on all our installs
nteaviation replied on at Permalink Reply
nteaviation
Yes, I saw it. It is that way in /Zend/Mail.php 4 times:
require_once 'Zend/Mail/Transport/Abstract.php';
/**
 * @see Zend_Mime
 */
require_once 'Zend/Mime.php';
/**
 * @see Zend_Mime_Message
 */
require_once 'Zend/Mime/Message.php';
/**
 * @see Zend_Mime_Part
 */
require_once 'Zend/Mime/Part.php';
msummers replied on at Permalink Reply
It has to be an error!

A file that is within the Zend folder cannot specify the "Zend" folder in its relative links, right?

Anyhow, I'll try uploading the whole caboodle again.

Murray
nteaviation replied on at Permalink Reply
nteaviation
It may well be an error on your configuation, but I have not seen any other threads on this issue in the forums. I don't yet have an answer to why your system is being "Ornery".
msummers replied on at Permalink Reply
Thanks for tracking along with me on this. I'll post back when I have word about the new upload.

Murray
DavidMIRV replied on at Permalink Reply
DavidMIRV
Zend modifies the global include path to include its parent directory.. therefor require_once('Zend'/XX') will work.. See loader.php
nteaviation replied on at Permalink Reply
nteaviation
I'm not sure if this could be the culprit or not.

From:
http://www.phpbuilder.com/manual/ini.core.php...


cgi.fix_pathinfo boolean
Provides real PATH_INFO/PATH_TRANSLATED support for CGI. PHP's previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting this to 1 will cause PHP CGI to fix it's paths to conform to the spec. A setting of zero causes PHP to behave as before. Default is zero. You should fix your scripts to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
msummers replied on at Permalink Best Answer Reply
You guys have been very helpful! Thanks so much for tracking these things down for me.

It appears that the re-upload did the trick. I am now logged in as admin!

Thanks again....
nteaviation replied on at Permalink Reply
nteaviation
Excellent! Glad your are up and running! :)