Skip to content

Commit 6d87b1a

Browse files
committed
fix: install oci8 extension before pdo_oci
- Install oci8 extension first as it may be required by pdo_oci - Create separate ini files for oci8 and pdo_oci - Update step name to reflect both extensions installation
1 parent 8cf244b commit 6d87b1a

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

.github/workflows/tests.yml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ jobs:
437437
if [ ! -f /usr/lib/oracle/23/client64/libclntsh.so ] || [ ! -f /usr/lib/oracle/23/client64/sdk/include/oci.h ]; then
438438
exit 1
439439
fi
440-
- name: Install pdo_oci extension
440+
- name: Install oci8 and pdo_oci extensions
441441
run: |
442442
export ORACLE_HOME=/usr/lib/oracle/23/client64
443443
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
@@ -447,14 +447,22 @@ jobs:
447447
448448
sudo ldconfig
449449
450+
PHP_INI_DIR=$(dirname $(php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"))
451+
sudo mkdir -p "$PHP_INI_DIR/conf.d"
452+
453+
if ! php -m | grep -q oci8; then
454+
echo "instantclient,$ORACLE_HOME" | sudo -E env C_INCLUDE_PATH="$C_INCLUDE_PATH" CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" pecl install oci8 || echo "instantclient,$ORACLE_HOME" | sudo -E env C_INCLUDE_PATH="$C_INCLUDE_PATH" CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" pecl install -f oci8
455+
echo "extension=oci8.so" | sudo tee "$PHP_INI_DIR/conf.d/oci8.ini" > /dev/null
456+
sudo ldconfig
457+
fi
458+
450459
if ! php -m | grep -q pdo_oci; then
451460
echo "instantclient,$ORACLE_HOME" | sudo -E env C_INCLUDE_PATH="$C_INCLUDE_PATH" CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" pecl install pdo_oci || echo "instantclient,$ORACLE_HOME" | sudo -E env C_INCLUDE_PATH="$C_INCLUDE_PATH" CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" pecl install -f pdo_oci
452-
PHP_INI_DIR=$(dirname $(php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"))
453-
sudo mkdir -p "$PHP_INI_DIR/conf.d"
454-
echo "extension=pdo_oci.so" | sudo tee "$PHP_INI_DIR/conf.d/pdo_oci.ini"
461+
echo "extension=pdo_oci.so" | sudo tee "$PHP_INI_DIR/conf.d/pdo_oci.ini" > /dev/null
455462
sudo ldconfig
456463
fi
457-
php -m | grep pdo_oci
464+
465+
php -m | grep -E "(oci8|pdo_oci)" || echo "Warning: Oracle extensions not found in php -m output"
458466
- name: Wait for Oracle to be ready
459467
run: |
460468
export ORACLE_HOME=/usr/lib/oracle/23/client64

0 commit comments

Comments
 (0)