【问题标题】:How to install PECL HTTP extension for XAMPP?如何为 XAMPP 安装 PECL HTTP 扩展?
【发布时间】:2015-08-11 03:46:46
【问题描述】:

我想在我的 XAMPP 环境(操作系统是 Windows)中安装 PHP PECL HTTP 扩展。我试图将 php_http.dll 扩展的多个变体添加到我的 ext 目录中,并将 extension=php_http.dll 添加到 php.ini 文件中。然而,当我启动 Apache 服务时,它会抛出某种错误。

很明显我做错了什么,但我不知道是什么。我能找到的最后一个相关问题是已经过时了 5 年。有人知道如何安装吗?

【问题讨论】:

  • 你能发布一些错误吗?
  • 嗨……Andy Hall 和@coderama 发送消息……你明白了吗?我想有好消息...

标签: php windows http xampp pecl


【解决方案1】:

【讨论】:

    【解决方案2】:

    你可以试试:

    For pecl.
    Look in xampp\php for the pecl.bat file
    Open a command console window in this folder and issue the pecl.bat command and it will give a list of commands to use.
    

    【讨论】:

      【解决方案3】:

      这篇文章展示了如何在 Windows 上安装 XAMPP 以运行连接到远程 Oracle 数据库的 PHP 应用程序。

      *

      XAMPP 是一个开源包,包含 Apache、PHP 和许多 PHP '扩展'。其中一个扩展是 PHP OCI8,它连接到 甲骨文数据库。

      *

      要安装 XAMPP:D:驱动器。

      下载“XAMPP for Windows”并按照安装向导进行操作。我安装到我的 D: 驱动器中。

      通过 XAMPP 控制面板启动 Apache 服务器。

      通过浏览器访问http://localhost/dashboard/phpinfo.php,查看已安装 PHP 的架构和线程安全模式。请注意,这是已安装 PHP 的架构,而不是您机器的架构。可以在 x64 机器上运行 x86 PHP。

      Oracle OCI8 预装在 XAMPP 中,但如果您需要更新版本,可以从 pecl.php.net 下载更新的 OCI8 PECL 包。

      选择一个OCI8版本,根据架构和线程安全模式选择DLL。例如,如果 PHP 是 x86 并且启用了线程安全,请下载“7.2 Thread Safe (TS) x86”。然后将“D:\xampp\php\ext\php_oci8_12c.dll”替换为 OCI8 PECL 包中的新“php_oci8_12c.dll”。

      编辑“D:\xampp\php\php.ini”并取消注释“extension=oci8_12c”行。确保“extension_dir”设置为包含 PHP 扩展 DLL 的目录。例如,

      extension=oci8_12c
      
      extension_dir="D:\xampp\php\ext"
      



      • OTN. 下载 Oracle Instant Client Basic 软件包

      选择正确的架构以与 PHP 保持一致。对于 Windows x86,请从 Windows 32 位页面下载“instantclient-basic-nt-12.2.0.1.0.zip”。

      将文件解压到“D:\Oracle”等目录中。将创建一个子目录“D:\Oracle\instantclient_12_2”。

      将此子目录添加到 PATH 环境变量中。您可以在控制面板 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量 -> 系统变量 -> PATH 中更新 PATH。在我的示例中,我将其设置为“D:\Oracle\instantclient_12_2”。

      重新启动 Apache 服务器并再次检查 phpinfo.php 页面。说明OCI8扩展加载成功。

      如果您还从终端窗口运行 PHP,请确保关闭并重新打开终端以获取更新后的 PATH 值。

      要运行您的第一个 OCI8 应用程序,请在 XAMPP 文档根目录“D:\xampp\htdocs\test.php”中创建一个新文件。它应该包含:

      <?php
       
      error_reporting(E_ALL);
      ini_set('display_errors', 'On');
       
      $username = "hr";                  // Use your username
      $password = "welcome";             // and your password
      $database = "localhost/orclpdb";   // and the connect string to connect to your database
       
      $query = "select * from dual";
       
      $c = oci_connect($username, $password, $database);
      if (!$c) {
          $m = oci_error();
          trigger_error('Could not connect to database: '. $m['message'], E_USER_ERROR);
      }
       
      $s = oci_parse($c, $query);
      if (!$s) {
          $m = oci_error($c);
          trigger_error('Could not parse statement: '. $m['message'], E_USER_ERROR);
      }
      $r = oci_execute($s);
      if (!$r) {
          $m = oci_error($s);
          trigger_error('Could not execute statement: '. $m['message'], E_USER_ERROR);
      }
       
      echo "<table border='1'>\n";
      $ncols = oci_num_fields($s);
      echo "<tr>\n";
      for ($i = 1; $i <= $ncols; ++$i) {
          $colname = oci_field_name($s, $i);
          echo "  <th><b>".htmlspecialchars($colname,ENT_QUOTES|ENT_SUBSTITUTE)."</b></th>\n";
      }
      echo "</tr>\n";
       
      while (($row = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
          echo "<tr>\n";
          foreach ($row as $item) {
              echo "<td>";
              echo $item!==null?htmlspecialchars($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;";
              echo "</td>\n";
          }
          echo "</tr>\n";
      }
      echo "</table>\n";
       
      ?>
      

      您需要编辑此文件并设置您的数据库用户名、密码和连接字符串。如果您使用的是 Oracle 数据库 XE,则连接字符串应为“localhost/XE”。

      也可以更改 SQL 查询。目前它查询每个用户都有的特殊 DUAL 表。

      使用http://localhost/test.php 在浏览器中加载测试程序。输出将是名为“DUMMY”的列中的单个值“X”。



      ---- 注意


      也许这会有所帮助,但这个问题在 XAMPP 中非常复杂。我在 xampp 中听到过一些关于这个问题的报告,我建议免费测试 VPS 以进一步研究。
      如果您有任何问题,请在 cmets 中发帖。 如果有不兼容或错误的地方,请务必发表评论!谢谢

      【讨论】:

        猜你喜欢
        • 2020-09-21
        • 2011-09-19
        • 2010-10-08
        • 2023-04-08
        • 1970-01-01
        • 2011-09-21
        • 1970-01-01
        • 2014-01-29
        • 2017-05-23
        相关资源
        最近更新 更多