Outdated PHP Extension Required by DreamFactory

Can someone explain how they get DreamFactory working when it requires outdated PHP extensions that have not been updated in years??

Here is a list of extensions I was trying to install, however, installation kept failing no matter what I tried. That forced me to reach out to my web host (LiquidWeb) and ask them to install the PHP extensions for me. They were only able to install a few of the required PHP extension because some of them are outdated and have not been updated in years and do not work with PHP 7.1 or above. Here is the list of PHP extensions and the response from my web host.

Hello, I’ve looked into this and installed some of the requested PHP extensions via PECL. This is what I’ve managed to install on PHP 7.0, PHP 7.1, PHP 7.2 and PHP 7.3

  1. MEMCACHED [done]
  2. COUCHBASE [done]
  3. CASSANDRA [done]
  4. APC [failed]
  5. V8JS [failed]
  6. PDO_FIREBIRD [failed]
  7. PDO_PGSQL [done]

When I run the DreamFactory ./installer.sh I get the following message at the completion of running it.

Required PHP extensions that need to be installed:
** cassandra**
** apc**
** v8js**
** pdo_firebird**

As you can see in the response from my host “Cassandra” was installed but is not being detected by DreamFactory.

As for the Outdated PHP extensions here is what my web host has reported for the following.

I’ll try to provide as much details as to why some of the above-requested PHP extensions have failed installation.

4. APC [failed]

root@host [2533 14:22:14 ~]# /opt/cpanel/ea-php70/root/usr/bin/pecl install apc

/root/tmp/pear/APC/apc.c:47:43: fatal error: ext/standard/php_smart_str.h: No such file or directory

include “ext/standard/php_smart_str.h”

^
compilation terminated.
make: *** [apc.lo] Error 1
ERROR: `make’ failed

Reason why this is failing seems to be related to outdated APC code which hasn’t been updated since 2012 (https(://) pecl.php (.net)/package/APC)
The above error refers to the following API / function: smart_str was renamed into smart_string in PHP 7.X. What this means is that APC is not installable for PHP 7.0 and above, PHP 5.6 seems to be the last compatible version.

An alternative to APC would be OPcache. The PHP developers directly integrated what they call OPCache into the core of the product. Not only does this provide greater overall product stability, it is officially supported by the PHP developers.

5. V8JS [failed]

root@host [2494 12:30:29 ~]# /opt/cpanel/ea-php70/root/usr/bin/pecl install v8js

checking for V8 files in default path… not found
configure: error: Please reinstall the v8 distribution
ERROR: `/root/tmp/pear/v8js/configure --with-php-config=/opt/cpanel/ea-php70/root/usr/bin/php-config --with-v8js=/usr/lib64/’ failed

I’ve tried installing this with the latest available version of v8js ([2.1.0](https (://) pecl.php (.net)/package/v8js/2.1.0)) via PECL but it seems to be incompatible with the latest version available in the operating system repository (v8-3.14.5) which I’ve shared below:

root@host [2509 12:46:21 ~]# yum list installed | grep v8 v8.x86_64 1:3.14.5.10-25.el7 @epel v8-devel.x86_64 1:3.14.5.10-25.el7 @epel v8-python.x86_64 1:3.14.5.10-25.el7 @epel

I’ve looked into the changelog of v8js on PECL and found that version 0.2.0 mention’s this in changelog (- adapt to latest v8 API (v8 versions from 3.24.6 up to latest 4.3 branch supported now)) since current available version in CentOS repository is v8-3.14.5 V8jS PECL extension doesn’t seems to be compatible with it for installation.

So we were faced with the option to either try to compile v8 or try install a very old version probably unsupported by PHP7.x

6. PDO_FIREBIRD [failed]

root@host [2526 13:30:40 ~]# /opt/cpanel/ea-php70/root/usr/bin/pecl install channel://pecl.php.net/PDO_FIREBIRD-0.2
WARNING: channel “pear.php.net” has updated its protocols, use “pecl channel-update [pear.php (.net)](http (://) pear.php (.net)/)” to update
pear/PDO_FIREBIRD requires PHP (version >= 5.0.3, version <= 6.0.0), installed version is 7.0.33
No valid packages found
install failed

Installation of PDO_FIREBIRD on PHP 7.X doesn’t seem to be possible, when trying to install it states the requirements are PHP (version >= 5.0.3, version <= 6.0.0)
The extension itself wasn’t updated since 2005 more details available at this URL: https (://) pecl.php (.net)/package/PDO_FIREBIRD

If there’s anything else we can be of assistance, please don’t hesitate to respond back and let us know.

If this is the case with the PHP extensions how do people actually get DreamFactory working using the latest PHP versions 7.1 - 7.2 - 7.3 Or are these PHP extensions not required in order for DreamFactory to work to it’s fullest capacity on the OSS version??

I am hoping someone is able to provide some helpful advice so that I can actually get DreamFactory working.

I am trying to use DreamFactory on a LiquidWeb VPS - CentOS 7 - PHP - MySQL - cPanel - Linux - Apache server.

I have installed DreamFactory from source many times and use PHP Version 7.2. I’ve not had these issues. Those could be optional installs? Where did you source the install on your web host?
The only time I’ve faced something similar (other than wrangling with the mongo installs), is when they added Oracle support. I got the following errors:

php composer.phar install --no-dev
Loading composer repositories with package information
Installing dependencies from lock file
Your requirements could not be resolved to an installable set of packages.

Problem 1
- Installation request for yajra/laravel-oci8 v5.5.8 -> satisfiable by yajra/laravel-oci8[v5.5.8].
- yajra/laravel-oci8 v5.5.8 requires ext-oci8 >=2.0.0 -> the requested PHP extension oci8 is missing from your system.
Problem 2
- yajra/laravel-oci8 v5.5.8 requires ext-oci8 >=2.0.0 -> the requested PHP extension oci8 is missing from your system.
- dreamfactory/df-oracledb 0.15.2 requires yajra/laravel-oci8 5.5.* -> satisfiable by yajra/laravel-oci8[v5.5.8].
- Installation request for dreamfactory/df-oracledb 0.15.2 -> satisfiable by dreamfactory/df-oracledb[0.15.2].

sudo pecl install oci8
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading oci8-2.1.8.tgz ...
Starting to download oci8-2.1.8.tgz (194,154 bytes)
.........................................done: 194,154 bytes
11 source files, building
running: phpize
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] :

I opened a ticket with them on Desk (when I had support) and got this answer:

On the latest release of DreamFactory we had so many people asking for Oracle support we added a platform req for it. You can skip it by using: —ignore-platform-reqs if you are not using Oracle. We are currently re-evaluating this strategy.