missuse of dirname(ABSPATH) in wp-load.php
|Reported by:||albanc||Owned by:|
During wordpress installation, wp-config.php is not found on some systems raising an open_basedir error because the wp-config.php is looked in the upper directory of wordpress installation :
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/var/www/vhosts/mind2machine.com/subdomains/agribio/wp-config.php) is not within the allowed path(s): (/var/www/vhosts/mind2machine.com/subdomains/agribio/httpdocs:/tmp) in /var/www/vhosts/mind2machine.com/subdomains/agribio/httpdocs/wp-load.php on line 36
In above error message, wordpress is located in path :
But the wp-config file is looked in :
This is due to the function dirname() being applied on ABSPATH at 3 different locations in wp-load.php.
However the dirname function is meant to retreive the folder name out of A FILE path. Appliying dirname on ABSPATH which is a FOLDER PATH returns the path with the last item truncated (here : httpdocs), thus a wrong path.
Also, ABSPATH is already obtained from executing a dirname() function, so there is absolutely no need in any case to apply dirname() over it once again :
define( 'ABSPATH', dirname(__FILE__) . '/' );
BUG FIX :
Replace any occurence of dirname(ABSPATH).'/wp-filename.php' by ABSPATH.'wp-filename.php'
See patch attached.