質問する 私は数日前、チャイナユニコムの 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 または SQL Server クライアント経由で接続できました。 - 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にインストールすることを指します。 tdsver=7.0 は、tds 7.0 バージョンのインストールを指します (最も驚くべきことは、このコンパイル パラメータを追加しなかったのですが、結果はデフォルトで 5.0 にコンパイルされました。5.0 がデータベースに接続するためのポートは、SQL の 1433 ではなく 4000 です。 Server) ステップ 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 バージョン = 7.0 この構成ファイルでは、Windows ドメイン ログインまたは SQLServer アカウント ログインの 2 つの方法を構成できます。 手順 4: php.ini ファイルを構成し、extension=mssql70 のコメントを削除します。ステップ 5: PHP でデータベース接続を確立する $link=mssql_connect("sqlserver",$your_username,$your_password) または die (「データベースに接続できません」); 上記のスクリプトをブラウザで実行します。リンク番号を取得できた場合は、設定が完了しました。「未定義の関数への呼び出し: mssql_connect()」が表示された場合は、上記のインストールと設定のプロセスをよく読んで、どの手順が間違っていたのかを確認してください。
注: sqlserver 名は、/usr/local/freetds/etc/freetds.conf で定義されたホスト パラメーターであり、IP アドレスを記述する場合は、それが IP アドレスになります。
他のデータベース操作は、SQL ステートメントでは中国語がサポートされていないことに注意してください。 ステップ 6: デバッグする場合は、freetds で「dump file = /tmp/freetds.log」という行を見つけてください。構成ファイルの前のセミコロンをコメントアウトし、テスト スクリプトを再度実行して、/tmp/freetds.log ファイルを確認してください。問題のトラブルシューティングに役立つ多くのエラー情報が得られます。