, когда поднял этот вопрос
. Наша компания разработала набор программного обеспечения для службы коротких сообщений на стороне SP на основе протокола SGIP компании China Unicom для предоставления услуги SMS China Unicom 130. Эта система работает под управлением Windows 2000. База данных использует Microsoft SQLServer2000 и уже некоторое время работает нормально. В последнее время, чтобы предоставить некоторую информацию пользователям коротких сообщений в Интернете, необходимо читать и записывать базу данных SQL Server из Интернета. Первоначально лучшим партнером базы данных SQL Server должен быть серверный сценарий Microsoft IIS ASP, но. наша компания всегда считала, что стабильность и безопасность IIS+ASP неудовлетворительны. Я надеюсь использовать сценарии PHP для чтения и записи SQL Server под Linux.
Анализ проблемы
Изначально не было проблем с чтением и написанием PHP-скриптов для SQL Server. Он прекрасно работает под Apache для Windows и Windows IIS. Как правило, его можно подключить через клиент ODBC или SQLServer, которые уже готовы. под виндой. Однако готовых ODBC и SQLServer Client под Linux не существует и нам необходимо установить их самостоятельно.
Решение проблемы
1. Сопутствующее программное обеспечение
freetds Источник: ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz
Это программное обеспечение может соединять базы данных MS SQLServer и Sybase с использованием Linux и Unix.
2. Этапы установки и настройки
Шаг 1. Скомпилируйте и установите freetds:
После получения файла freetds-0.53.tgz
cp freetds-0.53.tgz /tmp/ (скопируйте пакет freetds в каталог /tmp)
cd /tmp (введите каталог). )
tar zxvf freetds- 0.53.tgz (распакованный)
cd freetds-0.53 (введите распакованный каталог)
./configure –prefix=/usr/local/freetds --with-tdsver=7.0
gmake (сгенерируйте Makefile, я проверил, make тоже может это сделать)
gmake install (Установка)
Я хочу сказать кое-что о приведенной выше настройке --prefix=/usr/local/freetds относится к установке в каталог /usr/local/freetds --with-tdsver=. 7.0 относится к установке версии tds 7.0 (последняя. Проблема в том, что я не добавил этот параметр компиляции, и результат по умолчанию был скомпилирован в 5.0. Порт 5.0 для подключения к базе данных — 4000, а не 1433 SQL Server)
Шаг 2. Перекомпилируйте PHP4./configure
[--with-apxs --with-mysql ...] --with-sybase=/usr/local/freetds (обратите внимание, что это sybase)
make
make install
Шаг 3. Настройте freetds
vi /usr/local/freetds/etc/freetds.conf
Конкретную конфигурацию можно найти в этом файле. Пример описания
: (Типичная конфигурация)
[sqlserver]
хост = sql_server_name_or_host_ip (имя вашего компьютера SQLServer или IP-адрес)
порт = 1433
версия tds = 7.0
В этом файле конфигурации вы можете настроить два метода входа в домен Windows или вход в учетную запись SQLServer.
Настройте
файл php.ini
и найдите расширение=mssql70.so
.
Шаг 5. Установите соединение с базой данных в php
$link=mssql_connect("sqlserver",$your_username,$your_password) или умрете («невозможно подключиться к базе данных»);
Еслиэто так,
запустите приведенный выше скрипт. вы получили номер ссылки, поздравляем, вы ее настроили. Если появится сообщение Вызов неопределенной функции: mssql_connect(), то Примечание. Внимательно прочитайте описанный выше процесс установки и настройки, чтобы увидеть, на каком этапе вы ошибаетесь.
Примечание. Имя sqlserver — это параметр хоста, определенный в /usr/local/freetds/etc/freetds.conf. Если вы пишете IP-адрес, это IP-адрес.
Для других операций с базой данных обратитесь к соответствующим функциям mssql
. Обратите внимание, что китайский язык не поддерживается в операторах sql.
Шаг 6. Отладка.
Если вы не можете подключиться, найдите его в файле конфигурации freetds, прокомментируйте строку дампа = /tmp; /freetds.log Удалите точку с запятой впереди, снова запустите тестовый сценарий и проверьте файл /tmp/freetds.log. Он может предоставить вам много информации об ошибках, которая поможет вам устранить проблему.
(е129)