我正在尝试在Windows Server 2016(64位)上加载Firebird数据库的pdo驱动程序。
配置是下一个:
作为证明: phpinfo result
我可以执行PHP文件。现在,我想安装PDO驱动程序,以方便地连接到firebird数据库。
我按照互联网上发现的步骤操作(在extension=php_pdo_firebird.dll
中取消注释php.in
,并在fb.client.dll
和C/apache24/bin
中添加c/php
),并检查PDO是否正确使用以下命令安装:
php -m|findstr -i pdo_
哪个显示给我:PDO_Firebird
但是,当我在test.php
文件中调用phpinfo函数时,它没有显示出已加载了任何PDO驱动程序。它说:
PDO drivers : no values.
这很奇怪,因为对于PHP,驱动程序在那里。 因此,在对互联网进行一些研究之后,我尝试了以下无效的操作:
C/PHP
和C:/Apche24/bin
fbclient.dll
,C:/Apache/bin
甚至C:/PHP
中复制C:/PHP/ext
php.ini
中取消注释行"extension_dir = "ext""
"ext"
更改为"C:/PHP/ext"
当尝试使用php文件连接到firedbird数据库时,出现错误:
致命错误:未捕获的PDOException:在C:\ Apache24 \ htdocs \ test3.php:10中找不到驱动程序 堆栈跟踪:#0 C:\ Apache24 \ htdocs \ test3.php(10):PDO-> __ construct('firebird:dbname ...','SYSDBA','masterkey',Array)#1 {main}被抛出第10行的C:\ Apache24 \ htdocs \ test3.php
我当然不能使用PDO驱动程序,而不能使用FB / IB扩展,但是我不想这样做。
欢迎任何帮助或建议。
对于fb.client.dll来说,只是拼写错误,实际上文件名为fbclient.dll。
对于php_interbase.dll,我将其保存在php / ext文件夹中。我也尝试在php.ini文件中添加extension = php_interbase.dll,现在当我输入cmd时: php -m | findstr -i pdo_ 我得到接下来的事情: -PDO -PDO_Firebird
但是仍然使用phpinfo()函数,即使重新启动Apache后,我也无法获得PDO驱动程序的值。
php --ini显示以下内容: 配置文件(php.ini)路径:C:\ Windows 加载的配置文件:C:\ PHP \ php.ini 扫描以下位置的其他.ini文件:(无) 已解析其他.ini文件:(无)
我编辑的php.ini的路径是C:\ PHP \ php.ini
答案 0 :(得分:0)
解决了! 伙计们会嘲笑我。我到处都在寻找问题,但实际上问题是如此简单,以至于我看不到它。在httpd.conf中,当在文件末尾添加PHPIniDir“ c:/ php”时,我实际上添加了PHPIniDir“ c / php”。多可惜 !但是终于抓住了。谢谢您的帮助。
答案 1 :(得分:0)
就我而言,原因稍微复杂一些。
给定:
解决方案是不仅将 fbclient.dll(当然是 64 位)复制到 PHP 目录中,还复制到 Apache/bin 中!