簡體   English   中英

我可以使用 MS SQL 服務器作為 Joomla 的后備數據庫嗎?

[英]Can I use MS SQL Server as the backing database for Joomla?

Joomla is an open-source CMS written in PHP, that originally was based on Apache, MySQL, and Linux.

現在它在 IIS + Windows 上運行。

我可以將它安裝在我的 Windows 機器上,使用 MS SQL 服務器而不是 MySQL?

在此處輸入圖像描述

我看過一個視頻顯示一個人這樣做。 但是當我下載 joomla 安裝程序時,無法將其安裝到 MS SQL 上。

可能但很難完成,並且沒有官方驅動程序。 你可以在這里找到更多信息

是的,您只需要安裝正確版本的 Joomla。

http://joomlacode.org/gf/project/joomlaonanydb

Joomla 1.6 RC1

在使用 joonla+SQL Server 一段時間后進行了編輯

是的,您可以在 SQL 服務器上運行 joomla,有點。 但是有一些重要的警告。

  • 您必須下載修改后的 joomla 安裝。 我發現的最好的是來自 Hooduku 的 Sudhi 發布的修改后的 v1.6 joomla 直接鏈接在這里 這是一次性的。

  • 我發現沒有支持 SQL 服務器的 joomla 的當前(v1.7)版本。

  • 據我所知,沒有承諾會持續維護這件事。 我查看了 joomla 發布計划,並沒有看到 SQL 服務器支持作為承諾。

  • 最后,可能也是最重要的,它不起作用。

怎么不工作? 讓我來計算一下。

joomla 源代碼中散布着查詢,用於檢索模塊名稱、文章內容、評級等內容。 大多數 SQL 代碼適用於 MySQL,而不適用於 SQL 服務器。 “multidb”修改版修改最多? 其中許多查詢允許使用 SQL 服務器。 但是,很多東西都被忽略了。 例如:我找到了一個查詢,現在無法回憶,它使用 LENGTH 來獲取字符串的長度,而不是 SQL 服務器 function LEN。 這導致查詢中斷,無論我試圖做什么,都沒有發生。

另一種情況(我再一次忘記了發生這種情況的確切時間)與插入一行有關。 joomla 代碼使用類似INSERT INTO table column1=4 column2=18的語法。 實際上,現在我輸入了這個,我准確地記得那個表——它是#__modules_menu表。 插入行的正確 SQL 服務器語法INSERT INTO table (column1, column2) VALUES(4, 128) 一個足夠簡單的改變,但你需要通過 joomla 的 PHP 代碼來弄清楚在哪里制作它。

還有其他無數錯誤出現,主要與格式錯誤的 SQL 語法有關。 將列視為數字,而實際上它是字符串。 ORDER BY子句使用錯誤的表別名。

我發現上傳一個新的模板是可行——模板被解壓並被識別,沒有報告錯誤。 但是模板 styles 表沒有得到更新,無論出於何種原因,因此在上傳后,該模板實際上在管理面板中不可用。 如果我手動在#__template_styles 中插入一個條目,那么模板就可用了。

joomla 下載的專用 label 上的名稱我用的是“RC1”,但它不是發布質量,任憑想象。


如果你嘗試這個,你還需要一堆其他的先決條件。

  • 當然是 PHP。 我用的是 v5.3.6
  • 用於 PHP 的 MS SQL 服務器驅動程序——我使用 VC9 運行時獲取了用於單線程使用的驅動程序構建。 這需要與我的 php 版本相匹配。 見下文。 我不得不將 php_sqlsrv_53_nts_vc9.dll 和 php_pdo_sqlsrv_53_nts_vc9.dll 放入 Z2FEC392304A5C29BAC78473 的 ext/ 目錄中。
  • SQL 服務器或SQL 服務器 Express(免費版) 您可能需要應用服務包。

PHPinfo 頁面顯示 VC 運行時版本和線程安全參數在此處輸入圖像描述

暫無
暫無

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

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