Могу ли я использовать MS SQL Server в качестве резервной базы данных для Joomla? - PullRequest
0 голосов
/ 12 августа 2011

Joomla - это CMS с открытым исходным кодом, написанная на PHP, изначально основанная на Apache, MySQL и Linux.

Теперь она работает на IIS + Windows.

Могу ли я установить его на свой компьютер с Windows, используя MS SQL Server вместо MySQL?

enter image description here

Я видел видео , показывающее человека, делающего это.Но когда я загружаю установщик joomla, его невозможно установить на MS SQL.

Ответы [ 3 ]

0 голосов
/ 12 августа 2011

Да, вам просто нужно установить правильную версию Joomla.

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

Joomla 1.6 RC1

0 голосов
/ 12 августа 2011

отредактировано, проведя некоторое время с joonla + SQL Server .

Да, вы можете запустить joomla на SQL Server, вроде.Но есть несколько больших предостережений.

  • Вы должны загрузить модифицированную установку Joomla.Лучшим, что я нашел, была модифицированная версия 1.6 Joomla , опубликованная Судхи из Hooduku .Прямая ссылка здесь .Это единовременное решение.

  • На данный момент нет найденной версии v1.7 (joomla), поддерживающей SQL Server.

  • Насколько я могу судить, нет никаких обязательств по постоянному обслуживанию этой вещи.Я посмотрел план выпуска Joomla и не рассматривал поддержку SQL Server как обязательство.

  • Наконец, и, возможно, самое главное, это не работает.

Как не работает?Позвольте мне сосчитать пути.

По всему исходному коду Joomla разбросаны запросы для получения таких вещей, как имена модулей, содержимое статей, рейтинги и т. Д.Большая часть кода SQL работает с MySQL, а не с SQL Server.Модифицированная версия "multidb" модифицирует больше всего?многие из этих запросов позволяют вещам работать с SQL Server.Но многие из этих вещей были упущены.Например: я нашел запрос, не могу вспомнить сейчас, который использовал LENGTH для получения длины строки вместо функции SQL Server LEN.Это привело к сбою запроса, и что бы я ни пытался сделать, ничего не произошло.

Другой случай (опять же, я точно забыл, когда это произошло) был связан со вставкой строки.Код Joomla использует синтаксис, такой как INSERT INTO table column1=4 column2=18.На самом деле теперь, когда я набираю это, я вспоминаю именно таблицу - это была таблица #__modules_menu. правильный синтаксис SQL Server для вставки строки: INSERT INTO table (column1, column2) VALUES(4, 128).Достаточно простое изменение, но вам нужно скрыться в PHP-коде Joomla, чтобы выяснить, где это сделать.

Были и другие несметные ошибки, в основном связанные с искаженным синтаксисом SQL.Обрабатывать столбец как число, когда он на самом деле является строкой.Использование неправильного псевдонима таблицы для предложения ORDER BY.

Я обнаружил, что загрузка нового шаблона вроде сработала - шаблон был распакован и распознан, ошибок нет.Но таблица стилей шаблона не получила обновления по какой-либо причине, поэтому шаблон фактически не был доступен в административных панелях после загрузки.Если я вручную вставил запись в #__template_styles, то шаблон стал доступен.

Название на этикетке специальной загрузки Joomla, которую я использовал, говорит "RC1", но это не качество выпуска, как ни крути.


Если вы попробуете это, вам также понадобится множество других предварительных условий.

  • PHP, конечно.Я использовал v5.3.6
  • драйверы MS SQL Server для PHP - я собрал сборку драйвера для однопоточного использования со средой выполнения VC9.Это должно соответствовать моей версии PHP.Увидеть ниже.Мне пришлось зайти в php_sqlsrv_53_nts_vc9.dll и php_pdo_sqlsrv_53_nts_vc9.dll в каталог ext / для PHP.
  • SQL Server или SQL Server Express (бесплатная версия) .Вам может потребоваться применить пакеты обновления.

На странице PHPinfo показана версия среды выполнения VC и параметры безопасности потока enter image description here

0 голосов
/ 12 августа 2011

Возможно, но очень сложно, и нет официального драйвера.Вы можете найти больше информации здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...