Firstly, apologies for the vague title. Not sure how best to word it. I'll start off with a copy of my php logs.
[25-Jun-2019 12:21:44] WARNING: [pool corrigansni.ivech.co.uk] child 58505 said into stderr: "NOTICE: PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(C:\Inetpub\vhosts\ivech.co.uk\logs\php_errors\choicerentals.ivech.co.uk\php_error.log) is not within the allowed path(s): (/var/www/vhosts/ivech.co.uk/:/tmp/) in Unknown on line 0"
[25-Jun-2019 12:21:44] WARNING: [pool corrigansni.ivech.co.uk] child 58504 said into stderr: "NOTICE: PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(C:\Inetpub\vhosts\ivech.co.uk\logs\php_errors\choicerentals.ivech.co.uk\php_error.log) is not within the allowed path(s): (/var/www/vhosts/ivech.co.uk/:/tmp/) in Unknown on line 0"
[25-Jun-2019 12:21:45] WARNING: [pool corrigansni.ivech.co.uk] child 58499 said into stderr: "NOTICE: PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(C:\Inetpub\vhosts\ivech.co.uk\logs\php_errors\choicerentals.ivech.co.uk\php_error.log) is not within the allowed path(s): (/var/www/vhosts/ivech.co.uk/:/tmp/) in Unknown on line 0"
[25-Jun-2019 12:21:45] WARNING: [pool corrigansni.ivech.co.uk] child 58456 said into stderr: "NOTICE: PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(C:\Inetpub\vhosts\ivech.co.uk\logs\php_errors\choicerentals.ivech.co.uk\php_error.log) is not within the allowed path(s): (/var/www/vhosts/ivech.co.uk/:/tmp/) in Unknown on line 0"
That's just a small section of my logs. I'm assuming I have programming errors which are trying to write to the logs but this is happening on every page load of roughly 60 subdomains. I've only become aware of it due to some major speed issues recently. The server load is fine however the speed of running multiple ajax scripts has decreased dramatically recently. I'm hoping this is all related and by fixing this problem the speed issues will fix.
My main issue is that irrelevant of the php errors, they're not able to write because of the openbase_dir problem. However, as you can see from the logs it's not even trying to write to a related folder.
subdomain: corrigansni is trying to write to the log folder for choicerentals even though they aren't related and choicerentals subdomain no longer exists. I'm also not being told which script is trying to write the logs.
Can anyone answer the following:
Just as a side note, I've tried changing the PHP version I'm using, still get the same issues.
Thanks in advance
EDIT: A few people have suggested a similar question elsewhere. It's not really the same. That questions asks how to relax openbase_dir, I don't want to do that.
My question has a few parts:
Firstly; it's trying to access a folder within the directory which is not relevant. How do I change that location.
Secondly; my openbase_dir settings appear to be correct so why would it not be able to access it.
Thirdly. What would cause it to attempt to write to an error_log file but from an unknown location.
Your PHP settings have an incorrect value for the error_log
setting, which points to a directory you've told PHP it shouldn't write to. This is causing a Warning during the startup of every request, as PHP processes your settings files, before it's reached the first line of your PHP code. Since it can't write to the log file specified, it falls back to the default, which is to echo to "standard error", which is eventually picked up and put in the generic log file you're seeing.
There are several places a configuration variable can be set, discussed in the Runtime Configuration chapter of the PHP manual; for instance, there may be one or more php.ini
files, and settings passed in from Apache configuration files. Either the setting has been copied incorrectly from one site to another, or it is being set in a global configuration file which is used by both sites.
The peculiar path logged (C:\Inetpub\vhosts\ivech.co.uk\logs\php_errors\choicerentals.ivech.co.uk\php_error.log
) suggests that the setting is incorrect anyway, apart from mentioning the wrong site; possibly it is specifying a relative path rather than an absolute one (starting with C:\
).
As pointed out in comments, it looks like the open_basedir
setting is wrong as well, as it appears to be in Linux format, whereas the log message suggests you're running on Windows.
For anyone that ever finds this I found my problem. I had a silly little file called .user.ini in my folder structure which was setting the windows path. Must have been there from an old windows server we used to use.