この件について徹底的な検索を行い、同様の問題を見つけ、多くのことを試してみたが成功しなかったと本当に感じているので、ここに初めて質問を投稿します。
私は多くの Web ページ/Web プログラミング (主に PHP/jQuery) を行っており、これらのページをデジタル ライブラリ部門の Drupal/Ubuntu Server でホストしています。Drupal フロントエンドはあまり使用しないので、コーディングして Dreamweaver 経由で投稿するだけです。ページ用のサーバーが必要なだけです。
とにかく、ライブラリ カタログに接続できる PHP ページをいくつか作成したいので、Drupal/Ubuntu サーバーのコマンド ラインから作業しています。unixODBC をインストールし、トラブルが発生し、FreeTDS をインストールし、ドライバーと DSN をセットアップしました。
ついに...
tsql を介してカタログに接続し、クエリを実行することができました。
接続をテストするための基本的な PHP スクリプトを作成しました。
サーバーのUbuntuコマンドラインから動作します(接続成功)。
ブラウザにロードすると機能しません。私は恐ろしいものを手に入れます:
警告: odbc_pconnect(): SQL エラー: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect in /var/www/mydirectory/mytestpage.php on line 15
更新:ラップトップのパーティションにテスト用の Ubuntu サーバーをインストールしました。ここでクリーンを開始し、Apache2/PHP5 (mssql および odbc モジュールなどを使用)/FreeTDS などをインストールしました。tsql 接続を取得しました。基本的な PHP スクリプトを作成し、コマンド ラインから正常に実行しました。次に、ブラウザからphpページに移動すると、うまくいきました! Drupal サーバー バージョンでこれを実現する必要はまだありますが、少なくとも問題を Drupal サーバー上の何かに絞り込むことができました。
次のような考えられる原因を検索して見つけました。
ファイルのアクセス許可。修正されたと思いますが、うまくいきません
適切な「odbcinst」コマンドオプションで修正するために最善を尽くしたシステムDNSではなく、ユーザーDNSを設定した可能性があります
モジュールとしてではなく、CGI モードで php を実行する必要があるかもしれません。しかし、私が読んだ限りではそうは思えませんでした。そして、それが Drupal にどのように影響するかはわかりません。(ここで行うべきシステム全体の変更には制限があります。)
SElinux が Apache がブラウザーにページを表示するのを妨げていると多くの人が言っていましたが、一時的に SElinux を無効にしてもうまくいきませんでした。
ご協力ありがとうございます。