• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion

Issue PHP Warning: Unknown: open_basedir restriction in effect

LionKing

Regular Pleskian
Server operating system version
Ubuntu Linux
Plesk version and microupdate number
Plesk Obsidian Web Host Edition Version 18.0.54 Update #3
Hi.
We configured that the php_errors.log file in php that should be logged in the "logs" folder. This among things for security reasons as it then reside above the www root.

But PHP doesn't seem happy with our choice quote:
AH01071: Got error 'PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(/logs/php_errors.log) is not within the allowed path(s): (/var/www/vhosts/crm.xyz-example.com/:/tmp/) in Unknown on line 0', referer:
So how do we configure PHP and Plesk to be "happy" with that we have the php error log in that directory of the domain root?

FYI: We did test this suggested solution from the online documentation: https://support.plesk.com/hc/en-us/...accessible-open-basedir-restriction-in-effect but that generates syntax errors.

Adding directly in php settings and the php.ini / user.ini files
; Open dir
open_basedir = "/logs"
Does make the change but then it complains over that files in the www public folder is not allowed like example "index.php"


Thanks in advance.
 
You seem to use an absolute path /logs, which starts at the disk root. For that reason it is considered to be outside your webspace.

Instead you can use the full path, e.g.
PHP:
ini_set("error_log", "/var/www/vhosts/crm.xyz-example.com/logs/php-error.log");
 
If you mean the "Additional directives" on the PHP settings page, then you cannot add PHP code there, but need to enter it like
Code:
error_log = /var/www/vhosts/crm.xyz-example.com/logs/php-error.log

The previously shown line
PHP:
ini_set("error_log", "/var/www/vhosts/crm.xyz-example.com/logs/php-error.log");
is the way to set the variable in a PHP script.
 
No, this is what you'd use in a PHP script. The ini-fomat is
Code:
error_log = /var/www/vhosts/crm.xyz-example.com/logs/php-error.log
 
Back
Top