Потратив более недели, чтобы понять это, вот краткое изложение того, что в итоге сработало. Я надеюсь, что это помогает кому-то еще.
Эти инструкции применимы к установкам RedHat / CentOS Linux. По моему опыту, инструкции для RedHat / CentOS немного отличались от других установок Linux. ИЗБЕГАЙТЕ указаний Оракула ... Они совсем не помогли!
Шаг1:
Я следовал инструкциям на этом отличном сайте, чтобы установить PHP 7.3 и дополнительные пакеты Remi rpm: https://tecadmin.net/install-php7-on-centos7/
Шаг 2: Затем я использовал репозиторий Remi (см. Шаг 1) для установки расширения oci8:
$ sudo yum --enablerepo=remi-php73 install php-oci8
Шаг 3: Теперь нам нужно установить пакеты 18.3 oracle Instant Client. Это очень хорошо объяснено на этом сайте: https://qiita.com/tkprof/items/2a4eb868f45fb5759110
$ cd /etc/yum.repos.d
$ sudo wget http://yum.oracle.com/public-yum-ol7.repo
$ sudo wget http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7
$ sudo rpm --import RPM-GPG-KEY-oracle-ol7
$ sudo yum-config-manager --enable ol7_oracle_instantclient
$ sudo yum install oracle-instantclient18.3-basic
$ sudo yum install oracle-instantclient18.3-devel
$ sudo yum install oracle-instantclient18.3-jdbc
$ sudo yum install oracle-instantclient18.3-sqlplus
$ sudo yum list oracle-instantclient*
Шаг 4:
Файлы оракула были созданы в /usr/lib/oracle/18.3 Теперь нам нужно создать символическую ссылку, чтобы файлы оракула были включены при работе сервера:
$ sudo sh -c "echo /usr/lib/oracle/18.3/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf"
$ sudo ldconfig
Шаг 5. Перезагрузите сервер
$ sudo systemctl stop httpd
$ sudo systemctl start httpd
Шаг 6: Теперь мы можем создать простой php-файл, который проверяет соединение с Oracle:
<?php
$conn = oci_connect("username", "password", "//url/SID");
if (!$conn) {
echo "oci8 working! However the following errors occurred: <br>";
$m = oci_error();
echo $m['message'], "\n";
exit;
} else {
print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
Если вы получили системную ошибку, то установка не сработала.