Support » Plugin: Gutenberg Blocks by Kadence Blocks – Page Builder Features » Warning: ftp_nlist() expects parameter 1 to be resource

  • I am getting the error (“Warning: ftp_nlist() expects parameter 1 to be resource”) — after clicking “Pages | Add New”, the browser clears and the error displays briefly and then disappears as the normal New Page editor displays.

    If I deactivate Kadence Blocks, the error stops.

    I get this message even using the Twenty Twenty-One theme and with no other plugins.

    All 2.x (tested through 2.0.7) versions exhibit this behavior. Version 1.10.9 does not.

    What do I do to fix? Thanks.

Viewing 15 replies - 1 through 15 (of 20 total)
  • Can you tell me who you are hosting with? Have you contacted your hosting provider? The error indicates that something isn’t set up correctly with the WP file system.

    Ben

    Thread Starter danearnold

    (@danearnold)

    Thanks Ben. Self hosting on Synology. I would not be surprised if I need to change something in my server configuration; do you have any specific suggestions I should try?

    What type of setup issue should I be looking for that only surfaces with Kadence Blocks version 2 and up active?

    Dan

    Hmm, I don’t know why you would be getting that error, I was hoping you could tell me what is different about your host than all our test environments or other users.

    In 2 we added the new design library that creates cached json files in your wp-content folder for all the design sections. This is fairly common and it’s using the WordPress file system class to manage it.

    So can you access the design library in the editor?

    Are you changing the way permissions work within your hosting, for example can you upload plugins without having to do something manual?

    Ben

    Thread Starter danearnold

    (@danearnold)

    Good question. I am running on a Synology DS1821+ running DSM 6.2.4 and my Web Station is running Apache 2.4 and PHP 7.4. I admit to the possibility of “user error” since this is my initial WP experience, and because I am the system admin and did the setup with a good deal of help from various online tutorials.

    My FTP_USER account has r/w permissions to my web folder and child folders. I have all the default file/directory structure for wp-content/ plugins, etc. I have an occasional issue (timeout, etc) with upgrading plugins, but most work fine.

    << So can you access the design library in the editor? >> When I click on the Kadence Design Library button, I get “Error, Unable to access library database, please try re-syncing”. Looks like a clue, but I’m not sure what to do with it. Not sure if it is the same idea as your designer, probably not, but I can successfully click on “Edit with SeedProd”.

    Another clue. I just created a staging site using WP Staging, and the error does not present there. I wonder how I use that to help me find the answer? I did not see any unexplained differences in the wp-config.php file for prod vs staging, for example.

    Grateful for any tips to help figure this one out.

    Dan

    Hmm, yeah that doesn’t really make sense. I don’t have any good guesses off the top of my head.

    Basically, you can’t see the design library because blocks can’t create the file locally on your server to cache the design library elements. That fact that you can in your staging seems to suggest that something on your production site is broken in terms of write permissions. However it also could mean that your being blocked from curl requests to access data, but that doesn’t really make sense based on your error.

    Also this: “I have an occasional issue (timeout, etc) with upgrading plugins” shouldn’t really happen. That would signify to me that something isn’t right even if it’s not happening every time. Just FYI I wouldn’t consider that “normal”.

    Can you tell me if the kadence_blocks_library folder has been created in your wp-content folder?

    Ben

    Thread Starter danearnold

    (@danearnold)

    Not only does the error not occur in the staging, but I can access the design library from there.

    No, there is no kadence_blocks_library folder in my wp-content folder.

    Ok, so I just reset the permissions on my FTP_USER account to the web folder, and to all files and subfolders and deactivated/reactivated kadence blocks. Now I do have a kadence_blocks_library folder in my wp-content folder but still cannot access the design library, and still have the original error.

    So I deactivated and deleted kb, reinstalled and activated it. (All successfully through the wp interface.) I still have a kadence_blocks_library folder in my wp-content folder but still cannot access the design library, and still have the original error.

    Then just for kicks I again reset the permissions on my FTP_USER account to the web folder, and to all files and subfolders and deactivated/reactivated kadence blocks. No change in results.

    Dan

    Can you install https://wordpress.org/plugins/health-check/ and see if it flags anything about your server?

    I’ll keep thinking, right now I’m not sure.

    Thread Starter danearnold

    (@danearnold)

    Installed without issue and activated.
    – File Integrity: All files passed the check. Everything seems to be ok!
    – Mail Check: Passed
    – Plugin Compatibility: Looks good

    Below are a few of the values from the info section. Not sure if anything will jump out.

    Thanks again for your time.

    Info: File System Permissions: All Writeable

    Info: Database Values

    Extension
    mysqli
    Server version
    10.3.24-MariaDB
    Client version
    mysqlnd 7.4.9
    Database user
    arnoldworld
    Database host
    127.0.0.1:3307
    Database name
    arnoldworld
    Database prefix
    aw_

    Info: Server Values:

    Server architecture
    Linux 4.4.59+ x86_64
    Website server user
    RyzenDan (1032)
    Web server
    Apache/2.4.43 (Unix)
    PHP version
    7.4.9 (Supports 64bit values)
    PHP SAPI
    fpm-fcgi
    PHP max input variables
    1000
    PHP time limit
    240
    PHP memory limit
    256M
    Max input time
    60
    Upload max filesize
    600M
    PHP post max size
    1024M
    cURL version
    7.54.0 OpenSSL/1.0.2u
    Is SUHOSIN installed?
    No
    Is the Imagick library available?
    Yes
    Server headers
    server: nginx
    date: Thu, 27 May 2021 23:16:04 GMT
    content-type: text/html; charset=UTF-8
    content-length: 23446
    expires: Wed, 11 Jan 1984 05:00:00 GMT
    cache-control: no-cache, must-revalidate, max-age=0
    x-ua-compatible: IE=edge
    link: <https://dsdarn.com/wp-json/>; rel="https://api.w.org/", <https://dsdarn.com/wp-json/wp/v2/pages/44>; rel="alternate"; type="application/json", <https://dsdarn.com/>; rel=shortlink
    vary: Accept-Encoding
    content-encoding: gzip
    .htaccess rules
    Your .htaccess file contains only core WordPress features.
    Thread Starter danearnold

    (@danearnold)

    An update to earlier when I said “Now I do have a kadence_blocks_library folder in my wp-content folder”. I now believe I was looking in the staging folder by mistake. I have no kadence_blocks_library in prod. Sorry.

    Here is the function that is being called to create that folder: https://developer.wordpress.org/reference/classes/wp_filesystem_direct/mkdir/

    it’s using this to get the path: https://developer.wordpress.org/reference/classes/wp_filesystem_base/wp_content_dir/

    I wonder if you can check if WP_CONTENT_DIR is perhaps not defined?

    Ben

    Thread Starter danearnold

    (@danearnold)

    Is it supposed to be in my wp-config.php? It is not. If so, what would be the default/normal syntax?

    I do have
    define( ‘WP_CONTENT_DIR’, ABSPATH . ‘wp-content’ );
    in my wp-load.php

    Thanks

    Thread Starter danearnold

    (@danearnold)

    Update: From the WordPress Constants section of my Site Health Info:

    WP_CONTENT_DIR
    /volume1/web/dsdarn/wp-content

    and adding the following to wp-config.php gives me a constant already defined message:

    define( ‘WP_CONTENT_DIR’, $_SERVER[‘DOCUMENT_ROOT’] . ‘/wp-content’ );
    define( ‘WP_CONTENT_URL’, ‘http://dsdarn.com/wp-content&#8217; );

    So I’m assuming its from the line in wp-load.php.

    But is the WP_CONTENT_DIR constant ok to be defined in relation to the file system as it is? I assume so, or a lot more things would be broken?

    I don’t know what the issue is.

    If I was in your position I would try to use https://developer.wordpress.org/reference/classes/wp_filesystem_direct/mkdir/ and see what it returned and if by testing with that I could find some cause.

    Ben

    Thread Starter danearnold

    (@danearnold)

    Or … move my site to professional hosting, which was probably eventually going to happen anyway … and see the problem go away.

    Thanks.

    Hello there!

    I was also having this issue since the 2.0 update. I found a solution today on this issue comment

    So, adding the line below to wp-config.php should solve the problem:

    
    if ( ! defined( 'FS_METHOD' ) ) define( 'FS_METHOD', 'direct' );
    

    In my case, I also manually created the kadence_blocks_library directory inside wp-content and gave it write permission.

    Hope that helps!

Viewing 15 replies - 1 through 15 (of 20 total)
  • You must be logged in to reply to this topic.