2

Apache 2.4 アップグレードの一環として、python スクリプトを lua スクリプトに移行しています。要件の 1 つは、Sybase データベースに接続してクエリを実行することです。これを行うために、mod_lua api を使用して db 接続を取得する小さなコードを開発しましたが、成功していません。

freetds で apr-util をインストールしました。

mod_lua、mod_dbd、および freetds を使用してデータベース接続を取得するには、ここに記載されている手順に従いました - http://modlua.org/api/database#dbd

freetds の DDPParams を構成するには、ここに記載されているパラメーターに従いました https://httpd.apache.org/docs/2.4/mod/mod_dbd.html#DBDParams

httpd.conf の VirtualHost に、以下の dbdparams を追加しました。

DBDriver フリート

DBDParams ユーザー名=xxx、パスワード=xxx、ホスト=ホスト-ip:ポート

DBDMax 10

データベース接続を取得するためのluaコードは

require "apache2"
require "string"
function handle(r)
r.content_type = "text/html"
local database, err = r:dbacquire("mod_dbd")
r:err("inside handle method_1  " .. err)
return apache2.OK
end

Apacheエラーログに表示されるエラーは-

[Thu Aug 25 15:28:03.198044 2016] [dbd:error] [pid 21708:tid 139621318366976] (20014) 内部エラー (特定の情報がありません): AH00629: freetds に接続できません:

[Thu Aug 25 15:28:03.198145 2016] [dbd:error] [pid 21708:tid 139621318366976] (20014) 内部エラー (特定の情報がありません): AH00633: 初期化に失敗しました

[Thu Aug 25 15:28:03.198184 2016] [lua:error] [pid 21708:tid 139621318366976] [client 10.135.15.148:52836] 内部ハンドル method_1 は mod_dbd から接続を取得できませんでした。データベースが実行されている場合、これは権限の問題を示している可能性があります。

同じシステムからtsql を使用してデータベースに接続できます、apache dbd からの接続が機能していません。 何らかの構成 (DBDParams) の問題があるか、OS が apache からの接続をブロックしている可能性があると思われます

誰かがこの点で助けてくれませんか。

4

1 に答える 1