|
|
(11 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | ==Notes== | + | ==Free DB2 Instance== |
− | Using DB2 with PHP potentially requires the installation of 2 drivers, ibm_db2, and pdo_ibm. The following instructions are intended as a guide and are not exhaustive in their scope. Knowledge of compiling applications is necessary for this process.
| + | |
− | DB2 is only supported on Linux due to the lack of available drivers for other platforms.
| + | |
| | | |
− | ==Linux, Manual DreamFactory Install (via Github)==
| + | IBM offers a free DB2 instance which can be used for development purposes. Create an account at [[https://console.bluemix.net/dashboard/apps/ IBM Cloud]] to create an instance. |
− | ===Debian/Ubuntu/Mint/Etc===
| + | |
− | ====IBM_DB2====
| + | |
− | #Get the prerequisites
| + | |
− | #*<source lang=bash>$ sudo apt-get install build-essential php5-dev php-pear ksh zip</source>
| + | |
− | #Download the DS Driver package from IBM (login required, free.) https://www-01.ibm.com/marketing/iwm/iwm/web/preLogin.do?source=swg-idsdpds
| + | |
− | #Extract the DS Driver package to a directory of your choosing. In the examples /opt/ibm is used for this.
| + | |
− | #*<source lang=bash>$ sudo mkdir /opt/ibm</source>
| + | |
− | #*<source lang=bash>$ sudo tar -zxvf ibm_data_server_driver_package_linuxx64_v10.5.tar.gz -C /opt/ibm</source>
| + | |
− | #Change directory to the extracted files and make the installer executable
| + | |
− | #*<source lang=bash>$ cd /opt/ibm/dsdriver</source>
| + | |
− | #*<source lang=bash>$ sudo chmod +x installDriver</source>
| + | |
− | #Install the DS Driver package
| + | |
− | #*<source lang=bash>$ sudo ksh installDriver</source>
| + | |
− | #*You should see feed back on the screen indicating successful installation. If you do not, please troubleshoot and resolve before proceeding
| + | |
− | #Build and install the module with PECL. The installer will ask you for the DB2 Installation Directory, which will be /opt/ibm/dsdriver
| + | |
− | #*<source lang=bash>$ sudo pecl install ibm_db2</source>
| + | |
− | #*<source lang=bash>DB2 Installation Directory? : /opt/ibm/dsdriver</source>
| + | |
− | #Enable the module in PHP
| + | |
− | #*Use your text editor of choice (vim in this example) to add an ibm_db2.ini file
| + | |
− | #*<source lang=bash>$ sudo vim /etc/php5/mods-available/ibm_db2.ini</source>
| + | |
− | #*The file should have a single line
| + | |
− | #*<source lang=bash>extension=ibm_db2.so</source>
| + | |
− | #*Save the file. Then enable the module the php enmod
| + | |
− | #*<source lang=bash>$ sudo php5enmod ibm_db2</source>
| + | |
− | #Confirm installed and working in PHP
| + | |
− | #*<source lang=bash>$ php -m</source>
| + | |
− | #*You should not see any errors at the top of the module list, and ibm_db2 should be in the module list.
| + | |
| | | |
− | ====PDO_IBM==== | + | ==Notes== |
− | *This process requires you to configure and compile the driver source code, and has some possible steps that will be unique to each system. Please read through the instructions carefully.
| + | DB2 access is accomplished using the PDO_IBM driver. Recently DreamFactory patched this driver to ensure PHP 7 compatibility. Please install using this GitHub readme as a guide [https://github.com/dreamfactorysoftware/PDO_IBM-1.3.4-patched PDO_IBM Patched] |
− | *For the sake of simplicity and avoiding permissions issues, it is recommended to start in your home directory (<code>$ cd ~</code>) before performing these instructions.
| + | |
− | #Download the latest source package from PECL (version 1.3.4 as of this writing.)
| + | |
− | #*https://pecl.php.net/package/PDO_IBM
| + | |
− | #Extract the file
| + | |
− | #*<source lang=bash>$ tar -zxvf PDO_IBM-1.3.4.tgz</source>
| + | |
− | #Change into the extracted directory and phpize.
| + | |
− | #*<source lang=bash>$ cd PDO_IBM-1.3.4</source>
| + | |
− | #*<source lang=bash>$ phpize</source>
| + | |
− | #Configure the package
| + | |
− | #*In some environments configure may fail because it looks for the php_pdo_driver.h file in the wrong location. In our test environment (Ubuntu 14.04) this was resolved by first making a symlink from include/php5 folder to include/php.
| + | |
− | #**<source lang=bash>$ sudo ln -s /usr/include/php5 /usr/include/php</source>
| + | |
− | #*<source lang=bash>$ ./configure --with-pdo-ibm=/opt/ibm/dsdriver/lib</source>
| + | |
− | #Compile the package and install
| + | |
− | #*<source lang=bash>$ make</source>
| + | |
− | #*<source lang=bash>$ sudo make install</source>
| + | |
− | #Enable the module in PHP
| + | |
− | #*Use your text editor of choice (I use vim) to add a pdo_ibm.ini file
| + | |
− | #*<source lang=bash>$ sudo vim /etc/php5/mods-available/pdo_ibm.ini</source>
| + | |
− | #*The file should have a single line
| + | |
− | #*<source lang=bash>extension=pdo_ibm.so</source>
| + | |
− | #*Save the file. Then enable the module the php enmod
| + | |
− | #*<source lang=bash>$ sudo php5enmod pdo_ibm</source>
| + | |
− | #Confirm installed and working in PHP
| + | |
− | #*<source lang=bash>$ php -m</source>
| + | |
− | #*You should not see any errors at the top of the module list, and pdo_ibm should be in the module list.
| + | |
| | | |
− | ==Linux, Bitnami Install/VM==
| + | For concrete example see the [[../../../APT/Ubuntu_16.04/Modules/IBM DB2_Ubuntu_16| Ubuntu 16.04]] instructions. |
− | ===PDO_IBM===
| + | |
− | #Get the prerequisites
| + | |
− | #*IBM recommends the KSH shell for installing the dsdriver package. Debian example below:
| + | |
− | #*<source lang=bash>$ sudo apt-get install build-essential ksh</source>
| + | |
− | #Download the DS Driver package from IBM (login required, free.) https://www-01.ibm.com/marketing/iwm/iwm/web/preLogin.do?source=swg-idsdpds
| + | |
− | #Extract the DS Driver package to a directory of your choosing. In the examples /opt/ibm is used for this.
| + | |
− | #*<source lang=bash>$ sudo mkdir /opt/ibm</source>
| + | |
− | #*<source lang=bash>$ sudo tar -zxvf ibm_data_server_driver_package_linuxx64_v10.5.tar.gz -C /opt/ibm</source>
| + | |
− | #Change directory to the extracted files and make the installer executable
| + | |
− | #*<source lang=bash>$ cd /opt/ibm/dsdriver</source>
| + | |
− | #*<source lang=bash>$ sudo chmod +x installDriver</source>
| + | |
− | #Install the DS Driver package
| + | |
− | #*<source lang=bash>$ sudo ksh installDriver</source>
| + | |
− | #*You should see feed back on the screen indicating successful installation. If you do not, please troubleshoot and resolve before proceeding
| + | |
− | #Enable the pdo_ibm.so module in php.ini. Php.ini will be in a different location depending on where you installed the Bitnami package. In the examples, we will assume the Bitnami VM, which has it located at /opt/bitnami/php/etc/php.ini, and we will use vim to edit. You can use any text editor you prefer
| + | |
− | #*<source lang=bash>$ sudo vim /opt/bitnami/php/bin/php</source>
| + | |
− | #*Locate the line that says
| + | |
− | #**<source lang=bash>;extension=pdo_ibm.so</source>
| + | |
− | #*Uncomment the line by removing the semicolon (;)
| + | |
− | #*Save the file.
| + | |
− | #Set the LD path in the setenv.sh file.
| + | |
− | #*<source lang=bash>$ sudo vim /opt/bitnami/scripts/setenv.sh</source>
| + | |
− | #*Add this text to the end of the file
| + | |
− | #*<source lang=bash>LD_LIBRARY_PATH=/opt/ibm/dsdriver/lib:$LD_LIBRARY_PATH
| + | |
− | export LD_LIBRARY_PATH</source>
| + | |
− | #*Save the sentenv.sh file
| + | |
− | #Restart the Bitnami stack
| + | |
− | #*<source lang=bash>$ sudo /opt/bitnami/ctlscript.sh restart</source>
| + | |
− | #Confirm installed and working in PHP
| + | |
− | #*<source lang=bash>$ sudo /opt/bitnami/php/bin/php -m</source>
| + | |
− | #*You should not see any errors at the top of the module list, and pdo_ibm should be in the module list.
| + | |