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 からの接続をブロックしている可能性があると思われます
誰かがこの点で助けてくれませんか。