【问题标题】:Install ingres extension for php on my WAMP server在我的 WAMP 服务器上为 php 安装 ingres 扩展
【发布时间】:2011-10-07 16:19:15
【问题描述】:

我有一台开发电脑,在windows下运行。

对于一个项目,我要创建一个必须连接到 Ingres 数据库服务器的 php 网站。

所以我安装了 wamp,我安装了 ingres(服务器和客户端,在我的本地机器上)。

我在C:\wamp\bin\php\php5.3.5\ext 文件夹中添加了我在他们网站上找到的库(php_ingres.dll),并在配置文件中添加了一行“extension=php_ingres.dll”。

我关闭 wamp 并重新启动它,然后我重新启动服务器,我现在在 wamp 菜单中看到一个复选标记,表明 php_ingres 现在已激活。但是当我进入服务器的欢迎页面时,我没有看到这个扩展已加载。如果我进入 php 信息页面,我在配置命令中看不到任何 Ingres 条目。

我只是找不到任何指示如何执行此操作的post/tutorial/...,因此我们将不胜感激!

谢谢!

编辑:我做了一个小测试,看看我是否可以连接到 Ingres 数据库:

    <?php
$link = ingres_connect("localhost", "demodbtest", "demodbtest")  or die("Connexion impossible");
echo "Connexion réussie";

$result = ingres_query($link,"select * from airline");

while ($row = ingres_fetch_array($result)) {
    echo $row["al_iatacode"];  // utilisation du tableau associatif
    echo $row["al_name"];
    echo $row["al_ccode"];          // utilisation du tableau à indices numériques
    echo "</br>";
}
ingres_close($link);
?>

我得到这个错误:

( ! ) 致命错误:调用未定义的函数 ingres_connect() C:\wamp\www\tests\index.php 在第 2 行

关于我的安装的一些信息: 我有一个 32 位的 windows 7 pro Wampserver 2.1 (http://sourceforge.net/projects/wampserver/files/WampServer%202/WampServer%202.1/WampServer2.1e-x32.exe/download) 阿帕奇 2.2.17
PHP 5.3.5
Ingres 10.1.0 社区版(在这里下载:http://esd.ingres.com/product/Community_Projects/Ingres_Database/Windows_32-Bit/Ingres_10.1_Build_121/ingres-10.1.0-121-gpl-win-x86-NoDoc.zip/http) PHP驱动在这里下载:http://esd.ingres.com/product/drivers/PHP/Windows_32-Bit/PHP_Driver

【问题讨论】:

  • 好的,致命错误表示扩展未加载。您使用的是哪个 Windows 版本,请查看 32 位或 64 位。该扩展必须与您的 PHP 版本兼容,因此请添加指向您下载 WAMP 和扩展的站点的链接。
  • 我在主帖中添加了这些信息
  • 请仔细检查您是否编辑了正确的 PHP.ini 文件。然后启用错误记录以使 PHP 将错误写入日志文件。这也将记录启动错误。如果 PHP 抱怨加载扩展,请检查日志文件。有时扩展依赖于其他扩展,因此它们在 PHP.ini 中出现的顺序很重要(这里不知道 ingres 的任何细节,抱歉,只是这么说)。希望这可以帮助您领先一步。
  • 我有 error_reporting = E_ALL 并且我的 extension=php_ingres.dll 位于扩展引用的最后一行:/ (当我尝试显示它时,我的日志文件不存在) wamp :s)
  • 启动错误只会出现在 php 错误日志文件中。您可能需要对其进行配置。这是您的 php.ini 中的设置。搜索error_log 并给它一个类似c:\phperror.log 的路径。然后你应该找到那个文件。

标签: php wamp wampserver php-extension ingres


【解决方案1】:

问题是我没有在本地安装 ingres 客户端,所以看来这个库没有它就无法工作

【讨论】:

    【解决方案2】:

    仔细检查您的extension_dir 设置以及正在使用的实际php.ini 文件。如果通过 Apache(或 IIS)在脚本中执行 phpinfo(),从命令行调用 php.exe -i 可能不会给出相同的输出。事实上http://www.wampserver.com/en/faq.php 表示有 3 个潜在的php.ini 脚本。

    【讨论】:

    • 当我点击 wamp 菜单中的 php.ini 项时,我打开了 wamp 显示的那个,所以我认为它是好的(并且 wamp 看到它已检查)
    • 另外,我在同一个配置文件中添加了另一个扩展名(支持mssql),它可以工作,所以我想我正在编辑好文件
    • 所以如果你执行 'php -c -m' 你看不到 ingres 列出来吗?
    • Microsoft Windows [版本 6.1.7600] 版权所有 (c) 2009 Microsoft Corporation。 Tous droits réservés。 C:\Users\julien>C:\wamp\bin\php\php5.3.5\php.exe -c C:\wamp\bin\php\php5.3.5\php.ini -m [PHP 模块] bcmath calendar com_dotnet核心 ctype date dom ereg filter ftp gd hash iconv json libxml mbstring mcrypt mhash mysql mysqli mysqlnd odbc pcre PDO pdo_mysql pdo_sqlite Phar Reflection session SimpleXML SPL sqlsrv standard tokenizer wddx xdebug xml xmlreader xmlwriter zip zlib [Zend Modules] Xdebug C:\Users\julien>
    • 所以不,没有加载入口
    【解决方案3】:

    要实际测试扩展是否已加载,您也可以调用其中一个函数。如果加载了扩展,您应该不会因为缺少的功能而收到致命错误。这可能是最快的检查之一。

    另一个检查是使用extension_loaded *PHP Manual**,它将为您提供所有已加载扩展的列表。有关详细信息,请参阅上面的 PHP 手册链接。

    配置行

    configure 行将不会显示 ingres 扩展,因为它尚未被编译。这完全没问题,因为您将它作为扩展 (.dll) 加载,因此它不是 php.exe 的一部分。这就是为什么您在配置行中看不到它的原因。

    在 phpinfo() 页面上找到 ingres

    phpinfo() 页面上,使用浏览器中的搜索功能(通常为CTRL+F)并尝试找到单词ingres。如果已加载,您应该找到一个显示扩展默认设置的部分。

    以下是 xdebug 扩展的示例屏幕截图。对于 ingres,这可能看起来很相似:

    图片来自:Launching xdebug in Eclipse stuck at 57% - How to trouble-shoot?

    【讨论】:

    • 很高兴知道,但我能找到“ingres”的唯一地方是路径中的环境变量。我忘了说我做了一个小测试,我现在编辑我的帖子
    • 好的,你是从命令行调用的。这可能更容易/更快地找出问题所在。 php --re ingres 也应该给你一个错误,直到扩展可用。使用php --ini 显示ini 文件并检查您的文件是否在其中。如果是,则表示未加载扩展程序,这可能是配置错误或无法加载扩展程序。 php 错误日志很有帮助。
    • 我仔细检查了,我只有一个php.ini文件,和php.exe在同一个文件夹中(用于CLI和web执行)
    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 2014-06-19
    • 2014-07-20
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多