Forum Replies Created

Viewing 15 replies - 1 through 15 (of 82 total)
  • Plugin Author Hasan CALISIR

    (@psauxit)

    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.conf paths, and other paths that NPP requires, which can be hard to manage.

    Plugin Author Hasan CALISIR

    (@psauxit)

    sudo chmod 644 /etc/nginx/nginx.conf
    sudo -u www-data cat /etc/nginx/nginx.conf | head -n 10
    Plugin Author Hasan CALISIR

    (@psauxit)

    Ok, so you are running everything on a single monolithic server.

    nginx.conf detected (strict):  No

    That means plugin can not find the nginx.conf or perm issue.

    ls -al /etc/nginx/nginx.conf
    stat /etc/nginx/nginx.conf

    And please share the your process owner and web server user on Status Tab

    PHP Process Owner (Website User)
    Web Server User (nginx | www-data)
    Plugin Author Hasan CALISIR

    (@psauxit)

    Ok, you just need to keep your live nginx.conf accessible so the plugin can reach it. If you are in a containerized environment and Nginx runs in a separate container, you need to make nginx.conf accessible to the WordPress container. For now just copy live nginx.conf to wordpress container as /etc/nginx/nginx.conf then plugin automatically disable Assume Nginx mode.

    Plugin Author Hasan CALISIR

    (@psauxit)

    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.

    Plugin Author Hasan CALISIR

    (@psauxit)

    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

    Plugin Author Hasan CALISIR

    (@psauxit)

    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

    Plugin Author Hasan CALISIR

    (@psauxit)

    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

    Plugin Author Hasan CALISIR

    (@psauxit)

    v2.1.5 is out. FYI.

    Plugin Author Hasan CALISIR

    (@psauxit)

    @doctorproctor

    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

    Plugin Author Hasan CALISIR

    (@psauxit)

    Good 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

    Plugin Author Hasan CALISIR

    (@psauxit)

    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

    Plugin Author Hasan CALISIR

    (@psauxit)

    Hello @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

    Plugin Author Hasan CALISIR

    (@psauxit)

    Hello,

    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

    Plugin Author Hasan CALISIR

    (@psauxit)

    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

Viewing 15 replies - 1 through 15 (of 82 total)