cuando planteé la pregunta
. Nuestra empresa desarrolló un conjunto de software de servicio de mensajes cortos del lado SP basado en el protocolo SGIP de China Unicom para proporcionar el servicio de SMS China Unicom 130. Este sistema está bajo Windows 2000. La base de datos utiliza Microsoft SQLServer2000 y ha estado funcionando normalmente durante algún tiempo. Recientemente, para proporcionar información a los usuarios de mensajes cortos en la WEB, es necesario leer y escribir la base de datos SQL Server desde la WEB. Originalmente, el mejor socio de la base de datos SQL Server debería ser el script del servidor Microsoft IIS ASP. Nuestra empresa siempre ha creído que IIS + ASP La estabilidad y la seguridad no son satisfactorias. Espero utilizar scripts PHP para leer y escribir SQL Server en Linux.
Análisis del problema
Originalmente, no había problemas con la lectura y escritura de scripts PHP en SQL Server. Puede funcionar muy bien en Apache para Windows y Windows IIS. Generalmente, se puede conectar a través de ODBC o SQLServer Client, que están listos para usar. bajo Windows. Sin embargo, no existen clientes ODBC y SQLServer listos para usar en Linux y debemos instalarlos nosotros mismos.
Resuelva el problema
1. Software relacionado
freetds Fuente: ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz
Este software puede conectar bases de datos MS SQLServer y Sybase usando Linux y Unix.
2. Pasos de instalación y configuración
Paso 1: Compile e instale freetds:
Después de obtener freetds-0.53.tgz
, cp freetds-0.53.tgz /tmp/ (copie el paquete freetds en el directorio /tmp)
cd /tmp (ingrese el directorio. )
tar zxvf freetds- 0.53.tgz (descomprimido)
cd freetds-0.53 (ingrese al directorio descomprimido)
./configure –prefix=/usr/local/freetds --with-tdsver=7.0
gmake (genera Makefile, lo he probado, make también puede hacerlo)
gmake install (Instalación)
Quiero decir algo sobre la configuración anterior. --prefix=/usr/local/freetds se refiere a la instalación en el directorio /usr/local/freetds --with-tdsver=. 7.0 se refiere a la instalación de la versión tds 7.0 (la última. El problema es que no agregué este parámetro de compilación y el resultado se compiló en 5.0 de forma predeterminada. El puerto para que 5.0 se conecte a la base de datos es 4000, no 1433 de SQL Server)
Paso 2: Vuelva a compilar PHP4./configure
[--with-apxs --with-mysql ...] --with-sybase=/usr/local/freetds (tenga en cuenta que es sybase)
make
make install
Paso 3: Configure freetds
vi /usr/local/freetds/etc/freetds.conf
La configuración específica se puede encontrar en este archivo Ejemplo de descripción
: (Configuración típica)
[sqlserver]
host = sql_server_name_or_host_ip (el nombre de su máquina SQLServer o dirección IP)
puerto =
versión 1433 tds = 7.0
En este archivo de configuración, puede configurar dos métodos de inicio de sesión en el dominio de Windows o inicio de sesión en la cuenta SQLServer.
Cuartopaso
: configure el archivo php.ini
y busque; extensión=mssql70.so
.
Paso 5: Establezca una conexión a la base de datos en php
$link=mssql_connect("sqlserver",$your_username,$your_password) omuera
(“no se puede conectar a la base de datos”);
echo $link;
obtienes un número de enlace, felicitaciones, lo has configurado. Si aparece Llamada a función indefinida: mssql_connect(), entonces Nota: lee atentamente el proceso de instalación y configuración anterior para ver en qué paso estás equivocado.
Nota: El nombre del servidor sql es el parámetro de host definido en /usr/local/freetds/etc/freetds.conf. Si escribe la dirección IP, es la dirección IP.
Para otras operaciones de base de datos, consulte las funciones mssql relacionadas
. Tenga en cuenta que el chino no es compatible con las declaraciones SQL.
Paso 6: depuración.
Si no puede conectarse, búsquelo en el archivo de configuración freetds; /freetds.log Elimine el punto y coma al frente, ejecute el script de prueba nuevamente y verifique el archivo /tmp/freetds.log. Puede brindarle mucha información de error para ayudarlo a solucionar el problema.
(e129)