oci8.so отсутствует в модулях php в Linux Centos 8

У меня возникла проблема с установкой мгновенного клиента oracle на моем сервере Linux. Его уже 5 дней я застрял с ним. Я следовал инструкциям, но все равно не работал.

https://medium.com/@azharnian/cara-install-oci8-php-7-di-centos7-851abbb5d15

https://gist.github.com/Yukibashiri/cebaeaccbe531665a5704b1b34a3498e

https://docs.oracle.com/en/database/oracle/oracle-database/19/lnoci/instant-client.html#GUID-96F664E7-AD1D-4FE4-BCE2-6D9687016A51

Я успешно установил apache, php и mariaDB на сервер. У меня нет проблем с запуском моего php и laravel на сервере.

Но моя текущая проблема, когда я устанавливаю мгновенный клиент oracle, я замечаю, что oci8.so в /usr/lib64/php/modules отсутствует. Когда я запускаю команду pear download pecl/oci8 Ошибка, как показано ниже.

PHP Warning:  PHP Startup: Unable to load dynamic library 'oci8.so' (tried: /usr/lib64/php/modules/oci8.so (/usr/lib64/php/modules/oci8.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/oci8.so.so (/usr/lib64/php/modules/oci8.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
ldap
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

Как я могу установить oci8.so в свои php-модули? Как я могу проверить свой статус OCI.

Благодарю, если кто-то может помочь мне решить эту проблему. Большое спасибо.


person Rzj Hayabusa    schedule 27.07.2020    source источник
comment
Где вы устанавливаете путь поиска библиотеки, например. с ldconfig или с LD_LIBRARY_CONFIG? Также на Centos 8 вам, вероятно, потребуется установить пакет libnsl — я знаю, что он вам нужен на RH8 и OL8.   -  person Christopher Jones    schedule 27.07.2020
comment
@christopher Я уже установил пакет libnsl. но появляется та же ошибка. не могу найти oci8.so . . я что-то упускаю ?   -  person Rzj Hayabusa    schedule 27.07.2020
comment
Сообщение об ошибке просто означает, что вы пытаетесь загрузить расширение, но оно не установлено, но это предупреждение, PHP все равно работает. Это действительно все, что вы получаете, когда набираете pear download pecl/oci8?   -  person Álvaro González    schedule 27.07.2020
comment
Кстати, что делает загрузка pear Скачать пакет но не установить.   -  person Álvaro González    schedule 27.07.2020
comment
@ Альваро Гонсалес . предупреждение исчезает после загрузки оракула ключа GPG. Пока предупреждения нет. Но я не вижу oci8.so в своих модулях php /usr/lib64/php/modules. Я что-то упустил здесь? Я застрял на «sudo pecl install oci8», где команда просит указать путь к домашнему каталогу оракула.   -  person Rzj Hayabusa    schedule 28.07.2020
comment
@AlvaroGonzález признателен, если вы сможете просмотреть мой следующий вопрос по этой ссылке stackoverflow.com/questions/63125777/   -  person Rzj Hayabusa    schedule 28.07.2020
comment
Вы можете попробовать: blog.remirepo. net/post/2020/05/18/ (нечего создавать, используя мой репозиторий)   -  person Remi Collet    schedule 24.04.2021


Ответы (1)


https://linux.uits.uconn.edu/2020/03/06/php-and-oci8-installation-for-rhel8/ Эта ссылка представляет собой пошаговую инструкцию по установке oci8

dnf install oracle-instantclient18.5-basic-18.5.0.0.0-3.x86_64.rpm oracle-instantclient18.5-devel-18.5.0.0.0-3.x86_64.rpm oracle-instantclient18.5-sqlplus-18.5.0.0.0-3.x86_64.rpm
dnf install libnsl 
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Установите PHP и OCI8:

dnf module list php
dnf module enable php:remi-7.4 -y

(если вы получите следующее сообщение: «Операция приведет к переключению потока модуля «php» «7.2» на поток «remi-7.4»)

dnf module reset php (enter “y”)
dnf module enable php:remi-7.4 -y

dnf install -y php php-cli php-common php-fpm php-pear gcc curl-devel php-devel zlib-devel pcre-devel php-pecl-http systemtap-sdt-devel

export PHP_DTRACE=yes

setenforce 0

 echo "instantclient,/usr/lib/oracle/18.5/client64/lib" | pecl install oci8-2.2.0.tgz

 echo extension=oci8.so >> /etc/php.ini

 echo extension=oci8 > /etc/php.d/20-oci8.ini

 systemctl restart php-fpm

 systemctl restart httpd
person Brandon Kauffman    schedule 23.04.2021
comment
Используя репозиторий remi, вам не нужно собирать расширение, которое доступно в репозитории (пакет php-oci8) - person Remi Collet; 24.04.2021