、質問を提起しました
。当社は、チャイナ ユニコムの SGIP プロトコルに基づいて、チャイナ ユニコム 130 SMS サービスを提供するための SP 側のショート メッセージ サービス ソフトウェアのセットを開発しました。このシステムは Windows 2000 上で動作しています。データベースは Microsoft SQLServer2000 を使用しており、しばらくの間正常に動作しています。最近、ショートメッセージユーザーの情報をWEB上で提供するには、WEBからSQL Serverデータベースを読み書きする必要がありますが、本来、SQL ServerデータベースのベストパートナーはMicrosoft IIS ASPサーバースクリプトであるはずです。当社は、IIS+ASP の安定性とセキュリティが満足のいくものではないと常に考えてきました。PHP スクリプトを使用して Linux で SQL Server を読み書きしたいと考えています。
問題の分析
当初、PHP スクリプトの SQL Server の読み書きには問題はありませんでしたが、Windows および Windows IIS 用の Apache では非常にうまく動作します。これらはすべて既製の 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.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= にインストールすることを指します。 7.0 は、tds 7.0 バージョンのインストールを指します (最新の問題は、このコンパイル パラメーターを追加しなかったため、結果がデフォルトで 5.0 にコンパイルされたことです。データベースに接続する 5.0 のポートは SQL Server の 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 ファイルを構成し
、extension=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
ステートメントでは中国語がサポートされていないことに注意してください
。
/freetds.log。先頭のセミコロンを削除し、テスト スクリプトを再度実行して、/tmp/freetds.log ファイルを確認します。これにより、問題のトラブルシューティングに役立つ多くのエラー情報が得られます。
(e129)