はじめに
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の最小バージョンや依存ライブラリはこちらからご覧いただけます。
cdn.cdata.com
手順
Linuxへのログイン
SSHコマンドでローカルマシンからPHP Webアプリケーションを構築するLinuxマシンに接続します。
~/Desktop/Work/pem $ ssh -i phptestadmin.pem [email protected]
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点に要約されます:
[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...
準備しています...
更新中 / インストール中...
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: [email protected]
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[email protected]
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...
準備しています...
更新中 / インストール中...
1:remi-release-8.1-2.el8.remi
[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 "
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 インストール
yum で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) "
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 インストール
yum から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 コードを作成します。
$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名とあわせてください。
cdn.cdata.com
上記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ページからダウンロードできますので是非お試しください。
https://www.cdata.com/jp/odbc/
関連コンテンツ