Как мне подключить PHP 7.x к базе данных Oracle на RedHat / CentOS? - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь подключить свое PHP-приложение к базе данных Oracle. Я пробовал несколько вариантов за последнюю неделю, но безуспешно.

Мне удалось установить расширение oci8, но функция oci_connect не распознается.

Пожалуйста, помогите.

RedHat Enterprise Linux 7.6
PHP: 7,3
Oracle: 12c

1 Ответ

3 голосов
/ 17 июня 2019

Потратив более недели, чтобы понять это, вот краткое изложение того, что в итоге сработало. Я надеюсь, что это помогает кому-то еще.

Эти инструкции применимы к установкам 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);

Если вы получили системную ошибку, то установка не сработала.

...