BPS Pro DB Backup Failure Report

Home Forums BulletProof Security Pro BPS Pro DB Backup Failure Report

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #46011
    Syxguns
    Participant

    Environment:

    • RunCloud (NGINX + PHP-FPM)
    • No Apache modules available
    • WordPress running normally
    • All BPS Pro modules except DB Backup working correctly

    Issue Summary:

    The BPS Pro DB Backup module never initializes the DBBjobs array. This results in the persistent warning:

    PHP Warning: Undefined array key “DBBjobs” in db-backup-security.php on line 646

    This warning appears every time the DB Backup page loads.

     

    What has already been verified:

    • The folder /wp-content/bps-backup/db-backup/ exists.
    • The folder is writable by PHP.
    • The folder contains the correct .htaccess file with:
      Order Allow,Deny
      Deny from all
      
    • The obfuscated backup folder (e.g., /bps-backup/backups_xxxxx/) exists and is writable.
    • The obfuscated folder also contains a valid .htaccess.
    • Clicking Rename | Create | Reset does NOT create the DBBjobs array.
    • No errors appear when clicking the button — it simply does nothing.
    • Manual backup jobs cannot be created because DBBjobs never initializes.
    • No AutoRestore or permission blocks are occurring.
    • RunCloud’s “Fix Permissions” tool was run — no change.
    • No .htaccess IP restrictions remain.
    • No leftover Namecheap or LiteSpeed artifacts remain.
    • All other BPS Pro features (ARQ, Login Security, MScan, etc.) work normally.

    Behavioral Notes:

    • The DB Backup module appears to abort before reaching the code that initializes DBBjobs.
    • This happens even with a clean folder structure and correct permissions.
    • The issue persists across browsers and after clearing caches.
    • The issue persists even with all other plugins disabled.

    Suspected Cause: Because this installation is running on NGINX, not Apache, the DB Backup module may be performing checks that depend on:

    • mod_authz_core
    • mod_access_compat
    • .htaccess validation
    • Apache rewrite behavior
    • Apache-specific directory protection checks

    If the module requires Apache responses to proceed, it will never initialize DBBjobs under NGINX.

    Request: Can you confirm whether the DB Backup module requires Apache-specific functionality that is not available under NGINX/PHP-FPM? If so, is there a workaround or override to allow DBBjobs to initialize on NGINX-based hosting?

    Additional Note: I have database backups through RunCloud, so this issue is not critical for my site’s safety. However, having BPS Pro’s DB Backup working as a secondary backup system would be ideal.

    Thank you for any helpful information you may be able to provide.

     

    #46012
    AITpro Admin
    Keymaster

    BPS DB Backup does not use any htaccess files/code. It only uses PHP and JavaScript code. This is Form processing code, which should only be processed/run when you click the Run Job|Delete Job button under the Backup Jobs ~ Manual|Scheduled tab. The Form processing code has an isset() condition to only process this function if the Form is submitted. The “PHP Warning: Undefined array key” error is a minor error, which could just be a code correctness check. What version of PHP are you running?

    If you have WP_DEBUG turned on in your wp-config.php file or using some other debugging method that could be the reason you are seeing this PHP error. When you are done debugging be sure to turn off debugging.

    Code lines: 634-646

    // Form Processing: Backup Jobs ~ Manual|Scheduled - DB Backup Run|Delete Jobs Form
    function bpsPro_dbbackup_form_processing() {
    
    if ( isset( $_POST['Submit-DBB-Run-Job'] ) && current_user_can('manage_options') ) {
    	check_admin_referer('bulletproof_security_db_backup_run_job');
    	
    global $wpdb;	
    $timeNow = time();
    $gmt_offset = get_option( 'gmt_offset' ) * 3600;
    $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);	
    $DBBoptions = get_option('bulletproof_security_options_db_backup');
    
    	$DBBjobs = $_POST['DBBjobs'];
Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.