【发布时间】:2018-07-05 14:56:21
【问题描述】:
我正在尝试在 windows server 2016(64 位)上加载 firebird 数据库的 pdo 驱动程序。
接下来是配置:
- 32 位 Firebird 已成功安装。
- Apache 2.4 已成功安装(Apachelounge 二进制文件,32 位)。
- Apache 配置正确设置(安装在 C:/Apache24 中)
- PHP 32 位已成功安装(在 C:/PHP 中)作为带有 mod_php 的模块(apache 处理程序 2.0)。
作为证明: phpinfo result
我可以执行 PHP 文件。现在我想安装 PDO 驱动程序,以便轻松连接到 firebird 数据库。
我按照在互联网上找到的程序(取消注释 php.in 中的 extension=php_pdo_firebird.dll 并在 C/apache24/bin 和 C/apache24/bin 和 c/php 中添加 fb.client.dll)并检查是否使用此命令正确安装了 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 文件连接到 firebird 数据库时出现错误:
致命错误:未捕获的 PDOException:在 C:\Apache24\htdocs\test3.php:10 中找不到驱动程序 堆栈跟踪:#0 C:\Apache24\htdocs\test3.php(10): PDO->__construct('firebird:dbname...', 'SYSDBA', 'masterkey', Array) #1 {main} 抛出C:\Apache24\htdocs\test3.php 第 10 行
当然我不能使用 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
【问题讨论】:
-
你是加了
fbclient.dll,还是真的叫fb.client.dll(这是错的)?你也有php_interbase.dll吗? -
你编辑的
php.ini的路径是什么?php --ini显示了什么? -
您可以尝试在您的 php 文件夹中运行 pgp-cgi.exe 文件,看看它是否会显示任何错误?这通常是查看您的驱动程序 (.dll) 是否丢失和/或它们是否设置了不正确的路径的最简单方法
-
我编辑了最初的帖子来回答你。对于 php-cgi.exe,当我运行它时,它什么也不显示
-
已解决!伙计们会笑话我的。我到处寻找问题,但实际上问题是如此简单,以至于我看不到它。在 httpd.conf 中,在文件末尾添加 PHPIniDir "c:/php" 时,我实际上添加了 PHPIniDir "c/php"。真可惜 !但最后还是抓住了。感谢您的帮助。如何将此标记为“已解决”?
标签: php apache pdo driver firebird