Php 如何为XAMPP安装PECL HTTP扩展?

Php 如何为XAMPP安装PECL HTTP扩展?,php,windows,http,xampp,pecl,Php,Windows,Http,Xampp,Pecl,我想在我的XAMPP环境(操作系统是Windows)中安装PHP PECL HTTP扩展。我尝试将多个php_http.dll扩展名的变体添加到我的ext目录中,并将extension=php_http.dll添加到php.ini文件中。然而,当我启动Apache服务时,它抛出了某种错误 很明显我做错了什么,但我不知道是什么。我能找到的最后一个相关问题是5年过去了。有人知道如何安装吗?您还必须加载raphf和propro: 。。。和iconv、哈希和spl。您可以尝试: For pecl

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


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

您还必须加载raphf和propro:

。。。和iconv、哈希和spl。您可以尝试:

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.
这篇文章展示了如何在Windows上安装XAMPP,以运行连接到远程Oracle数据库的PHP应用程序。 *

XAMPP是一个开源软件包,包含Apache、PHP和许多PHP “扩展”。其中一个扩展是PHP OCI8,它连接到 Oracle数据库

*

安装XAMPP:D:drive。

下载“”并按照安装程序向导进行操作。我已安装到我的D:驱动器。

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

通过浏览器访问,查看已安装PHP的体系结构和线程安全模式。请注意,这是安装的PHP的体系结构,而不是您机器的体系结构。可以在x64机器上运行x86PHP

Oracle OCI8预先安装在XAMPP中,但如果您需要更新的版本,可以从下载更新的OCI8 PECL包

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

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

extension=oci8_12c

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


  • 从下载Oracle Instant Client Basic软件包
选择与PHP一致的正确体系结构。对于Windows x86,请从Windows 32位页面下载“instantclient-basic-nt-12.2.0.1.0.zip”

在诸如“D:\Oracle”的目录中提取文件。将创建子目录“D:\Oracle\instantclient\u 12\u 2”

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

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

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

要运行第一个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";
 
?>

你能发布一些错误吗?嗨。。。安迪·霍尔和@coderama发送新闻。。。明白了吗?我想有个好消息。。。