Btrieve 2
読み取り中…
検索中…
一致する文字列を見つけられません
PHP での Btrieve の使用

PHP での Btrieve の使用(Windows x64)

以下に記載されているのは、PHP プログラミング言語用の Btrieve 2 SDK を構成する 1 つの方法です。この例では、Visual Studio 2015 を使用して、ネイティブの Windows x64 環境をターゲットとします。Zen は既にインストールされ、実行されているものとします。

  • SWIG および PHP がまだインストールされていない場合は、インストールします。
  • Zen の Btrieve 2 Windows SDK をインストールします。
  • Btrieve PHP を生成、ビルド、およびインストールします。
    • Visual Studio x64 ネイティブ ツールのコマンド プロンプトを開きます。
    • ディレクトリを Btrieve 2 SDK ディレクトリに変更します。
    • Btrieve PHP を生成します。
      • c:\swigwin-3.0.12\swig.exe -cppext cpp -outcurrentdir -php7 -c++ -Iinclude swig\btrievePhp.swig
        • 上記で使用されている SWIG へのパスは異なる場合があることに注意してください。
        • PHP バージョン 7 が指定されていることに注意してください。
    • Btrieve PHP をビルドします。
      • cl -EHsc -c -Iinclude -D_ALLOW_KEYWORD_MACROS -DZEND_WIN32 -DPHP_WIN32 -DZEND_DEBUG=0 -Ic:\php-devel-pack-7.1.7-nts-win32-vc14-x64\php-7.1.7-devel-vc14-x64\include\Zend -Ic:\php-devel-pack-7.1.7-nts-win32-vc14-x64\php-7.1.7-devel-vc14-x64\include -Ic:\php-devel-pack-7.1.7-nts-win32-vc14-x64\php-7.1.7-devel-vc14-x64\include\main -Ic:\php-devel-pack-7.1.7-nts-win32-vc14-x64\php-7.1.7-devel-vc14-x64\include\TSRM btrievePhp_wrap.cpp
      • link -dll -force:multiple win64\x86_64\btrieveCpp.lib -libpath:C:\php-7.1.7-nts-Win32-VC14-x64\dev php7.lib -out:php_btrievePhp.dll btrievePhp_wrap.obj
        • 上記で使用されている PHP へのパスは異なる場合があることに注意してください。
    • Btrieve PHP をインストールします。
      • copy btrievePhp.php "c:\Program Files\Actian\Zen\bin"
      • copy php_btrievePhp.dll "c:\Program Files\Actian\Zen\bin"
        • これらのコピーを実行するには、管理者特権のアクセス許可が必要になる場合があります。
      • Btrieve PHP を読み込むように PHP を構成します。
        • 次のように "C:\php-7.1.7-nts-Win32-VC14-x64\php.ini" を更新します。
          • "include_path" に "C:\Program Files\Actian\Zen\bin" を追加します。
          • "C:\Program Files\Actian\Zen\bin\php_btrievePhp.dll" を拡張として追加します。
          • 上記で使用されている PHP へのパスは異なる場合があることに注意してください。
    • Btrieve PHP サンプル プログラムを実行します。
      • c:\php-7.1.7-nts-Win32-VC14-x64\php.exe -f samples\btest.php x=9
        • 出力 "{"x":9,"xSquared":81,"xSquareRoot":3}" が表示されるはずです。
        • 上記で使用されている PHP へのパスは異なる場合があることに注意してください。
        • "Warning: assert(): Error: BtrieveClient::FileCreate():94:Permission error in ... samples\btest.php on line 38" というエラーが返される場合は、現在のディレクトリのアクセス許可を変更する必要があるかもしれません。

PHP での Btrieve の使用(Ubuntu 20 x64)

以下に記載されているのは、PHP プログラミング言語用の Btrieve 2 SDK を構成する 1 つの方法です。この例では、PHP パッケージを使用して、Ubuntu 20 x64 環境をターゲットとします。Zen は既にインストールされ、実行されているものとします。

  • SWIG および PHP がまだインストールされていない場合は、インストールします。
    • 非 "root" ユーザーとしてターミナル ウィンドウを開きます。
    • sudo apt install swig
    • sudo apt install php php-dev
  • Zen の Btrieve 2 Linux SDK をインストールします。
  • Btrieve PHP を生成、ビルド、およびインストールします。
    • 非 "root" ユーザーとしてターミナル ウィンドウを開きます。
    • ディレクトリを Btrieve 2 SDK ディレクトリに変更します。
    • Btrieve PHP を生成します。
      • swig -cppext cpp -outcurrentdir -php7 -c++ -Iinclude swig/btrievePhp.swig
        • PHP バージョン 7 が指定されていることに注意してください。
    • Btrieve PHP をビルドします。
      • g++ -c -fPIC -Iinclude -I/usr/include/php/20190902/Zend -I/usr/include/php/20190902 -I/usr/include/php/20190902/main -I/usr/include/php/20190902/TSRM btrievePhp_wrap.cpp
      • g++ -shared btrievePhp_wrap.o -o php_btrievePhp.so -L/usr/local/actianzen/lib64 -lbtrieveCpp
        • 上記で使用されている PHP へのパスは異なる場合があることに注意してください。
    • Btrieve PHP をインストールします。
      • sudo cp btrievePhp.php /usr/local/actianzen/lib64
      • sudo cp php_btrievePhp.so /usr/local/actianzen/lib64
      • Btrieve PHP を読み込むように PHP を構成します。
        • 次のように "/etc/php/7.4/cli/php.ini" を更新します。
          • "include_path" に "/usr/local/actianzen/lib64" を追加します。
          • "/usr/local/actianzen/lib64/php_btrievePhp.so" を拡張として追加します。
          • 上記で使用されている PHP へのパスは異なる場合があることに注意してください。
    • Btrieve PHP サンプル プログラムを実行します。
      • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu:/usr/local/actianzen/lib64
      • php -f samples/btest.php x=9
        • 出力 "{"x":9,"xSquared":81,"xSquareRoot":3}" が表示されるはずです。
        • "PHP Warning: assert(): Error: BtrieveClient::FileCreate():94:Permission error in ... samples\btest.php on line 38" というエラーが返される場合は、現在のディレクトリのアクセス許可を変更する必要があるかもしれません。