Hi @mojamba
https://snipboard.io/5GtMwl.jpg
If you have added that code in the said file
all-in-one-wp-security-and-firewall/classes/firewall/rule/wp-security-firewall-rule-utils.php
then in error_log you should have a full stack trace (If it is enabled mentioning which file which method is called ) before your reported error shows which files and methods are being called.
I want to know which rule file contains_pattern called has this issue.
Regards
I have added that code. In fact, the new error shows the line is line 27 where before it was line 23. But, no error showing up in the wp-content/debug.log file. The errors are being recorded in the main public_html/PHP_errors.log file instead, and no full stack details.
Hi @mojamba
AS you have added that debug_backtrace to log the line rasing error will be 27.
Strange before this error you can not see error logged as stack trace in php_errors.log
https://developer.ww.wp.xz.cn/advanced-administration/debug/debug-wordpress/
make sure the WP_DEBUG set true in wp-config.php and WP_DEBUG_LOG true t oadd log in debug.log of wp-content folder.
// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );
// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );
Please cross check if enabling above shows PHP stack trace. before that error.
Regards
Yes, I have both of those config settings enabled and I am getting an error log generated in the wp-content folder but it’s not the place that this particular error is getting logged and it’s not a full stack trace.
Hi @mojamba,
Please keep checking the debug.log if below error is there logged it means the $subject is null and it should be considered empty so it should log at that time full stack trace according to me. as below condition for empty $subject to error_log debug_stacktrace added.
https://snipboard.io/5GtMwl.jpg
PHP Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in …/wp-content/plugins/all-in-one-wp-security-and-firewall/classes/firewall/rule/wp-security-firewall-rule-utils.php on line 23
Regards
Hi @mojamba
Is there any error logged with stack trace then let me know.
Regards
I am still getting regular errors, but not are logged with stack trace. Perhaps there is a code error for enabling that?
Hi @mojamba
I will check but it should log stack trace but yes hosting provider if supported stack trace log then it might be possible.
Is that error logged at a particular interval due to the cronjob run? or any thing if known it will be goodl
I have created an internal ticket for it Anytime empty it should not check that.
Regards
I just re-checked the errors log file and I do see this entry. Not sure if it’s your full-stack trace or something else, but:
[23-Jul-2024 13:09:50 UTC] Array
(
[0] => Array
(
[file] => .../public_html/wp-content/plugins/all-in-one-wp-security-and-firewall/classes/firewall/rule/rules/general/rule-advanced-character-filter.php
[line] => 46
[function] => contains_pattern
[class] => AIOWPS\Firewall\Rule_Utils
[type] => ::
)
[1] => Array
(
[file] => .../public_html/wp-content/plugins/all-in-one-wp-security-and-firewall/classes/firewall/rule/wp-security-firewall-rule.php
[line] => 73
[function] => is_satisfied
[class] => AIOWPS\Firewall\Rule_Advanced_Character_Filter
[type] => ->
)
[2] => Array
(
[file] => .../public_html/wp-content/plugins/all-in-one-wp-security-and-firewall/classes/firewall/family/wp-security-firewall-family.php
[line] => 72
[function] => apply
[class] => AIOWPS\Firewall\Rule
[type] => ->
)
[3] => Array
(
[file] => .../public_html/wp-content/plugins/all-in-one-wp-security-and-firewall/classes/firewall/wp-security-firewall-loader.php
[line] => 52
[function] => apply_all
[class] => AIOWPS\Firewall\Family
[type] => ->
)
[4] => Array
(
[file] => .../public_html/wp-content/plugins/all-in-one-wp-security-and-firewall/classes/firewall/wp-security-firewall.php
[line] => 19
[function] => load_firewall
[class] => AIOWPS\Firewall\Loader
[type] => ->
)
[5] => Array
(
[file] => .../public_html/aios-bootstrap.php
[line] => 20
[args] => Array
(
[0] => .../public_html/wp-content/plugins/all-in-one-wp-security-and-firewall/classes/firewall/wp-security-firewall.php
)
[function] => include_once
)
)
The timestamp is the same as for the shortened PHP Deprecated error message. I also just realized that rather than lots of deprecated error messages at different times, I see 76 identical error line entries all with the exact same timestamp.
Hi @mojamba,
Yes it is the full stack trace and issue here shows is of classes\firewall\rule\rules\general\rule-advanced-character-filter.php
Thanks for the input it is strange that $_SERVER[‘REQUEST_URI’] is not empty but the PHP_URL_PATH is empty in that. do you have any cronjobs ( not WordPress set with crontabs) or local script running that accesses WordPress?
Regards
Yes, I do. I actually disabled the internal WP cron and run it via my server crontab because I have a plugin that runs better that way. I run it every 5 minutes I think. I also have a daily admin script I run and have a separate cronjob for that. Though, that one doesn’t align with the timestamp so I am guessing it isn’t related.
Hi @mojamba
Ok, If you are running cronjob and not using WordPress instead of crontab
It might be an issue in getting $_SERVER variables as it will not be actual URL called.
Do crontab have an entry like this to run PHP script right?
*/5 * * * * /usr/bin/php /path/to/your/script.php
Thanks for the info I have created an internal link for fix for this.
Regards
I have a few different cron jobs. The wp-cron.php job is as you say via a direct call to PHP but the others are via wget. I’m not sure if that will make a difference on your end or not.
Hi @mojamba
Thanks for the info. The cron job with direct php calls should be an issue.
Using wget it should be like visiting the browser URL so I see less issue there.
Regards
Hi @mojamba,
There is still no update regarding this, I will keep you posted.
Regards