1

PHP から Sybase ASE へのデータベース サーバー接続をパスワードで暗号化するにはどうすればよいですか?

ASE への PHP 接続は、次の場合に失敗しnet password encryption reqd = 1ます。

パスワード暗号化を使用して ASE への PHP DB 接続を確立するにはどうすればよいですか? クライアント側接続で設定する必要がある PHP キーワードまたはパラメーターはありますか?

4

1 に答える 1

2

以下は、PHP バージョン 5.3.6 および Sybase CTISQL からの Sybase ドライバーを使用して Linux 64 ビット ベース マシンから接続できるという点で、この問題の解決策ですUtility/15.7/P-EBF19975 ESD #3/DRV.15.7.0.3。これを機能させるには、これに加えてApacheを機能させる必要があります. みんなの利益のためにここに投稿しています。注: AFAICT、これは Sybase がサポートするソリューションではありません。自己責任でご利用ください。

これが機能するために必要なことはほとんどありません。

  1. 最新の Debian Stable 6.05 スクイーズ 64 ビットを使用しました
  2. Sybaseからダウンロードしたebf19977(オープンクライアントを備えた開発者キット、はい、番号がオフです、それは間違いではありません。インストールすると表示されます)をインストールしました
  3. php.net Web サイトから PHP 5.3.6 をダウンロードして、ソースからコンパイルします。

ステップ 1) これは簡単に設定できると思います。sudo アクセス権があることを確認してください

ステップ 2) 開発者キットをインストールするには、setup.bin ファイルがある場所へのパス全体を入力する必要があるので、 sudo /home/btran/ebf19977/setup.bin と入力すると、セットアップが開始されます。ほぼ指示に従います。そこに OpenClient とその関連ツールをインストールします。Open Client と PHP ライブラリがインストールされていることを確認します。

インストールが完了したら、他にいくつかの手順を実行する必要があります。

/opt/sybase のルート ディレクトリにある SYBASE.sh を実行して、すべての Sybase 環境変数を設定します。

sudo cat /opt/sybase/SYBASE.sh >> /etc/profile , if necessary source /etc/profile

これでほとんどの変数が設定されますが、そこにないいくつかの変数を追加する必要があります。

    PHPRC=/opt/sybase/OCS-15_0/config
    LD_LIBRARY_PATH=/opt/sybase/OCS-15_0/php/php536_64/lib:/opt/sybase/OCS-15_0/lib

/ect/profile は次のようになります。

    # ------------------------------------
    #    Sybase Product Environment variables
    # ------------------------------------
    SYBASE="/opt/sybase"
    export SYBASE
    SYBASE_OCS="OCS-15_0"
    export SYBASE_OCS
    INCLUDE="/opt/sybase/OCS-15_0/include":$INCLUDE
    export INCLUDE
    LIB="/opt/sybase/OCS-15_0/lib":$LIB
    export LIB
    PATH="/opt/sybase/OCS-15_0/bin":$PATH
    export PATH
    LD_LIBRARY_PATH="/opt/sybase/OCS-15_0/php/php536_64/lib:/opt/sybase/OCS-15_0/lib:/opt/sybase/OCS-15_0/lib3p64:/opt/sybase/OCS-15_0/lib3p":$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH

    PHPRC="/opt/sybase/OCS-15_0/config"
    export PHPRC

    JAVA_HOME="/opt/sybase/jre32"
    export JAVA_HOME

    RIBO_HOME="/opt/sybase/jutils-3_0/ribo"
    export RIBO_HOME
    # ------------------------------------

次に、ルート ディレクトリ /opt/sybase にあるインターフェイス ファイルを次のように変更する必要があります。これは使用せず、あなたの情報を使用してください。

    dev
        master tcp ether dev.company.com 4425
        query tcp ether dev.company.com 4425

    prod
        master tcp ether prod.company.com 4425
        query tcp ether prod.company.com 4425

    ribo
        master tcp ether testhost.company.com 5005
        query tcp ether testhost.company.com 5005

また、PHP が正しく開始されるように ocs.cfg を変更する必要があります。これは、次の/opt/sybase/OCS-15_0/configようなフォルダーにあります。

    ;;;;;;;;;;;
    ; This is the default external configuration definition file. Feel free
    ; to add your own customizations.
    ;
    [DEFAULT]
    ; This is the default section loaded by applications that use
    CS_SEC_ENCRYPTION = CS_TRUE
    [ANSI_ESQL]
    ; This section defines configuration which an ANSI conforming
    CS_CAP_RESPONSE = CS_RES_NOSTRIPBLANKS
    CS_EXTRA_INF = CS_TRUE
    CS_ANSI_BINDS = CS_TRUE
    CS_OPT_ANSINULL = CS_TRUE
    CS_OPT_ANSIPERM = CS_TRUE
    CS_OPT_STR_RTRUNC = CS_TRUE
    CS_OPT_ARITHABORT = CS_FALSE
    CS_OPT_TRUNCIGNORE = CS_TRUE
    CS_OPT_ARITHIGNORE = CS_FALSE
    CS_OPT_ISOLATION = CS_OPT_LEVEL3
    CS_OPT_CHAINXACTS = CS_TRUE
    CS_OPT_CURCLOSEONXACT = CS_TRUE
    CS_OPT_QUOTED_IDENT = CS_TRUE
    ; End of default sections

    [isql]
    CS_SEC_ENCRYPTION = CS_TRUE

    [PHP]
    CS_SEC_ENCRYPTION = CS_TRUE

    ; This is a sample section showing how you might alter configuration
    ; properties for you Embedded SQL application.
    [SAMPLE_ESQL]
    ; use most of the ANSI properties defined above
    include = ANSI_ESQL
    ; but override some default properties
    CS_OPT_CHAINXACTS = CS_FALSE ; run in autocommit mode
    ;;;;;;;;;

注:同じディレクトリにphp.iniファイルが存在することも確認することが非常に重要です/opt/sybase/OCS-15_0/config(これはexentionファイルを指しています。環境変数を見てくださいLD_LIBRARY_PATH="/opt/sybase/OCS-15_0/php/php536_64/lib

php.ini は次のように読む必要があります。

    extension=/opt/sybase/OCS-15_0/php/php536_64/lib/sybaseasephp.so

ステップ 3) PHP をソースからコンパイルします。Sybase は 64 ビットを呼び出します。

/opt/php-5.3.6Linux のほとんどのアプリがインストールされる場所で永続化するために、ソースをダウンロードします。

    cd to /opt/php-5.3.6 

    ./configure  

非常に重要なことですが、ここで問題が発生しました。デフォルトの ./configure ではなく、他の構成オプションを選択すると、PHP は以下のエラーでロードに失敗します。

btran@sls-baonix:/opt/php-5.3.6$ php ~/test-dev.php
PHP Warning:  PHP Startup: Unable to load dynamic library
'/opt/sybase/OCS-15_0/php/php536_64/lib/sybaseasephp.so' -
/opt/sybase/OCS-15_0/php/php536_64/lib/sybaseasephp.so: undefined
symbol: executor_globals in Unknown on line 0

Fatal error: Call to undefined function sybase_connect() in
/home/btran/test-dev.php on line 10
]

他のオプションが必要な理由は、Apache と連携するためにも必要だからです。PHP で動作するようになりましたが、Web サイトから PHP を開始できるようにする必要があるため、PHP は Sybase をサポートするだけでなく、Apache もサポートする必要があります。PHP の専門家がこれに対する解決策を持っている場合は、飛び込んで助けてください。

于 2012-07-10T22:39:16.213 に答える