Hasan CALISIR
Forum Replies Created
-
open_basedir =
{ABSPATH}/ :
{ABSPATH}/../ :
/dev/shm/ :
/tmp/ :
/var/ :
/cache/ :
/proc/ :
/dev/null :
/etc/nginx/ :
/usr/bin/ :
/usr/sbin/ :
/usr/local/bin/ :
/usr/local/sbin/ :
/bin/ :
/sbin/Yes, if you use
open_basedir, you need to allow access to cache paths,nginx.confpaths, and other paths that NPP requires, which can be hard to manage.sudo chmod 644 /etc/nginx/nginx.conf
sudo -u www-data cat /etc/nginx/nginx.conf | head -n 10Ok, so you are running everything on a single monolithic server.
nginx.conf detected (strict): NoThat means plugin can not find the nginx.conf or perm issue.
ls -al /etc/nginx/nginx.conf
stat /etc/nginx/nginx.confAnd please share the your process owner and web server user on Status Tab
PHP Process Owner (Website User)
Web Server User (nginx | www-data)Ok, you just need to keep your live
nginx.confaccessible so the plugin can reach it. If you are in a containerized environment and Nginx runs in a separate container, you need to makenginx.confaccessible to the WordPress container. For now just copy livenginx.confto wordpress container as/etc/nginx/nginx.confthen plugin automatically disable Assume Nginx mode.because i copied the content of my nginx.conf to dummy-nginx.conf
You don’t need to take that action. On a fresh install, is NPP able to detect your production
nginx.conf, or are you redirected to the plugin setup page? Are you in ‘Assume Nginx’ mode or not?But in order to get it working, i had to – also just as a try – add /dev/null to php open_basedir
Honestly I did not understand your solution too here.
To diagnose this further, we need to try some technical workarounds. Since I don’t have access to your environment, it’s difficult to reproduce the issue you’re facing. I can guide you through the steps.
php -r "echo function_exists('proc_open') ? 'enabled' : 'disabled';"If proc_open enabled on your php env. the error messages produced by nppp_detect_premature_process() in preload.php. We need to bypass this function before assigning any blame.
In preload.php
Find line number 480 and 707
if (function_exists('proc_open') && is_callable('proc_open')) {And replace to bypass this check temporarily:
if (function_exists('proc_open_fake') && is_callable('proc_open_fake')) {Now you can try again, assuming you have the technical background to edit the plugin’s core files directly.
Best~Hasan
Hello @tvarga77
To debug this reliably, the simplest approach is to run the exact preload command directly on the server. You need to run the command directly on the server (~WordPress container) where the plugin is installed.
Please try this: change http://www.site.com and let me know what happens next.
wget --recursive -l inf --no-cache --no-config --no-cookies --no-directories --delete-after \
--no-dns-cache --no-check-certificate --prefer-family=IPv4 --retry-on-http-error=503,429 --waitretry=10 \
--dns-timeout=10 --connect-timeout=5 --read-timeout=60 --tries=2 --ignore-case \
-e robots=off \
-e use_proxy=no \
-e http_proxy=http://127.0.0.1:3434 \
-e https_proxy=http://127.0.0.1:3434 \
-P /tmp \
--limit-rate=5120k \
--wait=0 \
--reject-regex='/wp-admin/|/wp-content/|/wp-includes/|/wp-json/|/xmlrpc.php|/wp-.*\.php|/cart/|/checkout/|/order-received/|/order-pay/|/wc-ajax/|/wc-auth/|/my-account/|/wc-api/|/addons/|/robots\.txt|/sitemap(_index)?\.xml|[a-z0-9_-]+-sitemap([0-9]+)?\.xml|/wp-sitemap.*\.xml|comment-page-|/feed/|/embed/|/cgi-bin/|/login/|/logout/|/register/|/lost-password/|/password-reset/|/activate/|\.well-known/|\?|\=|\&|\#' \
--reject='*.css,*.min.css,*.js,*.min.js,*.png,*.jpg,*.jpeg,*.gif,*.ico,*.mp4,*.webm,*.mov,*.avi,*.mkv,*.flv,*.wmv,*.mpeg,*.mpg,*.m4v,*.3gp,*.woff,*.woff2,*.ttf,*.eot,*.svg,*.bmp,*.pdf,*.doc,*.docx,*.xls,*.xlsx,*.ppt,*.pptx,*.zip,*.rar,*.tar,*.gz,*.bz2,*.7z,*.xml,*.txt,*.sql,*.log,*.ini,*.conf,*.json,*.bak,*.old,*.tmp,*.swp,*.md,*.rst,*.py,*.sh,*.iso,*.crt,*.key,*.pem,*.out,*.xsl' \
--domains='site.com,www.site.com' \
--header='Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
--user-agent='NPP/2.1.5 (NginxCacheWarm; device=desktop; Desktop)' \
-- 'https://www.site.com'Dou you use safexec? Are you on v2.1.5? Can you share your Status Tab?
Best ~Hasan
Hello @kaganvmz
You are welcome. According to your cache_key :
fastcgi_cache_key "$scheme$FIRST_FASTCGI_HOST$request_uri";The real problem is the $request_method filter.
The plugin has a guard in place to skip non-GET entries (POST, HEAD, etc.) to avoid operating on cache files that shouldn’t be there. These are not represent Nginx cache.I think the below fix will be enough. Cause, the default NPP Cache Key Regex correctly parsing your key, you don’t need any adjustment in regex, but since $request_method is missing in your key, you need to find and replace all occurrences.
Find (all 5 occurrences):
includes/purge.php
includes/advanced.php
includes/advanced.php
includes/status.php
includes/related.php// FIND: (breaks Engintron)
if (strpos($key_line, 'GET') === false) {
continue;
}
// REPLACE: FIXED
if (strpos($key_line, 'POST') !== false ||
strpos($key_line, 'HEAD') !== false ||
strpos($key_line, 'PUT') !== false ||
strpos($key_line, 'DELETE') !== false ||
strpos($key_line, 'PATCH') !== false ||
strpos($key_line, 'OPTIONS') !== false) {
continue;
}Please let me know fixed now, maybe I miss something else. If works for you I will commit it.
Meanwhile, if you have time to do an end-to-end test of the v2.1.5, I would greatly appreciate it.
Best~Hasan
v2.1.5 is out. FYI.
v2.1.5 is out — if you’ve been using a direct download from the GitHub branch, please do a clean reinstall from the official WordPress repository to avoid any potential naming issues.
Best~Hasan
Forum: Plugins
In reply to: [Nginx Cache Purge Preload] recommendations for cloudflare integrationGood timing — v2.1.5 just dropped and Cloudflare APO Sync is in there, as promised.
When you purge via NPP now, it’ll automatically hit Cloudflare’s edge cache too — single pages, related URLs, everything. If you have APO Cache By Device Type on, that’s handled as well.
Just go to Settings → Advanced → Cloudflare APO Sync and flip it on. You’ll need the official Cloudflare plugin installed and connected.
APO being paid means I can’t throw it on a test server myself, so honestly you’d be doing me a favor if you gave it a spin on your end and let me know how it goes. Even a quick “works fine” or “something’s off with X” would help a lot — other users will likely ask the same question down the road.
Thanks again for pushing for this one. 🙏
Best, Hasan
Hello @kaganvmz
Please update to v2.1.5 which was just released — it includes preload improvements and better error handling. If the issue persists after updating, let me know.
Best~Hasan
Forum: Plugins
In reply to: [Nginx Cache Purge Preload] recommendations for cloudflare integrationHello @doctorproctor
Using another caching tool with NPP is always possible with fine adjustments, but keep in mind that this adds extra complexity. In the end, you need to manage both purging mechanisms separately, which increases operational workload.
NPP already supports nearly all popular WordPress cache plugins. For example, when you enable Auto Purge and trigger Purge Cache, NPP automatically calls compatible plugins purge endpoints, so both caches are cleared automatically and stay in sync, preventing stale content.
The same applies to Cloudflare. You need fine adjustments to APO to prevent stale content when it’s used alongside server-side caching such as Nginx Cache. The only WAF example you share looks logical.
I’ll add support so that when NPP purges the NGINX cache, it also clears the Cloudflare cache (v2.1.5).
Best~Hasan
Forum: Plugins
In reply to: [Nginx Cache Purge Preload] Plugin does not detect Nginx Cache PathsHello,
I’m happy to help with anything plugin-specific. Unfortunately, the server/control-panel configuration side (FastPanel permissions/layout for NGINX include files) needs to be handled by FastPanel support or your hosting admin.
Best~Hasan
Hi there @lanxalot
Thanks a lot — glad you like the NPP!
Yes, I plan to keep it actively maintained and supported throughout 2026. I’m also using it across my own sites, so compatibility with current WordPress versions and typical NGINX setups is something I intend to keep stable and up to date.
Just to set expectations clearly: the plugin is already quite close to its full potential, so updates may be rare. That said, I do plan to keep it supported through 2026 — meaning if WordPress changes, security issues, or compatibility problems come up, I’ll push maintenance releases as needed.
So even if you don’t see frequent feature updates, you can expect ongoing compatibility/support.
Best~Hasan