簡體   English   中英

如何為 XAMPP 安裝 PECL HTTP 擴展?

[英]How to install PECL HTTP extension for XAMPP?

我想在我的 XAMPP 環境(操作系統是 Windows)中安裝 PHP PECL HTTP 擴展。 我試圖將 php_http.dll 擴展名的多個變體添加到我的 ext 目錄中,並將 extension=php_http.dll 添加到 php.ini 文件中。 然而,當我去啟動 Apache 服務時,它會拋出某種錯誤。

很明顯我做錯了什么,但我不知道是什么。 我能找到的最后一個相關問題已經過時了 5 年。 有人知道如何安裝它嗎?

你可以試試:

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 '擴展'。 這些擴展之一是連接到 Oracle 數據庫的 PHP OCI8。

*

安裝 XAMPP:D: 驅動器。

下載“ XAMPP for Windows ”並按照安裝程序向導進行操作。 我安裝到我的D: 驅動器中。

通過 XAMPP 控制面板啟動 Apache 服務器。

XAMPP 控制面板的屏幕截圖

通過瀏覽器訪問http://localhost/dashboard/phpinfo.php可以查看已安裝 PHP 的架構和線程安全模式。 請注意,這是已安裝 PHP 的架構,而不是您機器的架構。 可以在 x64 機器上運行 x86 PHP。

在此處輸入圖片說明

Oracle OCI8 預裝在 XAMPP 中,但如果您需要更新版本,您可以從pecl.php.net下載更新的 OCI8 PECL 包。

選擇一個 OCI8 版本並根據體系結構和線程安全模式選擇 DLL。 例如,如果 PHP 是 x86 並且啟用了線程安全,請下載“7.2 線程安全 (TS) x86”。 然后將“D:\\xampp\\php\\ext\\php_oci8_12c.dll”替換為來自 OCI8 PECL 包的新“php_oci8_12c.dll”。

PECL OCI8下載頁面截圖

編輯“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”。

Oracle Instant Client 下載頁面的屏幕截圖

將文件解壓縮到“D:\\Oracle”等目錄中。 將創建子目錄“D:\\Oracle\\instantclient_12_2”。

將此子目錄添加到 PATH 環境變量。 您可以在控制面板 -> 系統 -> 高級系統設置 -> 高級 -> 環境變量 -> 系統變量 -> PATH 中更新 PATH。 在我的示例中,我將其設置為“D:\\Oracle\\instantclient_12_2”。

重新啟動 Apache 服務器並再次檢查 phpinfo.php 頁面。 它顯示 OCI8 擴展已成功加載。

顯示 OCI8 部分的 PHP 配置頁面的屏幕截圖

如果您還從終端窗口運行 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 以進一步研究。
如果您有任何問題,請在評論中發表。 如果有不兼容或錯誤的地方,請務必發表評論! 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM