はじめに
CData 技術ディレクター桑島です。本日は、Linux上のPHP WebアプリケーションからCData ODBC Driverを利用する方法をSalesforceへの接続を例にご紹介します。
構成
本手順では、AzureのCentOS上に構築しました。
- OS:CentOS (Azure EC2 CentOS Linux release 8.1.1911 を利用)
- Webサーバ:APACHE
- Application : PHP 7.4
- ODBC Driver Manager:UnixODBC 2.3.7
- ODBC Driver : CData Salesforce ODBC Driver for Linux
CData ODBC Driver for LinuxがサポートしているLinuxの最小バージョンや依存ライブラリはこちらからご覧いただけます。
手順
Linuxへのログイン
SSHコマンドでローカルマシンからPHP Webアプリケーションを構築するLinuxマシンに接続します。
~/Desktop/Work/pem $ ssh -i phptestadmin.pem phptestadmin@xxx.xxx.xxx.xxx Warning: Permanently added 'xxx.xxx.xxx.xxx' (ECDSA) to the list of known hosts. Password: Activate the web console with: systemctl enable --now cockpit.socket [phptestadmin@PHPTest ~]$
CentOSのバージョンを確認します。
[phptestadmin@PHPTest ~]$ cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) [phptestadmin@PHPTest ~]$
UnixODBCのインストール
yumでUnixODBCの依存ライブラリをインストールします。
[phptestadmin@PHPTest ~]$ sudo yum install glibc libstdc++ zlib libgcc あなたはシステム管理者から通常の講習を受けたはずです。 これは通常、以下の3点に要約されます: #1) 他人のプライバシーを尊重すること。 #2) タイプする前に考えること。 #3) 大いなる力には大いなる責任が伴うこと。 [sudo] phptestadmin のパスワード: CentOS-8 - AppStream 49 kB/s | 3.5 kB 00:00 CentOS-8 - Base 62 kB/s | 3.1 kB 00:00 CentOS-8 - Extras 3.5 kB/s | 1.5 kB 00:00 パッケージ glibc-2.28-72.el8_1.1.x86_64 は既にインストールされています。 パッケージ libstdc++-8.3.1-4.5.el8.x86_64 は既にインストールされています。 パッケージ zlib-1.2.11-10.el8.x86_64 は既にインストールされています。 パッケージ libgcc-8.3.1-4.5.el8.x86_64 は既にインストールされています。 依存関係が解決しました。 行うべきことはありません。 完了しました! [phptestadmin@PHPTest ~]$
yumでUnixODBCをインストールします。
[phptestadmin@PHPTest ~]$ sudo yum install unixODBC unixODBC-devel メタデータの期限切れの最終確認: 0:01:57 時間前の 2020年06月03日 03時55分05秒 に実施しました。 依存関係が解決しました。 ========================================================================================== パッケージ Arch バージョン リポジトリー サイズ ========================================================================================== インストール: unixODBC x86_64 2.3.7-1.el8 AppStream 458 k unixODBC-devel x86_64 2.3.7-1.el8 AppStream 64 k 依存関係のインストール: libtool-ltdl x86_64 2.4.6-25.el8 BaseOS 58 k トランザクションの概要 ========================================================================================== インストール 3 パッケージ ダウンロードサイズの合計: 580 k インストール済みのサイズ: 1.8 M これでよろしいですか? [y/N]: y パッケージのダウンロード: (1/3): libtool-ltdl-2.4.6-25.el8.x86_64.rpm 647 kB/s | 58 kB 00:00 (2/3): unixODBC-devel-2.3.7-1.el8.x86_64.rpm 370 kB/s | 64 kB 00:00 (3/3): unixODBC-2.3.7-1.el8.x86_64.rpm 2.0 MB/s | 458 kB 00:00 ------------------------------------------------------------------------------------------ 合計 2.5 MB/s | 580 kB 00:00 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : libtool-ltdl-2.4.6-25.el8.x86_64 1/3 scriptletの実行中: libtool-ltdl-2.4.6-25.el8.x86_64 1/3 インストール中 : unixODBC-2.3.7-1.el8.x86_64 2/3 scriptletの実行中: unixODBC-2.3.7-1.el8.x86_64 2/3 インストール中 : unixODBC-devel-2.3.7-1.el8.x86_64 3/3 scriptletの実行中: unixODBC-devel-2.3.7-1.el8.x86_64 3/3 検証 : unixODBC-2.3.7-1.el8.x86_64 1/3 検証 : unixODBC-devel-2.3.7-1.el8.x86_64 2/3 検証 : libtool-ltdl-2.4.6-25.el8.x86_64 3/3 インストール済み: unixODBC-2.3.7-1.el8.x86_64 unixODBC-devel-2.3.7-1.el8.x86_64 libtool-ltdl-2.4.6-25.el8.x86_64 完了しました! [phptestadmin@PHPTest ~]$
インストールされたUnixODBCのバージョンや設定ファイルの情報を確認します。
[phptestadmin@PHPTest ~]$ odbcinst -j unixODBC 2.3.7 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /home/phptestadmin/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8 [phptestadmin@PHPTest ~]$
CData Salesforce ODBC Driver for Linuxのインストール
CData社のODBCドライバ一覧のページにアクセスして利用したいデータソースのUnix版(タブ:Unix)ODBCをダウンロードします。今回は、64bitのCentOSを利用しているので、64bit版のrpmファイルをダウンロードします。
ダウンロードしたcrpmファイルをLinuxマシンにダウンロードします。今回は、AWSのS3に配置してwgetでLinuxマシンにダウンロードしました。
[phptestadmin@PHPTest ~]$ wget https://xxxxxxx/SalesforceODBCDriverforUnix.rpm --2020-06-03 03:59:16-- https:/xxxxxxx/SalesforceODBCDriverforUnix.rpm xxxxxxx.s3-ap-northeast-1.amazonaws.com (xxxxxxx.s3-ap-northeast-1.amazonaws.com) をDNSに問いあわせています... 52.219.16.23 xxxxxxx.s3-ap-northeast-1.amazonaws.com (xxxxxxx.s3-ap-northeast-1.amazonaws.com)|xxx.xxx.xxx.xxx|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 9928088 (9.5M) [binary/octet-stream] `SalesforceODBCDriverforUnix.rpm' に保存中 SalesforceODBCDriverfo 100%[==========================>] 9.47M 2.16MB/s 時間 4.4s 2020-06-03 03:59:21 (2.16 MB/s) - `SalesforceODBCDriverforUnix.rpm' へ保存完了 [9928088/9928088] [phptestadmin@PHPTest ~]$ ll 合計 9696 -rw-rw-r--. 1 phptestadmin phptestadmin 9928088 6月 3 03:59 SalesforceODBCDriverforUnix.rpm [phptestadmin@PHPTest ~]$
rpmコマンドでインストールします。
[phptestadmin@PHPTest ~]$ sudo rpm -ivh SalesforceODBCDriverforUnix.rpm 警告: SalesforceODBCDriverforUnix.rpm: ヘッダー V4 RSA/SHA1 Signature、鍵 ID ddd3339e: NOKEY Verifying... ################################# [100%] 準備しています... ################################# [100%] 更新中 / インストール中... 1:cdata-odbc-driver-for-salesforce-################################# [100%] [phptestadmin@PHPTest ~]$
評価版でライセンスを認証します。製品版をお持ちの場合は、ライセンスキーをセットしてください。
[phptestadmin@PHPTest ~]$ cd /opt/cdata/cdata-odbc-driver-for-salesforce/bin/ [phptestadmin@PHPTest bin]$ sudo ./install-license.x64 Name: CDataSupport Email: support@cdata.co.jp Installing TRIAL license... Downloading license data... Verifying license data... License installation succeeded. [phptestadmin@PHPTest bin]$
ODBCのDSN設定
viなどのエディタでodbc.ini内のDSN設定をセットします。こちらはデータソース 毎に異なりますので設定項目についてはCData社の製品マニュアルをご参照ください。
[phptestadmin@PHPTest bin]$ sudo vi /etc/odbc.ini [CData Salesforce Sys] Driver=CData ODBC Driver for Salesforce Password=xxxxxx Security Token=xxxx User=xxxx@cdata.com Use Sandbox=false [phptestadmin@PHPTest bin]$
Salesforceの場合の設定例 cdn.cdata.com
isqlからの接続テスト
UnixODBC付属ツールisqlから接続出来るか確認します。
[phptestadmin@PHPTest bin]$ isql -v "CData Salesforce Sys" +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> select count(*) from Account; +-----------+ | count_42 | +-----------+ | 85 | +-----------+ SQLRowCount returns -1 1 rows fetched SQL> quit [phptestadmin@PHPTest bin]$
PHPインストール
本手順ではyumでepelパッケージを追加してPHPをインストールしましたが、任意の方法でPHPをインストールしてください。
epelパッケージの追加
[phptestadmin@PHPTest ~]$ sudo yum install epel-release メタデータの期限切れの最終確認: 0:16:45 時間前の 2020年06月03日 03時55分05秒 に実施しました。 依存関係が解決しました。 ======================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ======================================================================================================== インストール: epel-release noarch 8-8.el8 extras 23 k トランザクションの概要 ======================================================================================================== インストール 1 パッケージ ダウンロードサイズの合計: 23 k インストール済みのサイズ: 32 k これでよろしいですか? [y/N]: y パッケージのダウンロード: epel-release-8-8.el8.noarch.rpm 115 kB/s | 23 kB 00:00 -------------------------------------------------------------------------------------------------------- 合計 55 kB/s | 23 kB 00:00 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : epel-release-8-8.el8.noarch 1/1 scriptletの実行中: epel-release-8-8.el8.noarch 1/1 検証 : epel-release-8-8.el8.noarch 1/1 インストール済み: epel-release-8-8.el8.noarch 完了しました! [phptestadmin@PHPTest ~]$ [phptestadmin@PHPTest ~]$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-8.rpm http://rpms.famillecollet.com/enterprise/remi-release-8.rpm を取得中 警告: /var/tmp/rpm-tmp.kQec6R: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 5f11735a: NOKEY Verifying... ################################# [100%] 準備しています... ################################# [100%] 更新中 / インストール中... 1:remi-release-8.1-2.el8.remi ################################# [100%] [phptestadmin@PHPTest ~]$ [phptestadmin@PHPTest ~]$ sudo yum config-manager --set-enabled remi [phptestadmin@PHPTest ~]$ yum -y module install php:remi-7.4 エラー: このコマンドは root ユーザーで実行する必要があります。 [phptestadmin@PHPTest ~]$ sudo yum -y module install php:remi-7.4 CentOS-8 - AppStream 51 kB/s | 3.5 kB 00:00 CentOS-8 - Base 52 kB/s | 3.1 kB 00:00 CentOS-8 - Extras 2.9 kB/s | 1.5 kB 00:00 Extra Packages for Enterprise Linux Modular 8 - x86_64 46 kB/s | 18 kB 00:00 Extra Packages for Enterprise Linux 8 - x86_64 121 kB/s | 15 kB 00:00 Extra Packages for Enterprise Linux 8 - x86_64 788 kB/s | 6.8 MB 00:08 Remi's Modular repository for Enterprise Linux 8 - x86_64 429 kB/s | 569 kB 00:01 Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 893 kB/s | 1.5 MB 00:01 Remi's RPM repository for Enterprise Linux 8 - x86_64 1.8 MB/s | 2.9 MB 00:01 依存関係が解決しました。 ======================================================================================================== パッケージ Arch バージョン リポジトリー サイズ ======================================================================================================== group/moduleパッケージをインストール: php-cli x86_64 7.4.6-1.el8.remi remi-modular 4.6 M php-common x86_64 7.4.6-1.el8.remi remi-modular 1.2 M php-fpm x86_64 7.4.6-1.el8.remi remi-modular 1.6 M php-json x86_64 7.4.6-1.el8.remi remi-modular 74 k php-mbstring x86_64 7.4.6-1.el8.remi remi-modular 527 k php-xml x86_64 7.4.6-1.el8.remi remi-modular 215 k 依存関係のインストール: httpd-filesystem noarch 2.4.37-16.module_el8.1.0+256+ae790463 AppStream 35 k oniguruma x86_64 6.8.2-1.el8 AppStream 188 k libxslt x86_64 1.1.32-3.el8 BaseOS 249 k 弱い依存関係のインストール: nginx-filesystem noarch 1:1.14.1-9.module_el8.0.0+184+e34fea82 AppStream 24 k モジュールプロファイルのインストール: php/common モジュールストリームの有効化: httpd 2.4 nginx 1.14 php remi-7.4 トランザクションの概要 ======================================================================================================== インストール 10 パッケージ ダウンロードサイズの合計: 8.7 M インストール済みのサイズ: 46 M パッケージのダウンロード: (1/10): httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch.r 139 kB/s | 35 kB 00:00 (2/10): libxslt-1.1.32-3.el8.x86_64.rpm 13 MB/s | 249 kB 00:00 (3/10): oniguruma-6.8.2-1.el8.x86_64.rpm 665 kB/s | 188 kB 00:00 (4/10): nginx-filesystem-1.14.1-9.module_el8.0.0+184+e34fea82.noarch.rp 68 kB/s | 24 kB 00:00 (5/10): php-common-7.4.6-1.el8.remi.x86_64.rpm 818 kB/s | 1.2 MB 00:01 (6/10): php-fpm-7.4.6-1.el8.remi.x86_64.rpm 913 kB/s | 1.6 MB 00:01 (7/10): php-json-7.4.6-1.el8.remi.x86_64.rpm 177 kB/s | 74 kB 00:00 (8/10): php-xml-7.4.6-1.el8.remi.x86_64.rpm 294 kB/s | 215 kB 00:00 (9/10): php-cli-7.4.6-1.el8.remi.x86_64.rpm 1.7 MB/s | 4.6 MB 00:02 (10/10): php-mbstring-7.4.6-1.el8.remi.x86_64.rpm 414 kB/s | 527 kB 00:01 -------------------------------------------------------------------------------------------------------- 合計 2.4 MB/s | 8.7 MB 00:03 警告: /var/cache/dnf/remi-modular-6408ecca79e22107/packages/php-cli-7.4.6-1.el8.remi.x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 5f11735a: NOKEY Remi's Modular repository for Enterprise Linux 8 - x86_64 3.0 MB/s | 3.1 kB 00:00 GPG 鍵 0x5F11735A をインポート中: Userid : "Remi's RPM repository <remi@remirepo.net>" Fingerprint: 6B38 FEA7 231F 87F5 2B9C A9D8 5550 9759 5F11 735A From : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8 鍵のインポートに成功しました トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : php-json-7.4.6-1.el8.remi.x86_64 1/10 scriptletの実行中: php-common-7.4.6-1.el8.remi.x86_64 2/10 インストール中 : php-common-7.4.6-1.el8.remi.x86_64 2/10 インストール中 : libxslt-1.1.32-3.el8.x86_64 3/10 インストール中 : oniguruma-6.8.2-1.el8.x86_64 4/10 scriptletの実行中: oniguruma-6.8.2-1.el8.x86_64 4/10 scriptletの実行中: nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch 5/10 インストール中 : nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch 5/10 scriptletの実行中: httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch 6/10 インストール中 : httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch 6/10 インストール中 : php-fpm-7.4.6-1.el8.remi.x86_64 7/10 scriptletの実行中: php-fpm-7.4.6-1.el8.remi.x86_64 7/10 インストール中 : php-mbstring-7.4.6-1.el8.remi.x86_64 8/10 インストール中 : php-xml-7.4.6-1.el8.remi.x86_64 9/10 インストール中 : php-cli-7.4.6-1.el8.remi.x86_64 10/10 scriptletの実行中: php-cli-7.4.6-1.el8.remi.x86_64 10/10 scriptletの実行中: php-fpm-7.4.6-1.el8.remi.x86_64 10/10 検証 : httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch 1/10 検証 : nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch 2/10 検証 : oniguruma-6.8.2-1.el8.x86_64 3/10 検証 : libxslt-1.1.32-3.el8.x86_64 4/10 検証 : php-cli-7.4.6-1.el8.remi.x86_64 5/10 検証 : php-common-7.4.6-1.el8.remi.x86_64 6/10 検証 : php-fpm-7.4.6-1.el8.remi.x86_64 7/10 検証 : php-json-7.4.6-1.el8.remi.x86_64 8/10 検証 : php-mbstring-7.4.6-1.el8.remi.x86_64 9/10 検証 : php-xml-7.4.6-1.el8.remi.x86_64 10/10 インストール済み: php-cli-7.4.6-1.el8.remi.x86_64 php-common-7.4.6-1.el8.remi.x86_64 php-fpm-7.4.6-1.el8.remi.x86_64 php-json-7.4.6-1.el8.remi.x86_64 php-mbstring-7.4.6-1.el8.remi.x86_64 php-xml-7.4.6-1.el8.remi.x86_64 nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch oniguruma-6.8.2-1.el8.x86_64 libxslt-1.1.32-3.el8.x86_64 完了しました! [phptestadmin@PHPTest ~]$ [phptestadmin@PHPTest ~]$
PHPインストール
[phptestadmin@PHPTest ~]$ sudo yum -y install php メタデータの期限切れの最終確認: 0:07:43 時間前の 2020年06月03日 04時23分19秒 に実施しました。 依存関係が解決しました。 ======================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ======================================================================================================== インストール: php x86_64 7.4.6-1.el8.remi remi-modular 3.0 M 依存関係のインストール: libsodium x86_64 1.0.18-2.el8 epel 162 k 弱い依存関係のインストール: php-opcache x86_64 7.4.6-1.el8.remi remi-modular 334 k php-pdo x86_64 7.4.6-1.el8.remi remi-modular 143 k php-sodium x86_64 7.4.6-1.el8.remi remi-modular 87 k トランザクションの概要 ======================================================================================================== インストール 5 パッケージ ダウンロードサイズの合計: 3.7 M インストール済みのサイズ: 13 M パッケージのダウンロード: (1/5): libsodium-1.0.18-2.el8.x86_64.rpm 848 kB/s | 162 kB 00:00 (2/5): php-pdo-7.4.6-1.el8.remi.x86_64.rpm 217 kB/s | 143 kB 00:00 (3/5): php-opcache-7.4.6-1.el8.remi.x86_64.rpm 346 kB/s | 334 kB 00:00 (4/5): php-sodium-7.4.6-1.el8.remi.x86_64.rpm 177 kB/s | 87 kB 00:00 (5/5): php-7.4.6-1.el8.remi.x86_64.rpm 949 kB/s | 3.0 MB 00:03 -------------------------------------------------------------------------------------------------------- 合計 1.0 MB/s | 3.7 MB 00:03 警告: /var/cache/dnf/epel-6519ee669354a484/packages/libsodium-1.0.18-2.el8.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 2f86d6a1: NOKEY Extra Packages for Enterprise Linux 8 - x86_64 1.6 MB/s | 1.6 kB 00:00 GPG 鍵 0x2F86D6A1 をインポート中: Userid : "Fedora EPEL (8) <epel@fedoraproject.org>" Fingerprint: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 鍵のインポートに成功しました トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : php-pdo-7.4.6-1.el8.remi.x86_64 1/5 インストール中 : php-opcache-7.4.6-1.el8.remi.x86_64 2/5 インストール中 : libsodium-1.0.18-2.el8.x86_64 3/5 インストール中 : php-sodium-7.4.6-1.el8.remi.x86_64 4/5 インストール中 : php-7.4.6-1.el8.remi.x86_64 5/5 scriptletの実行中: php-7.4.6-1.el8.remi.x86_64 5/5 検証 : libsodium-1.0.18-2.el8.x86_64 1/5 検証 : php-7.4.6-1.el8.remi.x86_64 2/5 検証 : php-opcache-7.4.6-1.el8.remi.x86_64 3/5 検証 : php-pdo-7.4.6-1.el8.remi.x86_64 4/5 検証 : php-sodium-7.4.6-1.el8.remi.x86_64 5/5 インストール済み: php-7.4.6-1.el8.remi.x86_64 php-opcache-7.4.6-1.el8.remi.x86_64 php-pdo-7.4.6-1.el8.remi.x86_64 php-sodium-7.4.6-1.el8.remi.x86_64 libsodium-1.0.18-2.el8.x86_64 完了しました! [phptestadmin@PHPTest ~]$
Apache httpd インストール
[phptestadmin@PHPTest ~]$ sudo yum -y install httpd-devel [sudo] phptestadmin のパスワード: メタデータの期限切れの最終確認: 0:05:42 時間前の 2020年06月03日 04時23分19秒 に実施しました。 依存関係が解決しました。 ======================================================================================================== パッケージ Arch バージョン リポジトリー サイズ ======================================================================================================== インストール: httpd-devel x86_64 2.4.37-16.module_el8.1.0+256+ae790463 AppStream 216 k 依存関係のインストール: apr x86_64 1.6.3-9.el8 AppStream 125 k apr-devel x86_64 1.6.3-9.el8 AppStream 246 k apr-util x86_64 1.6.1-6.el8 AppStream 105 k apr-util-devel x86_64 1.6.1-6.el8 AppStream 86 k centos-logos-httpd noarch 80.5-2.el8 AppStream 24 k httpd x86_64 2.4.37-16.module_el8.1.0+256+ae790463 AppStream 1.7 M httpd-tools x86_64 2.4.37-16.module_el8.1.0+256+ae790463 AppStream 103 k libdb-devel x86_64 5.3.28-37.el8 AppStream 46 k mod_http2 x86_64 1.11.3-3.module_el8.1.0+213+acce2796 AppStream 158 k cyrus-sasl x86_64 2.1.27-1.el8 BaseOS 96 k cyrus-sasl-devel x86_64 2.1.27-1.el8 BaseOS 128 k expat-devel x86_64 2.2.5-3.el8 BaseOS 55 k openldap-devel x86_64 2.4.46-11.el8_1 BaseOS 811 k perl-Carp noarch 1.42-396.el8 BaseOS 30 k perl-Errno x86_64 1.28-416.el8 BaseOS 76 k perl-Exporter noarch 5.72-396.el8 BaseOS 34 k perl-File-Path noarch 2.15-2.el8 BaseOS 38 k perl-IO x86_64 1.38-416.el8 BaseOS 141 k perl-PathTools x86_64 3.74-1.el8 BaseOS 90 k perl-Scalar-List-Utils x86_64 3:1.49-2.el8 BaseOS 68 k perl-Socket x86_64 4:2.027-3.el8 BaseOS 59 k perl-Text-Tabs+Wrap noarch 2013.0523-395.el8 BaseOS 24 k perl-Unicode-Normalize x86_64 1.25-396.el8 BaseOS 82 k perl-constant noarch 1.33-396.el8 BaseOS 25 k perl-interpreter x86_64 4:5.26.3-416.el8 BaseOS 6.3 M perl-libs x86_64 4:5.26.3-416.el8 BaseOS 1.6 M perl-macros x86_64 4:5.26.3-416.el8 BaseOS 72 k perl-parent noarch 1:0.237-1.el8 BaseOS 20 k perl-threads x86_64 1:2.21-2.el8 BaseOS 61 k perl-threads-shared x86_64 1.58-2.el8 BaseOS 48 k トランザクションの概要 ======================================================================================================== インストール 31 パッケージ ダウンロードサイズの合計: 13 M インストール済みのサイズ: 34 M パッケージのダウンロード: (1/31): apr-1.6.3-9.el8.x86_64.rpm 443 kB/s | 125 kB 00:00 (2/31): apr-util-1.6.1-6.el8.x86_64.rpm 289 kB/s | 105 kB 00:00 (3/31): apr-devel-1.6.3-9.el8.x86_64.rpm 637 kB/s | 246 kB 00:00 (4/31): apr-util-devel-1.6.1-6.el8.x86_64.rpm 817 kB/s | 86 kB 00:00 (5/31): httpd-devel-2.4.37-16.module_el8.1.0+256+ae790463.x86_64.rpm 2.3 MB/s | 216 kB 00:00 (6/31): httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_64.rpm 9.2 MB/s | 103 kB 00:00 (7/31): centos-logos-httpd-80.5-2.el8.noarch.rpm 110 kB/s | 24 kB 00:00 (8/31): libdb-devel-5.3.28-37.el8.x86_64.rpm 455 kB/s | 46 kB 00:00 (9/31): httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64.rpm 6.1 MB/s | 1.7 MB 00:00 (10/31): mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64.rpm 972 kB/s | 158 kB 00:00 (11/31): cyrus-sasl-2.1.27-1.el8.x86_64.rpm 591 kB/s | 96 kB 00:00 (12/31): cyrus-sasl-devel-2.1.27-1.el8.x86_64.rpm 1.3 MB/s | 128 kB 00:00 (13/31): expat-devel-2.2.5-3.el8.x86_64.rpm 2.2 MB/s | 55 kB 00:00 (14/31): perl-Carp-1.42-396.el8.noarch.rpm 59 kB/s | 30 kB 00:00 (15/31): perl-Exporter-5.72-396.el8.noarch.rpm 1.1 MB/s | 34 kB 00:00 (16/31): perl-Errno-1.28-416.el8.x86_64.rpm 143 kB/s | 76 kB 00:00 (17/31): perl-File-Path-2.15-2.el8.noarch.rpm 910 kB/s | 38 kB 00:00 (18/31): perl-IO-1.38-416.el8.x86_64.rpm 2.8 MB/s | 141 kB 00:00 (19/31): perl-PathTools-3.74-1.el8.x86_64.rpm 8.4 MB/s | 90 kB 00:00 (20/31): perl-Scalar-List-Utils-1.49-2.el8.x86_64.rpm 2.5 MB/s | 68 kB 00:00 (21/31): perl-Socket-2.027-3.el8.x86_64.rpm 2.2 MB/s | 59 kB 00:00 (22/31): perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch.rpm 1.5 MB/s | 24 kB 00:00 (23/31): perl-Unicode-Normalize-1.25-396.el8.x86_64.rpm 4.1 MB/s | 82 kB 00:00 (24/31): perl-constant-1.33-396.el8.noarch.rpm 844 kB/s | 25 kB 00:00 (25/31): openldap-devel-2.4.46-11.el8_1.x86_64.rpm 1.2 MB/s | 811 kB 00:00 (26/31): perl-macros-5.26.3-416.el8.x86_64.rpm 801 kB/s | 72 kB 00:00 (27/31): perl-parent-0.237-1.el8.noarch.rpm 1.9 MB/s | 20 kB 00:00 (28/31): perl-threads-2.21-2.el8.x86_64.rpm 7.4 MB/s | 61 kB 00:00 (29/31): perl-threads-shared-1.58-2.el8.x86_64.rpm 2.6 MB/s | 48 kB 00:00 (30/31): perl-libs-5.26.3-416.el8.x86_64.rpm 8.2 MB/s | 1.6 MB 00:00 (31/31): perl-interpreter-5.26.3-416.el8.x86_64.rpm 20 MB/s | 6.3 MB 00:00 -------------------------------------------------------------------------------------------------------- 合計 7.2 MB/s | 13 MB 00:01 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : perl-Exporter-5.72-396.el8.noarch 1/31 インストール中 : perl-libs-4:5.26.3-416.el8.x86_64 2/31 インストール中 : perl-Carp-1.42-396.el8.noarch 3/31 インストール中 : apr-1.6.3-9.el8.x86_64 4/31 scriptletの実行中: apr-1.6.3-9.el8.x86_64 4/31 インストール中 : apr-util-1.6.1-6.el8.x86_64 5/31 scriptletの実行中: apr-util-1.6.1-6.el8.x86_64 5/31 インストール中 : perl-Scalar-List-Utils-3:1.49-2.el8.x86_64 6/31 インストール中 : apr-devel-1.6.3-9.el8.x86_64 7/31 インストール中 : httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 8/31 インストール中 : perl-macros-4:5.26.3-416.el8.x86_64 9/31 インストール中 : perl-parent-1:0.237-1.el8.noarch 10/31 インストール中 : perl-Errno-1.28-416.el8.x86_64 11/31 インストール中 : perl-Socket-4:2.027-3.el8.x86_64 12/31 インストール中 : perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch 13/31 インストール中 : perl-Unicode-Normalize-1.25-396.el8.x86_64 14/31 インストール中 : perl-File-Path-2.15-2.el8.noarch 15/31 インストール中 : perl-IO-1.38-416.el8.x86_64 16/31 インストール中 : perl-PathTools-3.74-1.el8.x86_64 17/31 インストール中 : perl-constant-1.33-396.el8.noarch 18/31 インストール中 : perl-threads-1:2.21-2.el8.x86_64 19/31 インストール中 : perl-threads-shared-1.58-2.el8.x86_64 20/31 インストール中 : perl-interpreter-4:5.26.3-416.el8.x86_64 21/31 インストール中 : expat-devel-2.2.5-3.el8.x86_64 22/31 scriptletの実行中: cyrus-sasl-2.1.27-1.el8.x86_64 23/31 インストール中 : cyrus-sasl-2.1.27-1.el8.x86_64 23/31 scriptletの実行中: cyrus-sasl-2.1.27-1.el8.x86_64 23/31 インストール中 : cyrus-sasl-devel-2.1.27-1.el8.x86_64 24/31 インストール中 : openldap-devel-2.4.46-11.el8_1.x86_64 25/31 インストール中 : libdb-devel-5.3.28-37.el8.x86_64 26/31 インストール中 : apr-util-devel-1.6.1-6.el8.x86_64 27/31 インストール中 : centos-logos-httpd-80.5-2.el8.noarch 28/31 インストール中 : mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64 29/31 インストール中 : httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 30/31 scriptletの実行中: httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 30/31 インストール中 : httpd-devel-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 31/31 scriptletの実行中: httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 31/31 scriptletの実行中: httpd-devel-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 31/31 検証 : apr-1.6.3-9.el8.x86_64 1/31 検証 : apr-devel-1.6.3-9.el8.x86_64 2/31 検証 : apr-util-1.6.1-6.el8.x86_64 3/31 検証 : apr-util-devel-1.6.1-6.el8.x86_64 4/31 検証 : centos-logos-httpd-80.5-2.el8.noarch 5/31 検証 : httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 6/31 検証 : httpd-devel-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 7/31 検証 : httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 8/31 検証 : libdb-devel-5.3.28-37.el8.x86_64 9/31 検証 : mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64 10/31 検証 : cyrus-sasl-2.1.27-1.el8.x86_64 11/31 検証 : cyrus-sasl-devel-2.1.27-1.el8.x86_64 12/31 検証 : expat-devel-2.2.5-3.el8.x86_64 13/31 検証 : openldap-devel-2.4.46-11.el8_1.x86_64 14/31 検証 : perl-Carp-1.42-396.el8.noarch 15/31 検証 : perl-Errno-1.28-416.el8.x86_64 16/31 検証 : perl-Exporter-5.72-396.el8.noarch 17/31 検証 : perl-File-Path-2.15-2.el8.noarch 18/31 検証 : perl-IO-1.38-416.el8.x86_64 19/31 検証 : perl-PathTools-3.74-1.el8.x86_64 20/31 検証 : perl-Scalar-List-Utils-3:1.49-2.el8.x86_64 21/31 検証 : perl-Socket-4:2.027-3.el8.x86_64 22/31 検証 : perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch 23/31 検証 : perl-Unicode-Normalize-1.25-396.el8.x86_64 24/31 検証 : perl-constant-1.33-396.el8.noarch 25/31 検証 : perl-interpreter-4:5.26.3-416.el8.x86_64 26/31 検証 : perl-libs-4:5.26.3-416.el8.x86_64 27/31 検証 : perl-macros-4:5.26.3-416.el8.x86_64 28/31 検証 : perl-parent-1:0.237-1.el8.noarch 29/31 検証 : perl-threads-1:2.21-2.el8.x86_64 30/31 検証 : perl-threads-shared-1.58-2.el8.x86_64 31/31 インストール済み: httpd-devel-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 apr-1.6.3-9.el8.x86_64 apr-devel-1.6.3-9.el8.x86_64 apr-util-1.6.1-6.el8.x86_64 apr-util-devel-1.6.1-6.el8.x86_64 centos-logos-httpd-80.5-2.el8.noarch httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_64 libdb-devel-5.3.28-37.el8.x86_64 mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64 cyrus-sasl-2.1.27-1.el8.x86_64 cyrus-sasl-devel-2.1.27-1.el8.x86_64 expat-devel-2.2.5-3.el8.x86_64 openldap-devel-2.4.46-11.el8_1.x86_64 perl-Carp-1.42-396.el8.noarch perl-Errno-1.28-416.el8.x86_64 perl-Exporter-5.72-396.el8.noarch perl-File-Path-2.15-2.el8.noarch perl-IO-1.38-416.el8.x86_64 perl-PathTools-3.74-1.el8.x86_64 perl-Scalar-List-Utils-3:1.49-2.el8.x86_64 perl-Socket-4:2.027-3.el8.x86_64 perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch perl-Unicode-Normalize-1.25-396.el8.x86_64 perl-constant-1.33-396.el8.noarch perl-interpreter-4:5.26.3-416.el8.x86_64 perl-libs-4:5.26.3-416.el8.x86_64 perl-macros-4:5.26.3-416.el8.x86_64 perl-parent-1:0.237-1.el8.noarch perl-threads-1:2.21-2.el8.x86_64 perl-threads-shared-1.58-2.el8.x86_64 完了しました! [phptestadmin@PHPTest ~]$ [phptestadmin@PHPTest ~]$ sudo yum -y install mod_ssl メタデータの期限切れの最終確認: 0:07:05 時間前の 2020年06月03日 04時23分19秒 に実施しました。 依存関係が解決しました。 ======================================================================================================== パッケージ Arch バージョン リポジトリー サイズ ======================================================================================================== インストール: mod_ssl x86_64 1:2.4.37-16.module_el8.1.0+256+ae790463 AppStream 131 k 依存関係のインストール: sscg x86_64 2.3.3-6.el8 AppStream 43 k トランザクションの概要 ======================================================================================================== インストール 2 パッケージ ダウンロードサイズの合計: 173 k インストール済みのサイズ: 391 k パッケージのダウンロード: (1/2): mod_ssl-2.4.37-16.module_el8.1.0+256+ae790463.x86_64.rpm 862 kB/s | 131 kB 00:00 (2/2): sscg-2.3.3-6.el8.x86_64.rpm 86 kB/s | 43 kB 00:00 -------------------------------------------------------------------------------------------------------- 合計 350 kB/s | 173 kB 00:00 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : sscg-2.3.3-6.el8.x86_64 1/2 インストール中 : mod_ssl-1:2.4.37-16.module_el8.1.0+256+ae790463.x86_64 2/2 scriptletの実行中: mod_ssl-1:2.4.37-16.module_el8.1.0+256+ae790463.x86_64 2/2 検証 : mod_ssl-1:2.4.37-16.module_el8.1.0+256+ae790463.x86_64 1/2 検証 : sscg-2.3.3-6.el8.x86_64 2/2 インストール済み: mod_ssl-1:2.4.37-16.module_el8.1.0+256+ae790463.x86_64 sscg-2.3.3-6.el8.x86_64 完了しました! [phptestadmin@PHPTest ~]$
Apacheの起動
httpdサービスを起動します。
[phptestadmin@PHPTest ~]$ sudo systemctl enable httpd.service [phptestadmin@PHPTest ~]$ sudo systemctl restart httpd.service [phptestadmin@PHPTest ~]$ service httpd status Redirecting to /bin/systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/httpd.service.d └─php-fpm.conf Active: active (running) since Wed 2020-06-03 04:33:55 UTC; 4min 47s ago Docs: man:httpd.service(8) Main PID: 31012 (httpd) Status: "Running, listening on: port 443, port 80" Tasks: 213 (limit: 10357) Memory: 26.1M CGroup: /system.slice/httpd.service ├─31012 /usr/sbin/httpd -DFOREGROUND ├─31014 /usr/sbin/httpd -DFOREGROUND ├─31015 /usr/sbin/httpd -DFOREGROUND ├─31016 /usr/sbin/httpd -DFOREGROUND └─31017 /usr/sbin/httpd -DFOREGROUND [phptestadmin@PHPTest ~]$
PHPVersionの確認
index.phpファイルを以下の通り追加します。
[phptestadmin@PHPTest html]$ sudo vi /var/www/html/index.php <?php phpinfo();
ブラウザから http://[IPアドレス] にアクセスしてPHPVersionのページが表示されるか確認してください。
アクセスできない場合は、ファイアウォール(ポート)の確認など行ってください。
php-odbcのインストール
PHPのアプリケーションからODBC Driverを利用するには、php-odbcというライブラリが必要となりますのでyumでインストールします。
[phptestadmin@PHPTest html]$ sudo yum install php-odbc メタデータの期限切れの最終確認: 0:23:11 時間前の 2020年06月03日 04時23分19秒 に実施しました。 依存関係が解決しました。 ======================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ======================================================================================================== インストール: php-odbc x86_64 7.4.6-1.el8.remi remi-modular 98 k トランザクションの概要 ======================================================================================================== インストール 1 パッケージ ダウンロードサイズの合計: 98 k インストール済みのサイズ: 231 k これでよろしいですか? [y/N]: y パッケージのダウンロード: php-odbc-7.4.6-1.el8.remi.x86_64.rpm 119 kB/s | 98 kB 00:00 -------------------------------------------------------------------------------------------------------- 合計 90 kB/s | 98 kB 00:01 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : php-odbc-7.4.6-1.el8.remi.x86_64 1/1 scriptletの実行中: php-odbc-7.4.6-1.el8.remi.x86_64 1/1 検証 : php-odbc-7.4.6-1.el8.remi.x86_64 1/1 インストール済み: php-odbc-7.4.6-1.el8.remi.x86_64 完了しました! [phptestadmin@PHPTest html]$
Salesforceからデータを取得するPHPアプリケーションの作成
Salesforceの取引先情報(Account)からデータを取得してHTML化して表示するPHPコードを作成します。
<?php $cnx = odbc_connect("CData Salesforce Sys", "", ""); $stmt = odbc_exec($cnx, "SELECT Name, Type, AccountNumber, BillingCountry, BillingCity, BillingStreet, Phone FROM Account"); echo 'Counts:'.var_export(odbc_result_all($stmt, "BGCOLOR='#ffffe0' border=3 width=50% "), true); odbc_close($cnx); ?>
PHPのサンプルコードはこちらの製品マニュアルをご覧ください。2行目のodbc_connectの第一引数の"CData Salesforce Sys"は、odbc.iniで指定してDSN名とあわせてください。
上記PHPコードをviなどのエディタでsalesforce.phpなどの名称のPHPファイルとして保存します。
[phptestadmin@PHPTest html]$ pwd /var/www/html [phptestadmin@PHPTest html]$ sudo vi salesforce.php <?php $cnx = odbc_connect("CData Salesforce Sys", "", ""); $stmt = odbc_exec($cnx, "SELECT Name, Type, AccountNumber, BillingCountry, BillingCity, BillingStreet, Phone FROM Account"); echo 'Counts:'.var_export(odbc_result_all($stmt, "BGCOLOR='#ffffe0' border=3 width=50% "), true); odbc_close($cnx); ?> [phptestadmin@PHPTest html]$
コマンドからPHPを実行
phpコマンドで上記で作成したPHPコードを実行してみます。HTMLと最後にCoutns:件数が表示されれば成功です。
[phptestadmin@PHPTest html]$ php salesforce.php <table BGCOLOR='#ffffe0' border=3 width=100% ><tr><th>Name</th><th>Type</th><th>AccountNumber</th><th>BillingCountry</th><th>BillingCity</th><th>BillingStreet</th><th>Phone</th></tr> : (省略) <tr><td>サンプル企業 02</td><td>Customer - Direct</td><td>10002</td><td>NULL</td><td>NULL</td><td>ミューア ロード 9068</td><td>888888888</td></tr> </table> Counts:20[phptestadmin@PHPTest html]$
ブラウザからPHPを呼び出し
ブラウザから http://[IPアドレス]/salesforce.php にアクセスします。下記のようにSalesforceの取引先データがHTMLのテーブルとして表示されれば成功です。
注意事項
ApatcheのWebサーバをapacheユーザで実行する場合は、CData ODBC Driverがアクセスする各種リソースの格納パスへのアクセス権限(書き込み権限など)が必要となります。必要に応じてアクセス権を付与してください。
- OAuthのアクセストークンを保存するファイル(ODBCのDSN OAuthSettingsLocationで指定)
- ログファイル( ODBCのDSN Logfileで指定 )
まとめ
いかがでしたでしょうか?上記手順では、Salesforceを例にご紹介しましたが、同様の手順でCDataが提供する200を超えるLinux版ODBC Driverが同様にPHPアプリケーションから利用可能です。ODBC Driverは以下のWebページからダウンロードできますので是非お試しください。