Firstly, apologies for the vague title. Not sure how best to word it. I'll start off with a copy of my php logs.
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:
- where the setting may be to change where it is writing the logs?
- why i'm getting unknown on line 0 instead of a script location
- why every single page load and ajax call may be causing this to happen.
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_logsetting, 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.inifiles, 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 withC:\).As pointed out in comments, it looks like the
open_basedirsetting is wrong as well, as it appears to be in Linux format, whereas the log message suggests you're running on Windows.