Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login
    Introducing Netgate Nexus: Multi-Instance Management at Your Fingertips.

    Upgrade to 2.9.0 leads to (Cannot open "/usr/local/lib/php/20250925/ftp.so")

    Scheduled Pinned Locked Moved Problems Installing or Upgrading pfSense Software
    14 Posts 5 Posters 572 Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • L Offline
      lou1z
      last edited by

      After upgrading to 2.9.0 CE, I get the following errors on the crash reports:

      PHP Warning: PHP Startup: Unable to load dynamic library 'ftp.so' (tried: /usr/local/lib/php/20250925/ftp.so (Cannot open "/usr/local/lib/php/20250925/ftp.so"), /usr/local/lib/php/20250925/ftp.so.so (Cannot open "/usr/local/lib/php/20250925/ftp.so.so")) in Unknown on line 0

      The upgrade had a few minor hickups eg appeared to stall at certain points with packages etc but otherwise it went well and is up and running. Just reporting the above annoyance.

      Packages installed are:
      Suricata
      Pfblockerng-devel
      ACME
      Ntopng

      GertjanG 1 Reply Last reply Reply Quote 0
      • GertjanG Offline
        Gertjan @lou1z
        last edited by Gertjan

        @lou1z said in Upgrade to 2.9.0 leads to (Cannot open "/usr/local/lib/php/20250925/ftp.so"):

        /usr/local/lib/php/20250925/ftp.so.so

        Have a look yourself.
        "ftp.so" is exist, is a php library file, and there are many dot so files.
        But .so.so. ..... ?

        Can you show the entire error ? The one that includes what files included what file that lead up to the issue ?

        "ftp" is very ancient, and afaik not used by pfSense itself.
        I surely not used by "acme.sh".
        It might be pfBlockerng ... do you use a DNSBL or IP feed that uses ftp to download a freed ? (really ?)
        What packet do you need to disable so the error goes away ? pfBlockerng, ntopng or Suricate ?
        For me, this is an issue coming from a package.

        edit : a potential work around :

        ln -s /usr/local/lib/php/20250925/ftp.so /usr/local/lib/php/20250925/ftp.so.so
        

        and then, so you see what this does :

        ls -al /usr/local/lib/php/20250925/
        

        It create a symbolic link called ftp.so.so that points to ftp.so in the /usr/local/lib/php/20250925/ folder.

        From now on, when /usr/local/lib/php/20250925/ftp.so.so gets used, it will wind up using /usr/local/lib/php/20250925/ftp.so, and that file exists.

        No "help me" PM's please. Use the forum, the community will thank you.

        1 Reply Last reply Reply Quote 0
        • M Offline
          mccann25
          last edited by

          Just to add, I have the same issue after upgrade to version 2.9, multiple errors, same message

          [22-Aug-2026 13:46:02 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'ftp.so' (tried: /usr/local/lib/php/20250925/ftp.so (Cannot open "/usr/local/lib/php/20250925/ftp.so"), /usr/local/lib/php/20250925/ftp.so.so (Cannot open "/usr/local/lib/php/20250925/ftp.so.so")) in Unknown on line 0

          It also seems to have affected app reporting on front page, there are no snort reports and DNSBL is marked as disabled?

          M 1 Reply Last reply Reply Quote 0
          • M Offline
            mccann25 @mccann25
            last edited by

            New post as i cant edit my original one, after clearing the error and another reboot, it has not come back, so all good now, still an issue with DNSBL but will work on that separately...

            1 Reply Last reply Reply Quote 0
            • A Offline
              andy7474
              last edited by

              I've got the same problem after the upgrade. Is there somewhere I can submit the error report?

              1 Reply Last reply Reply Quote 0
              • A Offline
                andy7474
                last edited by

                Just after my last post I deleted the error report. Ivy just gone back and got this:

                Crash report begins. Anonymous machine information:

                amd64
                16.0-CURRENT
                FreeBSD 16.0-CURRENT #12 RELENG_2_9_0-n256132-d8e3138ecf52: Mon Aug 17 18:50:13 UTC 2026 root@pfsense-build-release-amd64-2.eng.atx.netgate.com:/var/jenkins/workspace/pfSense-CE-snapshots-2_9_0-main/obj/amd64/XcuObCIF/var/jenkins/workspace/pfSense-CE-

                Crash report details:

                PHP Errors:
                [22-Aug-2026 19:39:39 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'ftp.so' (tried: /usr/local/lib/php/20250925/ftp.so (Cannot open "/usr/local/lib/php/20250925/ftp.so"), /usr/local/lib/php/20250925/ftp.so.so (Cannot open "/usr/local/lib/php/20250925/ftp.so.so")) in Unknown on line 0
                [22-Aug-2026 19:44:39 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'ftp.so' (tried: /usr/local/lib/php/20250925/ftp.so (Cannot open "/usr/local/lib/php/20250925/ftp.so"), /usr/local/lib/php/20250925/ftp.so.so (Cannot open "/usr/local/lib/php/20250925/ftp.so.so")) in Unknown on line 0

                M 1 Reply Last reply Reply Quote 0
                • M Offline
                  mccann25 @andy7474
                  last edited by

                  @andy7474 have you rebooted, once i did that and cleared the error, did not occur again?

                  ** Just FYI for the DNSBL error i got, i have to re-create the VIP to fix the error.

                  https://forum.netgate.com/topic/200497/pfblockerng-the-dnsbl-vip-needs-to-be-configured-manually-@-2026-04-07-20-09-33/3

                  A 1 Reply Last reply Reply Quote 1
                  • A Offline
                    andy7474 @mccann25
                    last edited by

                    @mccann25 yes. After a reboot the error still occurs. I don't seem to get the DNSBL issue you did. That's still working fine for me.

                    1 Reply Last reply Reply Quote 0
                    • L Offline
                      lou1z
                      last edited by lou1z

                      I think I may have got to the bottom of it.

                      /usr/local/lib/php/ had an old date named directory named similar to the new date named directory 20250925

                      In that old directory was one file which was ftp.so which I think may have been left behind on the upgrade.

                      At first I tried to copy the file from the old directory to the 20250925 directory. But php then complained about ftp.so not being compiled by 20250925 and pfsense went unstable so please don't do this.

                      What worked is:
                      I went into the package installer and simply reinstalled the packages. I didn't remove them but just pressed reinstall and away they went so there was no reconfig to do.

                      After that, the old date named directory in /usr/local/lib/php/ was gone and ftp.so was now present in /usr/local/lib/php/20250925 and all was well.

                      I can't be sure what package fixed it as I didn't do them individually and checked after each one. But the re-install of them was easy and fixed it.

                      A 1 Reply Last reply Reply Quote 0
                      • A Offline
                        andy7474 @lou1z
                        last edited by

                        @lou1z that makes sense. This morning I started uninstalling packages starting with the ones least important to me. When I uninstalled acme, the error went away. Based on what you've said, I could probably reinstall it and everything will be fine. It might be good practice to reinstall all packages after an update, or maybe uninstall them first then reinstall after.

                        L GertjanG 2 Replies Last reply Reply Quote 0
                        • L Offline
                          lou1z @andy7474
                          last edited by lou1z

                          @andy7474 I was a little concerned about having to redo the config for the packages so didn't want to uninstall packages and redo the config.
                          So I just went into the package manager and pressed reinstall so there was no re-configuring to do.
                          And I agree with you as I think it may have been ACME that caused it but can't be sure.

                          1 Reply Last reply Reply Quote 0
                          • GertjanG Offline
                            Gertjan @andy7474
                            last edited by Gertjan

                            @andy7474 said in Upgrade to 2.9.0 leads to (Cannot open "/usr/local/lib/php/20250925/ftp.so"):

                            When I uninstalled acme, the error went away

                            Cool.
                            Someone could have told me that this :

                            said in Upgrade to 2.9.0 leads to (Cannot open "/usr/local/lib/php/20250925/ftp.so"):

                            "ftp" is very ancient, and afaik not used by pfSense itself.
                            I surely not used by "acme.sh".

                            is close to BS.
                            I'll fact check myself :

                            58fdba6d-e347-43ff-88b1-28e246db0517-image.png

                            so re installing acme.sh would put the PHP version version 8.5.7 in place.
                            Clear enough, acme.sh does include php-ftp, probably for the web root DNS API.

                            @andy7474 said in Upgrade to 2.9.0 leads to (Cannot open "/usr/local/lib/php/20250925/ftp.so"):

                            It might be good practice to reinstall all packages after an update, or maybe uninstall them first then reinstall after.

                            That's the official method of upgrading pfSense : remove installed packages before, upgrade pfSense, install the packages again and these pull in their individual updated dependencies as needed.
                            For some reason, while upgrading acme.sh, one of its dependencies, php85-ftp-8.5.7, wasn't upgraded. So even if a correct "php85-ftp" = ftp.so was found, it was not the correct binary version (every minor PHP major and upgrade creates new extension libraries, and a given PHP version inly loads the correct PHP extension library version, not a newer or older one, even if the name is the same.

                            The base name of the PHP extension folder is correct : 20250925 :

                            52b53131-ed97-4496-839e-755e8f6239b1-image.png

                            Btw : removing the package won't remove the settings from the config, so ones re installed, all settings are retrieved.
                            The thing is, I actually never do that anymore. Stuff gets upgraded anyway.
                            Anyway, case closed ^^

                            No "help me" PM's please. Use the forum, the community will thank you.

                            L 1 Reply Last reply Reply Quote 0
                            • L Offline
                              lou1z @Gertjan
                              last edited by

                              @Gertjan Btw : removing the package won't remove the settings from the config, so ones re installed, all settings are retrieved.
                              The thing is, I actually never do that anymore. Stuff gets upgraded anyway.

                              I didn't know this so thanks for the info. Issue was definately in the packages as everything else went smoothly whilst performing the upgrade. Something for me to be aware of in the future. Thank you.

                              1 Reply Last reply Reply Quote 0
                              • J Offline
                                Justaguy 0
                                last edited by

                                This post is deleted!
                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post
                                Copyright 2026 Rubicon Communications LLC (Netgate). All rights reserved.
                                Privacy Policy · Cookie Policy