• There is an issue with trying to restore a backup from BackupBuddy. When restoring a website, the process includes creating a new database, uploading a ZIP file )with all files, WP core, plugins, images and the database) AND uploading a file called importbuddy.php to the root directory of the site. Usually I do this when I’m migrating a site to a new host, or restoring a site to a development environment for testing.

    Once uploaded, you access https://websitename.whatever/importbuddy.php and it runs a PHP script that extracts the ZIP file, moves the database from the ZIP into the database, and migrates/updates the domain name as needed. The last step in the process after checking to see if the site is working properly is to clean up, removing importbuddy.php and some other files/folders.

    The first time I tried the process, I received the following error:

    I’m going to chime in here quickly. The importbuddy.php file is a well-known file that is run when you are restoring a BackupBuddy backup. It’s clean, and there is a process in place to delete the file once the site has been restored.

    I think I’m having an issue right now restoring, as WordFence is blocking the restore process and blocking me from completing Step 3 (Database Settings) and throwing the following error AFTER the first step (extracting all of the files) and BEFORE the step that populates the database.

    ERROR #839983: Failure parsing returned server data. See Status Log for more details. Details:Unexpected token < in JSON at position 0. Response:
    <b>Warning</b>: Unknown: failed to open stream: Permission denied in <b>Unknown</b> on line <b>0</b>

    <b>Fatal error</b>: Unknown: Failed opening required ‘/home/SITE/public_html/wordfence-waf.php’ (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in <b>Unknown</b> on line <b>0</b>
    .

    Next, I went to the original installation and went to Wordfence > Options > Scans to include section and I excluded the file importbuddy.php. I then created a new backup, started over with the new development destination and when trying to run importbuddy.php I got the following error immediately:

    Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
    Fatal error: Unknown: Failed opening required '/home/brownsto/public_html/wordfence-waf.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in Unknown on line 0

    This is a problem. If I am unable to run BackupBuddy and depend on the backup/restore process, I’ll need to stop running Wordfence.

    Suggestions?

    https://www.ads-software.com/plugins/wordfence/

Viewing 15 replies - 1 through 15 (of 16 total)
  • Thread Starter steve49589

    (@steve49589)

    Update: Put Wordfence into learning mode and tried the process all over again. No dice, same error.

    Thread Starter steve49589

    (@steve49589)

    Now I’m even more concerned. I followed the instructions to remove Wordfence, and then I deactivated and backed up again. Tried to restore and got the same error.

    Not good. I understand this is the free version of your software, but this issue needs to be answered.

    Plugin Author WFMattR

    (@wfmattr)

    Hi Steve,

    Sorry about the trouble — this is from the firewall’s Extended Protection trying to load its file, but since the site has been moved, the file is not in its original location.

    Are you able to edit the site’s .htaccess or .user.ini file at that point in the installation? Depending on the server’s configuration, one of these two files has a line that says “auto_prepend_file” — and once that file exists, the firewall tries to load on the next request. Commenting out or removing that line should allow the installation process to continue.

    We have details on editing these files manually here:
    How can I remove the firewall setup manually?

    If you’re backing up the site manually, you can remove the firewall’s auto_prepend_file line before the backup, but we’ll look into a solution for preventing issues with automatic backups in this case as well.

    -Matt R

    Thread Starter steve49589

    (@steve49589)

    Thank you for the reply.

    Although I would be able to edit the .htaccess file prior to backing up, it does little or no good if I am in a situation where a site needs to be restored from an existing BackupBuddy backup. In short, the current Wordfence firewall makes using BackupBuddy pretty much impossible and you should let all of your clients know that.

    The only way I stumbled across the issue is that I do regular testing of all backups by restoring what I have to a development environment to confirm they are good.

    I think this issue came up when you released the update with the firewall implemented, and I’m going to have to go through and remove Wordfence across the board for all of my client sites.

    Within the last hour, I was finally able to remove Wordfence at the original site. Even though your site has instructions that state: “Wordfence data has been removed from your system including all Wordfence database tables.”

    That is NOT the case at all. Remnants still exist, and after following the instructions, I still could backup, but not restore. Not good.

    Then I tried the plugin you have called “Wordfence Assistant.” I did not think I would need to install and use it. Your instructions state:

    “Note that you can use the procedure below which only requires the Wordfence plugin. Or you can install the Wordfence Assistant plugin which has several options to remove Wordfence data. You can find Wordfence Assistant on this page.”

    The “procedure below” did not work, but I was able to finally remove Wordfence using the Wordfence assistant, and deleting everything and the tables through that tool.

    I would strongly suggest you let folks know about this and update your documentation.

    Thanks,
    Steve

    I am wondering if there has been a resolution to this issue yet.

    I am experiencing the same problem and cannot migrate a client site due because of the conflict. Thanks!

    Plugin Author WFMattR

    (@wfmattr)

    Hi,

    If the original site is still running, the best way to to move the site to a new location is to remove the Wordfence firewall’s customizations before making the backup — there are a couple ways to do it here:
    https://docs.wordfence.com/en/Web_Application_Firewall_FAQ#Uninstalling_the_firewall_files

    If you have a backup file you need to extract, and your site uses .htaccess to set up the firewall, it looks like the restore process will work right up until the end after the files and database are restored — in that case, you can edit .htaccess at the end, and just remove the line that says “auto_prepend_file = “, to make the new site work.

    If you have a backup file you need to restore to a different location, and your site uses the “.user.ini” file for firewall setup, :
    * Unzip the .zip file containing your backup in the new location where the site will be installed
    * Edit .user.ini and delete the line that says “auto_prepend_file” which includes an old path to wordfence-waf.php
    * In the first step of importbuddy.php, click Advanced Options, and turn on “Skip unzipping or opening archive (for manual extraction)”
    * Complete the rest of the restoration process as usual

    On the new site, you would need to follow the steps to optimize the firewall again, since removing the “auto_prepend_file” line will revert the firewall to “Basic WordPress Protection.” Our dev team is also working on simpler solutions, so workarounds won’t be necessary in the future.

    -Matt R

    Thread Starter steve49589

    (@steve49589)

    Matt,
    Thanks for the reply, but that does not help if you are running the firewall and something happens to the site, if the server crashes, or if you absolutely have to roll back to a previous version that was automatically backed up by Backup Buddy.

    In short, the two plugins do NOT work well together at all since you’ve implemented the firewall. This should be made extremely clear to those installing the plugin.

    I really do appreciate your efforts with the plugin, but this week, I’ll be spending some significant time completely removing Wordfence from more than 20 sites due to the conflict.

    Plugin Author WFMattR

    (@wfmattr)

    Hi Steve,

    Do the second and third paragraphs not help? These steps should let you restore an existing backup like, but it’s just not ideal since it requires extra steps outside of the normal restore processes. (That’s why our dev team is working on changes to make it simpler.)

    If you’re restoring a BackupBuddy file to the same server, you shouldn’t have any issues because the firewall files will be in the same location — if the path on the server is the same, it should be able to find the firewall files the same way it did before the restoration. (e.g., if the site is in /home/username/public_html/mysite.com/ and the backup is restored to that directory, it should be fine — but if the new site location is something like /home/differentuser/public_html/anothersite.com/, that is where the problem starts.)

    You can also avoid the issue by only removing only the firewall’s customizations to .htaccess and/or .user.ini, described in the link above — the rest of Wordfence should work normally, but the firewall will just run with “Basic WordPress Protection” instead of “Extended Protection.”

    -Matt R

    @wfmattr – Your info here was excellent help in providing a solution for me.

    I was having exactly the same issue- BackupBuddy extracted the files but then got the JSON error noted above.

    After reading your info, I opened user.ini via Cpanel’s file manager, and changed:

    auto_prepend_file = '/home/OLDSITEDIRECTORY/public_html/wordfence-waf.php'

    to
    auto_prepend_file = '/home/NEWSITEDIRECTORY/public_html/wordfence-waf.php'

    (the NEWSITEDIRECTORY word was exactly what Cpanel’s editor showed at the top next to ‘Currently editing:’)

    and then went back to my BackupBuddy tab and tried to continue again- success!

    Hopefully this will help others solve the issue too.

    Thank you mintynz for that quick solution.

    You really helped me out.

    Thanks, billspd – glad it sorted things for you. But really, all I was doing was following up on the original excellent info provided by WFMattR – superb support from him.

    Thread Starter steve49589

    (@steve49589)

    I’ve finally had the time to check this resolution and editing the .user.ini file does work for me.

    I’m still concerned about what the firewall is blocking on its own.

    Right now, I’m in a position where BackupBuddy will not check for new versions, but other plugins will check.

    Looking forward to being able to easily “turn off” the firewall. I already have a firewall in place at the server level.

    I still may end up completely removing Wordfence for the time being, as I’m just not comfortable with what it is blocking. I’ve run into processes I do all the time that are still being blocked I think.

    Hey steve49589, can’t you just turn off the firewall in Wordfence?

    Remove Wordfence completely if you wish, but I find it’s generally awesome, and I think the level of support shown here by WFMattR (which seems a fairly prompt and comprehensive solution to an fairly edge-case scenario) is pretty bloody good. It certainly helped me on the right path, which is why I posted more specifics too- good info deserves to be highlighted.

    The fix to the user.ini – worked like a charm. Thanks all. I do personally hope that it is fixed in a future update to the plugin though, it’s annoying to have to take that action.

    works for me too thanks @mintynz

Viewing 15 replies - 1 through 15 (of 16 total)
  • The topic ‘Issue with restoring site using iThemes BackupBuddy – importbuddy.php’ is closed to new replies.