Simplified PHP testing scripts. (#7574)

* Simplified PHP testing scripts.

- allow them to be run from any directory.
- remove "VERSION" arg, we can get PHP from $PATH.

* Added a few places I missed.

* Removed redundant "cd `dirname $0`".

Also replaced all backticks with $(), for consistency.
diff --git a/php/tests/compatibility_test.sh b/php/tests/compatibility_test.sh
index b228e55..ddf05e8 100755
--- a/php/tests/compatibility_test.sh
+++ b/php/tests/compatibility_test.sh
@@ -1,12 +1,5 @@
 #!/bin/bash
 
-function use_php() {
-  VERSION=$1
-
-  OLD_PATH=$PATH
-  export PATH=/usr/local/php-${VERSION}/bin:$OLD_PATH
-}
-
 function generate_proto() {
   PROTOC1=$1
   PROTOC2=$2
@@ -87,7 +80,6 @@
 popd
 
 # Build and copy the new runtime
-use_php 7.1
 pushd ../ext/google/protobuf
 make clean || true
 phpize && ./configure && make
diff --git a/php/tests/compile_extension.sh b/php/tests/compile_extension.sh
index 93916b1..3d6759e 100755
--- a/php/tests/compile_extension.sh
+++ b/php/tests/compile_extension.sh
@@ -1,12 +1,17 @@
 #!/bin/bash
 
-VERSION=$2
+cd $(dirname $0)
 
-export PATH=/usr/local/php-$VERSION/bin:$PATH
+if [ "$1" = "--release"]; then
+  CFLAGS="-Wall"
+else
+  # To get debugging symbols in PHP itself, build PHP with:
+  #   $ ./configure --enable-debug CFLAGS='-g -O0'
+  CFLAGS="-g -O0 -Wall"
+fi
 
 pushd  ../ext/google/protobuf
 make clean || true
 set -e
-# Add following in configure for debug: --enable-debug CFLAGS='-g -O0'
-phpize && ./configure --with-php-config=`which php-config` CFLAGS='-g -O0 -Wall' && make
+phpize && ./configure --with-php-config=$(which php-config) CFLAGS="$CFLAGS" && make
 popd
diff --git a/php/tests/gdb_test.sh b/php/tests/gdb_test.sh
index 80950c3..76a0fc3 100755
--- a/php/tests/gdb_test.sh
+++ b/php/tests/gdb_test.sh
@@ -1,9 +1,5 @@
 #!/bin/bash
 
-VERSION=$1
-
-export PATH=/usr/local/php-$VERSION/bin:$PATH
-
 php -i | grep "Configuration"
 
 # gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so `which
diff --git a/php/tests/multirequest.sh b/php/tests/multirequest.sh
index f3f68d0..ec4a1ae 100755
--- a/php/tests/multirequest.sh
+++ b/php/tests/multirequest.sh
@@ -1,12 +1,12 @@
 #!/bin/bash
+
+cd $(dirname $0)
+
 set -e
 
-# Compile c extension
-VERSION=7.4
 PORT=12345
 
-export PATH=/usr/local/php-$VERSION/bin:$PATH
-/bin/bash ./compile_extension.sh $VERSION
+./compile_extension.sh
 
 nohup php -d protobuf.keep_descriptor_pool_after_request=1 -dextension=../ext/google/protobuf/modules/protobuf.so -S localhost:$PORT multirequest.php 2>&1 &
 
diff --git a/php/tests/test.sh b/php/tests/test.sh
index 45a68f8..3ecc0c7 100755
--- a/php/tests/test.sh
+++ b/php/tests/test.sh
@@ -1,11 +1,8 @@
 #!/bin/bash
 
-VERSION=$1
+cd $(dirname $0)
 
-export PATH=/usr/local/php-$VERSION/bin:$PATH
-
-# Compile c extension
-/bin/bash ./compile_extension.sh $VERSION
+./compile_extension.sh
 
 tests=( array_test.php encode_decode_test.php generated_class_test.php map_field_test.php well_known_test.php descriptors_test.php wrapper_type_setters_test.php)
 
diff --git a/tests.sh b/tests.sh
index 4def89d..0a0e798 100755
--- a/tests.sh
+++ b/tests.sh
@@ -501,12 +501,6 @@
   generate_php_test_proto
 }
 
-use_php_bc() {
-  VERSION=$1
-  export PATH=/usr/local/php-${VERSION}-bc/bin:$PATH
-  generate_php_test_proto
-}
-
 build_php5.5() {
   use_php 5.5
 
@@ -523,9 +517,7 @@
 build_php5.5_c() {
   IS_64BIT=$1
   use_php 5.5
-  pushd php/tests
-  /bin/bash ./test.sh 5.5
-  popd
+  php/tests/test.sh
   pushd conformance
   if [ "$IS_64BIT" = "true" ]
   then
@@ -541,9 +533,7 @@
   pushd php
   rm -rf vendor
   composer update
-  pushd tests
-  /bin/bash ./compile_extension.sh 5.5
-  popd
+  tests/compile_extension.sh
   php -dextension=./ext/google/protobuf/modules/protobuf.so ./vendor/bin/phpunit
   popd
 }
@@ -551,7 +541,7 @@
 build_php5.5_zts_c() {
   IS_64BIT=$1
   use_php_zts 5.5
-  cd php/tests && /bin/bash ./test.sh 5.5-zts && cd ../..
+  php/tests/test.sh
   pushd conformance
   if [ "$IS_64BIT" = "true" ]
   then
@@ -577,7 +567,7 @@
 build_php5.6_c() {
   IS_64BIT=$1
   use_php 5.6
-  cd php/tests && /bin/bash ./test.sh 5.6 && cd ../..
+  php/tests/test.sh
   pushd conformance
   if [ "$IS_64BIT" = "true" ]
   then
@@ -593,9 +583,7 @@
   pushd php
   rm -rf vendor
   composer update
-  pushd tests
-  /bin/bash ./compile_extension.sh 5.6
-  popd
+  tests/compile_extension.sh
   php -dextension=./ext/google/protobuf/modules/protobuf.so ./vendor/bin/phpunit
   popd
 }
@@ -603,7 +591,7 @@
 build_php5.6_zts_c() {
   IS_64BIT=$1
   use_php_zts 5.6
-  cd php/tests && /bin/bash ./test.sh 5.6-zts && cd ../..
+  php/tests/test.sh
   pushd conformance
   if [ "$IS_64BIT" = "true" ]
   then
@@ -633,10 +621,8 @@
   sudo mv valgrind /usr/local/bin/valgrind
 
   # Test
-  cd php/tests && /bin/bash ./test.sh && cd ../..
-  pushd conformance
-  make test_php_c
-  popd
+  php/tests/test.sh
+  (cd conformance && make test_php_c)
 }
 
 build_php7.0() {
@@ -646,15 +632,13 @@
   composer update
   ./vendor/bin/phpunit
   popd
-  pushd conformance
-  make test_php
-  popd
+  (cd conformance && make test_php)
 }
 
 build_php7.0_c() {
   IS_64BIT=$1
   use_php 7.0
-  cd php/tests && /bin/bash ./test.sh 7.0 && cd ../..
+  php/tests/test.sh
   pushd conformance
   if [ "$IS_64BIT" = "true" ]
   then
@@ -670,9 +654,7 @@
   pushd php
   rm -rf vendor
   composer update
-  pushd tests
-  /bin/bash ./compile_extension.sh 7.0
-  popd
+  tests/compile_extension.sh
   php -dextension=./ext/google/protobuf/modules/protobuf.so ./vendor/bin/phpunit
   popd
 }
@@ -680,7 +662,7 @@
 build_php7.0_zts_c() {
   IS_64BIT=$1
   use_php_zts 7.0
-  cd php/tests && /bin/bash ./test.sh 7.0-zts && cd ../..
+  php/tests/test.sh
   pushd conformance
   if [ "$IS_64BIT" = "true" ]
   then
@@ -710,10 +692,8 @@
   sudo mv valgrind /usr/local/bin/valgrind
 
   # Test
-  cd php/tests && /bin/bash ./test.sh && cd ../..
-  pushd conformance
-  make test_php_c
-  popd
+  php/tests/test.sh
+  (cd conformance && make test_php_c)
 }
 
 build_php7.3_mac() {
@@ -737,10 +717,8 @@
   sudo mv valgrind /usr/local/bin/valgrind
 
   # Test
-  cd php/tests && /bin/bash ./test.sh && cd ../..
-  pushd conformance
-  make test_php_c
-  popd
+  php/tests/test.sh
+  (cd conformance && make test_php_c)
 }
 
 build_php_compatibility() {
@@ -750,9 +728,7 @@
 
 build_php_multirequest() {
   use_php 7.4
-  pushd php/tests
-  ./multirequest.sh
-  popd
+  php/tests/multirequest.sh
 }
 
 build_php7.1() {
@@ -762,15 +738,13 @@
   composer update
   ./vendor/bin/phpunit
   popd
-  pushd conformance
-  make test_php
-  popd
+  (cd conformance && make test_php)
 }
 
 build_php7.1_c() {
   IS_64BIT=$1
   use_php 7.1
-  cd php/tests && /bin/bash ./test.sh 7.1 && cd ../..
+  php/tests/test.sh
   pushd conformance
   if [ "$IS_64BIT" = "true" ]
   then
@@ -786,9 +760,7 @@
   pushd php
   rm -rf vendor
   composer update
-  pushd tests
-  /bin/bash ./compile_extension.sh 7.1
-  popd
+  tests/compile_extension.sh
   php -dextension=./ext/google/protobuf/modules/protobuf.so ./vendor/bin/phpunit
   popd
 }
@@ -796,7 +768,7 @@
 build_php7.1_zts_c() {
   IS_64BIT=$1
   use_php_zts 7.1
-  cd php/tests && /bin/bash ./test.sh 7.1-zts && cd ../..
+  php/tests/test.sh
   pushd conformance
   if [ "$IS_64BIT" = "true" ]
   then
@@ -814,15 +786,13 @@
   composer update
   ./vendor/bin/phpunit
   popd
-  pushd conformance
-  make test_php
-  popd
+  (cd conformance && make test_php)
 }
 
 build_php7.4_c() {
   IS_64BIT=$1
   use_php 7.4
-  cd php/tests && /bin/bash ./test.sh 7.4 && cd ../..
+  php/tests/test.sh
   pushd conformance
   if [ "$IS_64BIT" = "true" ]
   then
@@ -831,9 +801,7 @@
     make test_php_c_32
   fi
   popd
-  pushd php/ext/google/protobuf
-  phpize --clean
-  popd
+  (cd php/ext/google/protobuf && phpize --clean)
 }
 
 build_php7.4_mixed() {
@@ -841,20 +809,16 @@
   pushd php
   rm -rf vendor
   composer update
-  pushd tests
-  /bin/bash ./compile_extension.sh 7.4
-  popd
+  tests/compile_extension.sh
   php -dextension=./ext/google/protobuf/modules/protobuf.so ./vendor/bin/phpunit
   popd
-  pushd php/ext/google/protobuf
-  phpize --clean
-  popd
+  (cd php/ext/google/protobuf && phpize --clean)
 }
 
 build_php7.4_zts_c() {
   IS_64BIT=$1
   use_php_zts 7.4
-  cd php/tests && /bin/bash ./test.sh 7.4-zts && cd ../..
+  php/tests/test.sh
   pushd conformance
   if [ "$IS_64BIT" = "true" ]
   then
@@ -863,9 +827,7 @@
     make test_php_c_32
   fi
   popd
-  pushd php/ext/google/protobuf
-  phpize --clean
-  popd
+  (cd php/ext/google/protobuf && phpize --clean)
 }
 
 build_php_all_32() {