此问题在此处已有答案:
Call to undefined function oci_connect()(13个回答)
10天前关闭。
请帮帮忙!我犯了一个错误:
致命错误:未捕获错误:在C:\Apache24\htdocs\include\db.php中调用未定义的函数oci_connect():6堆栈跟踪:#0 {main}在C:\Apache24\htdocs\include\db.php中抛出第6行
Apache日志中的错误:
[Mon Dec 25 15:20:41.681765 2023] [mpm_winnt:notice] [pid 5916:tid 396] AH 00422:父进程:收到关闭信号--正在关闭服务器。[Mon Dec 25 15:20:43.701697 2023] [mpm_winnt:notice] [pid 6748:tid 360] AH 00364:子进程:所有工作线程已退出。[Mon Dec 25 15:20:43.733503 2023] [mpm_winnt:notice] [pid 5916:tid 396] AH 00430:父进程:子进程6748成功退出。PHP启动警告:PHP无法加载模块:Public(尝试:ext\oci8_19(指定的模块无法找到),ext\php_oci8_19.dll(The specified module could not be found))in Unknown on line 0 PHP警告:PHP启动:无法加载动态库'oci 8'(尝试:ext\oci8(指定的模块无法找到),ext\php_oci8.dll(无法找到指定的模块))in Unknown on line 0 PHP警告:PHP启动:无法加载动态库'openssl'(尝试:ext\openssl(指定的模块无法找到),ext\php_openssl.dll(无法找到指定的模块))in Unknown on line 0 PHP警告:PHP启动:无法加载动态库'pdo_mysql'(尝试:ext\pdo_mysql(指定的模块无法找到),ext\php_pdo_mysql.dll(The specified module could not be found))in Unknown on line 0 PHP警告:PHP启动:无法加载动态库'php_pdo_oci'(尝试:ext\php_pdo_oci(指定的模块无法找到),ext\php_php_pdo_oci.dll(The specified module could not be found))in未知on line 0 [Mon Dec 25 15:20:45.294072 2023] [mpm_winnt:notice] [pid 1584:tid 344] AH00455:Apache/2.4.58(Win64)PHP/8.0.29 configured --receiving normal operations [Mon Dec 25 15:20:45.294072 2023] [mpm_winnt:notice] [pid 1584:tid 344] AH 00456:Apache Lounge VS 17服务器构建时间:Oct 18 2023 13:03:18 [Mon Dec 25 15:20:45.294072 2023] [core:notice] [pid 1584:tid 344] AH 00094:Command line:'C:\Apache24\bin\httpd.exe-d C:/Apache 24' [Mon Dec 25 15:20:45.309698 2023] [mpm_winnt:notice] [pid 1584:tid 344] AH 00418:Parent:已创建子进程728 PHP警告:PHP启动:无法加载模块:Public(尝试:ext\oci8_19(指定的模块无法找到),ext\php_oci8_19.dll(The specified module could not be found))in Unknown on line 0 PHP警告:PHP启动:无法加载动态库'oci 8'(尝试:ext\oci8(指定的模块无法找到),ext\php_oci8.dll(无法找到指定的模块))in Unknown on line 0 PHP警告:PHP启动:无法加载动态库'openssl'(尝试:ext\openssl(指定的模块无法找到),ext\php_openssl.dll(无法找到指定的模块))in Unknown on line 0 PHP警告:PHP启动:无法加载动态库'pdo_mysql'(尝试:ext\pdo_mysql(指定的模块无法找到),ext\php_pdo_mysql.dll(The specified module could not be found))in Unknown on line 0 PHP警告:PHP启动:无法加载动态库'php_pdo_oci'(tried:ext\php_pdo_oci(The specified module could not be found),ext\php_pdo_oci. dll(The specified module could not be found))in未知on line 0
但是我把所有这些脚本放在php和ext文件夹中,我把所有这些扩展放在php.ini
和php中,instant客户端匹配x64 php 8.0和instant客户端19。
另外,我把所有的路径在环境变量。php和apache工作,但这个oci连接不
2条答案
按热度按时间2wnc66cl1#
另外,我把所有的路径在环境变量。php和apache工作,但这个oci连接不
efzxgjgh2#
我已经准备好帮助您解决**oci_connect()**错误。这里有一个指南,结合了Maven评论的见解并解决了潜在的问题:
1.验证扩展文件位置和路径:
再次检查位置:确保php_oci8_19.dll(或您的PHP版本的相应扩展名)存在于PHP安装的ext文件夹和php.ini文件中指定的extension_dir中。确认路径准确性:验证php.ini文件中这些扩展名的路径是否正确,并使用正斜杠(/)以保持一致性。2.检查phpinfo()中的扩展名加载:
创建一个phpinfo.php文件:使用<?php phpinfo();编写一个简单的PHP脚本,并在浏览器中访问它以查看加载的扩展名。确认OCI 8加载:在列表中查找oci 8或oci8_19。如果不存在,请继续下一步。3.地址缺少的扩展名:
安装Visual C++ Redistributable for Visual Studio:从Microsoft网站下载并安装相应的版本(PHP 8.0可能是2017)。安装其他依赖项:如果在扩展安装过程中提示其他库,也安装这些库。4.重新检查即时客户端配置:
验证体系结构兼容性:确保Instant Client与PHP的体系结构匹配(本例中为x64)。设置环境变量:仔细检查PATH环境变量是否包括Instant Client的bin目录,以及TNS_ADMIN(如果使用TNSNAMES.ORA)是否指向正确的位置。5.重新启动Apache:
保存更改:在对php.ini或环境变量进行任何修改后,重新启动Apache以使其生效。
检查文件权限:确保Web服务器对扩展文件和Oracle客户端库具有读访问权限。运行php --ini:验证正在使用哪个php.ini文件并进行相应的调整。查看Apache日志:查找可能提供线索的更具体的错误消息。考虑全新安装:如果问题仍然存在,请考虑重新安装PHP和OCI 8扩展以确保安装干净。如果在这些步骤之后错误仍然存在,提供有关您的环境的更多详细信息(操作系统、PHP版本、即时客户端版本、安装方法)以及任何其他相关信息,以获得进一步帮助。