when I raised the question
. Our company developed a set of SP-side short message service software based on China Unicom's SGIP protocol to provide China Unicom 130 SMS service. This system is under Windows 2000. The database uses Microsoft SQLServer2000 and has been running normally for some time. Recently, in order to provide some information of short message users on the WEB, it is necessary to read and write the SQL Server database from the WEB. Originally, the best partner of the SQL Server database should be Microsoft IIS ASP server script, but our company has always believed that IIS+ASP The stability and security are not satisfactory. I hope to use PHP scripts to read and write SQL Server under Linux.
Analysis of the problem
Originally, there was no problem with PHP script reading and writing SQL Server. It can work very well under Apache for windows and Windows IIS. Generally, it can be connected through ODBC or SQLServer Client, which are all ready-made under Windows. However, there are no ready-made ODBC and SQLServer Client under Linux and we need to install them ourselves.
Solve the problem
1. Related software
freetds Source: ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz
This software can connect MS SQLServer and Sybase databases using Linux and Unix.
2. Installation and configuration steps
Step 1: Compile and install freetds:
After getting freetds-0.53.tgz
, cp freetds-0.53.tgz /tmp/. (Copy the freetds package to the /tmp directory)
cd /tmp (enter the directory)
tar zxvf freetds- 0.53.tgz (decompressed)
cd freetds-0.53 (enter the decompressed directory)
./configure –prefix=/usr/local/freetds --with-tdsver=7.0
gmake (generate Makefile, I have tested it, make can also do it)
gmake install (Installation)
I want to say something about the configure above. --prefix=/usr/local/freetds refers to installing into the directory /usr/local/freetds. --with-tdsver=7.0 refers to installing tds 7.0 version (the latest The problem is that I did not add this compilation parameter, and the result was compiled to 5.0 by default. The port for 5.0 to connect to the database is 4000, not 1433 of SQL Server)
Step 2: Recompile PHP4./configure
[--with-apxs --with-mysql ...] --with-sybase=/usr/local/freetds (please note it is sybase)
make
make install
Step 3: Configure freetds
vi /usr/local/freetds/etc/freetds.conf
The specific configuration can be found in this file
Exampleof description
: (Typical configuration)
[sqlserver]
host = sql_server_name_or_host_ip (your SQLServer machine name or IP address)
port = 1433
tds version = 7.0
In this configuration file, you can configure two methods of Windows domain login or SQLServer account login.
Fourth Step: Configure the php.ini file
and find; extension=mssql70.so.
Remove the comment; to
extension=mssql70.so.
Step 5: Establish a database connection in php
$link=mssql_connect("sqlserver",$your_username,$your_password) or die (“can't Connect to Database”);
echo $link;
Run the above script in the browser. If you get a link number, congratulations, you have configured it. If Call to undefined function: mssql_connect() appears, then Note: Carefully read the above installation and configuration process to see which step you are wrong.
Note: The sqlserver name is the host parameter defined in /usr/local/freetds/etc/freetds.conf. If you write the IP address, it is the IP address.
For other database operations, refer to related mssql functions
. Note that Chinese is not supported in sql statements!!!
Step 6: Debugging.
If you cannot connect, please find it in the freetds configuration file; comment the line dump file = /tmp/freetds.log. Remove the semicolon in front, execute the test script again, and check the /tmp/freetds.log file. It can tell you a lot of error information to help you troubleshoot the problem.
(e129)