Disable open_basedir in cPanel for error open_basedir restriction in effect

Updated on September 1, 2017

This tutorial explains how to adjust open_basedir attribute in PHP configuration and in case of shared hosting, learn to disable open_basedir via cPanel.

Question: Recently I worked for a client to install Datawrapper application on his Debian Jessie shared hosting server. I did follow all the steps given in the installation manual, but the application failed due to PHP fatal error and the warning hinted “require_once(): open_basedir restriction in effect“.

Below is the snapshot from the web server log.

[18-Feb-2017 15:28:08 UTC] PHP Warning: require_once(): open_basedir restriction in effect. File(/data/web/html/datawrapper/vendor/autoload.php) is not within the allowed path(s): (/data/web/html/datawrapper/www:/data/web/e26373/phpsession:/data/web/phptmp:/tmp:/usr/bin) in /data/web/html/datawrapper/www/index.php on line 14
[18-Feb-2017 15:28:08 UTC] PHP Warning: require_once(/data/web/html/datawrapper/vendor/autoload.php): failed to open stream: Operation not permitted in /data/web/html/datawrapper/www/index.php on line 14
[18-Feb-2017 15:28:08 UTC] PHP Fatal error: require_once(): Failed opening required '../vendor/autoload.php' (include_path='.') in /data/web/html/datawrapper/www/index.php on line 14

How to solve this error?

Solution: By analyzing the error, it shows that a security feature called open_basedir has been enabled. It is primarily used to prevent the web server user from accessing the files stored outside the directory that’s set in open_basedir. So in your case, it looks like open_basedir is set to /data/web/html/datawrapper/www directory and the index.php is trying to access vendor/autoload.php file which is outside the basedir.

Solution 1: Set open_basedir to point to /data/web/html/datawrapper in php.ini

open_basedir  = "/data/web/html/datawrapper"

In case of shared hosting, you may not be able to make changes to php.ini or create one for your account. So follow the solution 2.

How to disable open_basedir via cPanel?

Solution 2: Go to cPanel and look out for PHP Settings. Open the settings of the default PHP version and disable open_basedir feature.

PHP settings in cPanel

Now, try accessing the application and it should work.

Was this article helpful?

Related Articles

Comments Leave a Comment

  1. Not clear for me! I see open_basdir and empty box how to disable?

Leave a Comment