サーバー|SQLサーバー
質問する
私たちは数日前、チャイナユニコムSGIPプロトコルに基づいてチャイナユニコム130 SMSサービスを提供するためのSP側ショートメッセージサービスソフトウェアのセットを開発しました。このシステムは Windows 2000 上で動作しています。データベースは Microsoft SQLServer2000 を使用しており、しばらくの間正常に動作しています。最近、ショートメッセージユーザーの情報をWEB上で提供するには、WEBからSQL Serverデータベースを読み書きする必要がありますが、本来、SQL ServerデータベースのベストパートナーはMicrosoft IIS ASPサーバースクリプトであるはずです。当社は、IIS+ASP の安定性とセキュリティが満足のいくものではないと常に考えてきました。PHP スクリプトを使用して Linux で SQL Server を読み書きしたいと考えています。
問題の分析
本来、SQL Server の読み書きには問題はありませんが、Windows 用の Apache および Windows IIS では通常、ODBC または SQLServer クライアント経由で接続できます。これらはすべて Windows で既製です。ただし、Linux には既製の ODBC および SQLServer クライアントが存在しないため、自分でインストールする必要があります。
問題を解決してください
1. 関連ソフトウェア
freetds 出典: ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz
このソフトウェアは使用できますLinux および Unix では、MS SQLServer および Sybase データベースに接続します。
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 (インストール)
上記のconfigure、--prefix=/usr/について言いたいことがあります。 local/freetds は / usr/local/freetds ディレクトリにインストールすることを意味します。 --with-tdsver=7.0 は tds 7.0 バージョンをインストールすることを意味します (最初にこのコンパイル パラメーターを追加しなかったので、結果はデフォルトで 5.0 にコンパイルされました。 5.0 がデータベースに接続するためのポートは SQLServer 1433 ではなく 4000 です)
ステップ 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]
host = sql_server_name_or_host_ip (SQLServer マシン名または IP アドレス)
port = 1433
tds version = 7.0
この構成ファイルでは、次のことができますWindows ドメイン ログインまたは SQLServer アカウント ログインの 2 つの方法を設定します
ステップ 4: php.ini ファイルを設定します
Find;extension=mssql70.so
コメントを削除します
extension=mssql70.so
ステップ 5: php
$link=mssql_connect ("sqlserver",$your_username,$your_password) でデータベース接続を確立するか、
echo $link
で上記のスクリプトを実行します。ブラウザーでリンク番号を取得したら、おめでとうございます。これは構成されています。「未定義の関数への呼び出し: mssql_connect()」が表示された場合は、上記のインストールと構成のプロセスを注意深く読んで、どのステップが間違っているかを確認する必要があります。
注: sqlserver 名は、/usr/local/freetds/etc/freetds.conf で定義されたホスト パラメーターです。IP アドレスを記述する場合は、それが IP アドレスになります。
他のデータベース操作については、関連する mssql 関数を参照してください
SQL ステートメントでは中国語がサポートされていないことに注意してください!!!
ステップ 6: デバッグ
接続できない場合は、freetds 設定ファイルで見つけてください。 /tmp /freetds.log 行の前にあるセミコロンをコメント アウトし、テスト スクリプトを実行して、/tmp/freetds.log ファイルを確認します。これにより、問題のトラブルシューティングに役立つ多くのエラー情報が得られます。