Upgrade to 2.9.0 leads to (Cannot open "/usr/local/lib/php/20250925/ftp.so")
-
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 -
@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.soand 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.
-
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?
-
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...
-
I've got the same problem after the upgrade. Is there somewhere I can submit the error report?
-
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 -
@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
-
@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.
-
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.
-
@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.
-
@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. -
@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 :
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 :

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 ^^ -
@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.
-
This post is deleted!
Privacy Policy · Cookie Policy