[英]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 年。 有人知道如何安裝它嗎?
您還必須加載 raphf 和 propro:
...還有 iconv、hash 和 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.
*
XAMPP 是一個開源包,其中包含 Apache、PHP 和許多 PHP '擴展'。 這些擴展之一是連接到 Oracle 數據庫的 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 線程安全 (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"
選擇正確的架構以與 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):" ";
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.