diff --git a/.travis.yml b/.travis.yml
index 2a5652c..bcc73f3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,42 +1,56 @@
-dist: xenial
-lang: php
-compiler:
-    - gcc
-cache:
-    directories:
-        - /home/travis/.phpenv/
-env:
-    global:
-        - MEMPROF_CFLAGS='-Wall -Werror'
+# TravisCI configuration for arnaud-lb/php-memory-profiler
+
+if: "branch = v2"
+
+language: "php"
+os:
+    - "linux"
+dist: "bionic"
+
+addons:
+    apt:
+        packages:
+            - "libjudy-dev"
+            - "libonig-dev"
+            - "libzip-dev"
+
+php:
+    - "8.0"
+    - "7.4"
+    - "7.3"
+    - "7.2"
+    - "7.1"
+
 jobs:
-    allow_failures:
-        - env: PHP_VERSION=8.0snapshot
     fast_finish: true
-    include:
-        - env: PHP_VERSION=8.0snapshot
-        - env: PHP_VERSION=7.4.12
-        - env: PHP_VERSION=7.3.24
-        - env: PHP_VERSION=7.2.19
-        - env: PHP_VERSION=7.1.33
+
+cache:
+    directories:
+        - "${HOME}/.phpenv/"
 
 before_install:
     - |
-        # Use a non-zts PHP build
-        set -e
-        sudo apt-get install libjudy-dev libonig-dev libzip-dev
-        if ! [ -f $HOME/.phpenv/memprof-travis-cached ]; then
-            echo "Building PHP"
-            git clone git://github.com/php-build/php-build.git $HOME/.phpenv/plugins/php-build
-            phpenv install --verbose --force $PHP_VERSION
-            rm -rf $HOME/.phpenv/plugins/php-build
-            touch $HOME/.phpenv/memprof-travis-cached
-        else
-            echo "PHP already built"
+        # Using PHP non-ZTS
+        PHP_VERSION="$(php -r 'echo PHP_VERSION;')"
+        if ! [ -f "${HOME}/.phpenv/php-non-zts-built" ]; then
+            echo "Building PHP ZTS ${PHP_VERSION} ..."
+            git clone git://github.com/php-build/php-build.git "${HOME}/.phpenv/plugins/php-build"
+            phpenv install --verbose --force "${PHP_VERSION}"
+            rm -rf "${HOME}/.phpenv/plugins/php-build"
+            touch "${HOME}/.phpenv/php-non-zts-built"
         fi
         phpenv rehash
-        phpenv global $PHP_VERSION
+        phpenv global "${PHP_VERSION}"
+        phpenv config-rm xdebug.ini
+        php -v
 
 install:
-    - .travis/build.sh
+    - "phpize"
+    - "CFLAGS=\"-Wall -Werror\" ./configure"
+    - "make"
+    - "echo \"extension = $(realpath modules/memprof.so)\" >modules/memprof.ini"
+    - "phpenv config-add modules/memprof.ini"
+
 script:
-    - .travis/test.sh
+    - "php --ri memprof"
+    - "REPORT_EXIT_STATUS=1 TEST_PHP_EXECUTABLE=\"$(realpath \"$(which php)\")\" php run-tests.php -s -q --show-diff"
diff --git a/.travis/build.sh b/.travis/build.sh
deleted file mode 100755
index 972d113..0000000
--- a/.travis/build.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-set -xve
-
-if ! grep -q memprof.so ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; then
-    echo "extension = $(pwd)/modules/memprof.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
-fi
-phpenv config-rm xdebug.ini || true
-
-phpize
-CFLAGS=$MEMPROF_CFLAGS ./configure
-make
diff --git a/.travis/test.sh b/.travis/test.sh
deleted file mode 100755
index 923bea4..0000000
--- a/.travis/test.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-set -xve
-
-export PATH=$TRAVIS_BUILD_DIR/.travis:$PATH
-
-PHP=$(which php)
-REPORT_EXIT_STATUS=1 TEST_PHP_EXECUTABLE="$PHP" "$PHP" run-tests.php -s -q --show-diff