libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev\
libbz2-dev libpq-dev libgeos-c1 libgeos++-dev libproj-dev \
postgresql-server-dev-9.6 postgresql-9.6-postgis-2.3 postgresql-contrib-9.6 \
- apache2 php5 php5-pgsql php-pear php-db php5-intl
+ apache2 php5 php5-pgsql php5-intl php-pear
-sudo apt-get install -y -qq python3-dev python3-pip python3-psycopg2 phpunit php5-cgi
+sudo apt-get install -y -qq python3-dev python3-pip python3-psycopg2 php5-cgi
+
+pip3 install --quiet behave nose pytidylib psycopg2-binary
+
+# Travis uses phpenv to support multiple PHP versions. We need to make sure
+# these packages get installed to the phpenv-set PHP (below /home/travis/.phpenv/),
+# not the system PHP (/usr/bin/php)
+sudo PHP_PEAR_PHP_BIN=`which php` pear -q install pear/PEAR-1.10.0
+sudo PHP_PEAR_PHP_BIN=`which php` pear -q install DB
+sudo PHP_PEAR_PHP_BIN=`which php` pear -q install PHP_CodeSniffer
+sudo PHP_PEAR_PHP_BIN=`which php` pear list
+# re-populate the shims/ directory, e.g. adds phpcs
+phpenv rehash
+ls -la /home/travis/.phpenv/shims/
+
+# $PHPENV_VERSION and $TRAVIS_PHP_VERSION are unset.
+export PHPENV_VERSION=$(cat /home/travis/.phpenv/version)
+
+# add lib/php/pear to the PHP include path
+tee /tmp/travis.php.ini << EOF
+include_path = .:/home/travis/.phpenv/versions/$PHPENV_VERSION/share/pear:/home/travis/.phpenv/versions/$PHPENV_VERSION/lib/php/pear
+EOF
+phpenv config-add /tmp/travis.php.ini
-pip3 install --quiet behave nose pytidylib psycopg2
-sudo pear -q install PHP_CodeSniffer
sudo -u postgres createuser -S www-data