【问题标题】:Call to undefined function oci_connect only from cli (works fine in html)仅从 cli 调用未定义的函数 oci_connect(在 html 中工作正常)
【发布时间】:2013-12-13 17:28:11
【问题描述】:

环境:
服务器:Ubuntu Server 12.04 x64
Web 服务器:Apache 2
PHP :5.3.10-1ubuntu3.8
Oracle:Instant Client 11.2

问题:
我有一个脚本,我正在将其设置为 cron 作业,但是当它运行时会产生

PHP 致命错误;在第 25 行调用 /var/www/reports/inc/config.php 中未定义的函数 oci_connect()

如果我通过 Apache 使用 oci_connect 或 oci_pconnect 运行此脚本或任何其他脚本,它们可以正常工作。我刚迁移到一台新机器上,脚本在前一台机器上运行良好,但我想不出我错过了什么。

脚本的权限与配置文件相同,我尝试以 www-data、我的用户帐户和 root 身份运行(都提供相同的错误)。

【问题讨论】:

  • 听起来您还没有在php.ini 文件中为 CLI 版本配置 OCI 扩展。
  • 巴尔玛,做到了!我什至没有想过要检查 /etc/php5/cli/php.ini 文件夹,因为我用 PHP 做的所有其他事情都是由 /etc/php5/apache/php.ini 处理的
  • @Barmar 您应该使用您的评论作为答案。 +1

标签: php linux apache command-line-interface oracle-call-interface


【解决方案1】:

您必须在启动脚本之前指定用户自定义配置文件(.bash_profile 或 .profile)

0 7 * * * 。 $HOME/.bash_profile; php -e -c /etc/php.ini /var/www/html/script_avec_o​​ci.php

【讨论】:

    【解决方案2】:

    当您从 shell 或 crontab 使用 PHP 时,您使用的是 CLI 版本,而不是 Web 服务器版本,它们通常具有单独的 php.ini 文件。编辑 /etc/php5/cli/php.ini 并启用 OCI 扩展。

    【讨论】:

      猜你喜欢
      • 2014-04-24
      • 2011-12-22
      • 1970-01-01
      • 2015-05-29
      • 2017-04-12
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      相关资源
      最近更新 更多