diff -ur a/build/php.m4 b/build/php.m4
--- a/build/php.m4	2019-12-18 00:35:59.000000000 +0800
+++ b/build/php.m4	2019-12-25 15:54:18.072798530 +0800
@@ -2713,3 +2713,61 @@
   $SED -e 's/^#undef PACKAGE_[^ ]*/\/\* & \*\//g' < $srcdir/$1 \
     > $srcdir/$1.tmp && mv $srcdir/$1.tmp $srcdir/$1
 ])
+
+dnl
+dnl PHP_SETUP_KERBEROS(shared-add [, action-found [, action-not-found]])
+dnl
+dnl Common setup macro for kerberos
+dnl
+AC_DEFUN([PHP_SETUP_KERBEROS],[
+  found_kerberos=no
+  unset KERBEROS_CFLAGS
+  unset KERBEROS_LIBS
+
+  dnl First try to find krb5-config
+  if test -z "$KRB5_CONFIG"; then
+    AC_PATH_PROG(KRB5_CONFIG, krb5-config, no, [$PATH:/usr/kerberos/bin:/usr/local/bin])
+  fi
+
+  dnl If krb5-config is found try using it
+  if test "$PHP_KERBEROS" != "no" && test -x "$KRB5_CONFIG"; then
+    KERBEROS_LIBS=`$KRB5_CONFIG --libs gssapi`
+    KERBEROS_CFLAGS=`$KRB5_CONFIG --cflags gssapi`
+
+    if test -n "$KERBEROS_LIBS"; then
+      found_kerberos=yes
+      PHP_EVAL_LIBLINE($KERBEROS_LIBS, $1)
+      PHP_EVAL_INCLINE($KERBEROS_CFLAGS)
+    fi
+  fi
+
+  dnl If still not found use old skool method
+  if test "$found_kerberos" = "no"; then
+
+    if test "$PHP_KERBEROS" = "yes"; then
+      PHP_KERBEROS="/usr/kerberos /usr/local /usr"
+    fi
+
+    for i in $PHP_KERBEROS; do
+      if test -f $i/$PHP_LIBDIR/libkrb5.$SHLIB_SUFFIX_NAME || test -f $i/$PHP_LIBDIR/$DEB_HOST_MULTIARCH/libkrb5.$SHLIB_SUFFIX_NAME || test -f $i/$PHP_LIBDIR/libkrb5.a; then
+        PHP_KERBEROS_DIR=$i
+        break
+      fi
+    done
+
+    if test "$PHP_KERBEROS_DIR"; then
+      found_kerberos=yes
+      PHP_ADD_LIBPATH($PHP_KERBEROS_DIR/$PHP_LIBDIR, $1)
+      PHP_ADD_LIBRARY(gssapi_krb5, 1, $1)
+      PHP_ADD_LIBRARY(krb5, 1, $1)
+      PHP_ADD_LIBRARY(k5crypto, 1, $1)
+      PHP_ADD_LIBRARY(com_err,  1, $1)
+      PHP_ADD_INCLUDE($PHP_KERBEROS_DIR/include)
+    fi
+  fi
+
+  if test "$found_kerberos" = "yes"; then
+ifelse([$2],[],:,[$2])
+ifelse([$3],[],,[else $3])
+  fi
+])
diff -ur a/ext/imap/config.m4 b/ext/imap/config.m4
--- a/ext/imap/config.m4	2019-12-18 00:36:02.000000000 +0800
+++ b/ext/imap/config.m4	2019-12-25 15:57:20.696049595 +0800
@@ -46,7 +46,7 @@
 
 AC_DEFUN([PHP_IMAP_KRB_CHK], [
   if test "$PHP_KERBEROS" != "no"; then
-    PKG_CHECK_MODULES([KERBEROS], [krb5-gssapi krb5])
+    PKG_CHECK_MODULES([KERBEROS], [krb5-gssapi krb5],,[PHP_SETUP_KERBEROS(IMAP_SHARED_LIBADD,[AC_DEFINE(HAVE_IMAP_KRB,1,[ ])],[AC_MSG_ERROR([Kerberos libraries not found])])])
 
     PHP_EVAL_INCLINE($KERBEROS_CFLAGS)
     PHP_EVAL_LIBLINE($KERBEROS_LIBS, IMAP_SHARED_LIBADD)
diff -ur a/ext/openssl/config0.m4 b/ext/openssl/config0.m4
--- a/ext/openssl/config0.m4	2019-12-18 00:36:00.000000000 +0800
+++ b/ext/openssl/config0.m4	2019-12-25 15:58:31.208146862 +0800
@@ -22,7 +22,7 @@
   PHP_SUBST(OPENSSL_SHARED_LIBADD)
 
   if test "$PHP_KERBEROS" != "no"; then
-    PKG_CHECK_MODULES([KERBEROS], [krb5-gssapi krb5])
+    PKG_CHECK_MODULES([KERBEROS], [krb5-gssapi krb5],,[PHP_SETUP_KERBEROS(OPENSSL_SHARED_LIBADD)])
 
     PHP_EVAL_INCLINE($KERBEROS_CFLAGS)
     PHP_EVAL_LIBLINE($KERBEROS_LIBS, OPENSSL_SHARED_LIBADD)