ketika saya mengajukan pertanyaan
. Perusahaan kami mengembangkan seperangkat perangkat lunak layanan pesan singkat sisi SP berdasarkan protokol SGIP China Unicom untuk menyediakan layanan SMS China Unicom 130. Sistem ini menjalankan Windows 2000. Database menggunakan Microsoft SQLServer2000 dan telah berjalan normal selama beberapa waktu. Baru-baru ini, untuk memberikan beberapa informasi kepada pengguna pesan singkat di WEB, perlu untuk membaca dan menulis database SQL Server dari WEB. Awalnya, mitra terbaik dari database SQL Server adalah skrip server Microsoft IIS ASP, tapi perusahaan kami selalu percaya bahwa IIS+ASP Stabilitas dan keamanannya tidak memuaskan. Saya berharap dapat menggunakan skrip PHP untuk membaca dan menulis SQL Server di Linux.
Analisis masalah
Awalnya, tidak ada masalah dengan pembacaan dan penulisan skrip PHP SQL Server. Ini dapat bekerja dengan baik di bawah Apache untuk windows dan Windows IIS. Umumnya, dapat dihubungkan melalui ODBC atau SQLServer Client, yang semuanya sudah jadi di bawah Windows. Namun, tidak ada Klien ODBC dan SQLServer yang siap pakai di Linux dan kita perlu menginstalnya sendiri.
Menyelesaikan masalah
1. Perangkat lunak terkait
freetds Sumber: ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz
Perangkat lunak ini dapat menghubungkan database MS SQLServer dan Sybase menggunakan Linux dan Unix.
2. Langkah instalasi dan konfigurasi
Langkah 1: Kompilasi dan instal freetds:
Setelah mendapatkan freetds-0.53.tgz
, cp freetds-0.53.tgz /tmp/ (Salin paket freetds ke direktori /tmp)
cd /tmp (masuk ke direktori )
tar zxvf freetds- 0.53.tgz (didekompresi)
cd freetds-0.53 (masuk ke direktori yang didekompresi)
./configure –prefix=/usr/local/freetds --with-tdsver=7.0
gmake (menghasilkan Makefile, saya sudah mengujinya, make juga bisa melakukannya)
gmake install (Instalasi)
Saya ingin mengatakan sesuatu tentang konfigurasi di atas. --prefix=/usr/local/freetds mengacu pada instalasi ke direktori /usr/local/freetds 7.0 mengacu pada instalasi versi tds 7.0 (yang terbaru Masalahnya adalah saya tidak menambahkan parameter kompilasi ini, dan hasilnya dikompilasi ke 5.0 secara default. Port 5.0 untuk terhubung ke database adalah 4000, bukan 1433 dari SQL Server)
Langkah 2: Kompilasi ulang PHP4./configure
[--with-apxs --with-mysql ...] --with-sybase=/usr/local/freetds (harap dicatat ini adalah sybase)
make
make install
Langkah 3: Konfigurasikan freetds
vi /usr/local/freetds/etc/freetds.conf
Konfigurasi spesifik dapat ditemukan di file ini Contoh deskripsi
: (Konfigurasi umum)
[sqlserver]
host = sql_server_name_or_host_ip (nama mesin atau alamat IP SQLServer Anda)
port =versi
1433
tds= 7.0
Dalam file konfigurasi ini, Anda dapat mengkonfigurasi dua metode login domain Windows atau login akun SQLServer.
LangkahKeempat
: Konfigurasikan file php.ini
dan temukan; extension=mssql70.so
.
Langkah 5: Buat koneksi database di php
$link=
mssql_connect("sqlserver",$nama_pengguna
Anda,$kata sandi_Anda) atau die (“tidak dapat Terhubung ke Database”);
Anda mendapatkan nomor tautan, selamat, Anda telah mengkonfigurasinya. Jika Panggilan ke fungsi yang tidak ditentukan: mssql_connect() muncul, maka Catatan: Bacalah dengan cermat proses instalasi dan konfigurasi di atas untuk melihat langkah mana yang salah.
Catatan: Nama sqlserver adalah parameter host yang ditentukan di /usr/local/freetds/etc/freetds.conf. Jika Anda menulis alamat IP, itu adalah alamat IP.
Untuk operasi database lainnya, lihat fungsi mssql terkait
. Perhatikan bahwa bahasa Mandarin tidak didukung dalam pernyataan sql!!!
Langkah 6: Debugging.
Jika Anda tidak dapat terhubung, silakan temukan di file konfigurasi freetds; /freetds.log. Hapus titik koma di depan, jalankan skrip pengujian lagi, dan periksa file /tmp/freetds.log. Ini dapat memberi tahu Anda banyak informasi kesalahan untuk membantu Anda memecahkan masalah.
(e129)