Platform: Windows 8.1 Pro 64bit
Installed components; Firebird 2.5 (64bit), Ampps 3.5
Using: PHP 5.6 (32bit)
Before upgrading to Ampps 3.5, I was using Ampps 2.5 with Firebird 2.5 and PHP 5.4, my Firebird code was working. Upgrading Ampps broke the code. Since I couldn't change PHP version, I uinstalled Ampps completely and did a clean install of Ampps 3.5
Now, with PHP 5.4 which I was using, OpenSSL won't work. (Couldn't load dynamic library php_openssl.dll). I had to change PHP version to 5.6 and extract php_openssl.dll from original PHP setup from php.net to make it work. Everything is the same, no configuration changes made; OpenSSL is now working with PHP 5.6 and doesn't work with PHP 5.5 or PHP 5.4.
Whatever, I am OK with PHP 5.6 for now. But couldn't make PDO_Firebird work with either version. Here is the PHP startup error log;
Code Couldn't load dynamic library of php_interbase.dll, %1 is not a valid Win32 application
Couldn't load dynamic library of php_pdo_firebird.dll, %1 is not a valid Win32 application
Copying any files from Firebird to somewhere else isn't the concern now, because everything is in the same place and it was working before I upgraded to Ampps 3.5. But nevertheless, I copied fresh 32bit fbclient.dll both from my Firebird installation in program files and from a clean setup downloaded from Firebird web site. Copying that files again to Windows, System32, SysWow64 and root PHP folders is no use either. Copying 64bit version of the file or renaming it to gsd32.dll for compatibility brought no luck either.
So much weirdly, PHP cli and PHP Apache module are loading the same php.ini file but are producing different results.
phpinfo() has no signs of Firebird, PDO_Firebird or anything similar at all and it prints:
Code
Loaded configuration file: E:\Server\php\php.ini
...
PDO Drivers mysql, sqlite
Running php --ini, php -m, php -i | find "firebird" prints;
Code
Loaded Configuration File: E:\Server\php\php.ini
...
PDO_Firebird
...
PDO Drivers firebird, mysql, sqlite
Really what's going on?! CLI says that firebird driver is available while phpinfo() says it's not! Both rely on the same php.ini.
Script run on browser throws an exception saying Firebird driver is not available; while CLI can successfuly connect to Firebird server but it produces a warning like;
Code Warning: Module 'PDO_Firebird' already loaded in Unknown on line 0
This has got my 2 days and I am stuck, my business is slowed down because my integrations doesn't work; I have to do lots of things manually just because of this. So please, any ideas?
|