vtiger在C:\ xampp \ htdocs \ vtigercrm \ include \ database \ PearDatabase中调用成员函数Exec​​ute()on null

时间:2015-12-01 11:37:35

标签: php xampp vtiger

我正在安装vtiger,

当我打开索引页面时,

我收到了这个错误:

  

致命错误:在第357行的C:\ xampp \ htdocs \ _ vtigercrm \ include \ database \ PearDatabase.php 中调用成员函数Exec​​ute()

我打开了PearDatabase.php文件,我发现了这个:

if($this->avoidPreparedSql || empty($params)) {
            $sql = $this->convert2Sql($sql, $params);
            $result = $this->database->Execute($sql);
        } else {
            $result = $this->database->Execute($sql, $params);
        }
第357行是:

$result = $this->database->Execute($sql);

3 个答案:

答案 0 :(得分:3)

如果您已在本地安装了vtiger,则必须在本地vtiger域的浏览器中清除Cookie。 这应该可以解决你的问题,这是一个多么惊人的错误!

答案 1 :(得分:1)

确保已安装所有先决条件:

先决条件from here

  • Apache 2.1 +
  • MySQL 5.1+(默认存储引擎= InnoDB)
  • PHP 5.2 +,5.3
    • PHP-IMAP
    • PHP-卷曲
    • PHP-XML
    • max_memory(分钟256MB)
    • max_execution_time(最少60秒)
    • error_reporting(E_ALL& ~E_NOTICE& ~E_DEPRECATED)
  • 硬件:4 GB RAM,250 GB磁盘(用于文件附件)

该错误表明它无法解决如何处理后端数据库。

答案 2 :(得分:1)

如果session_save_path()对于Web服务器用户不可写,则在安装vTiger时将收到此错误。

在我的情况下,我的“ session_save_path”为/var/lib/php/7.1/session,归root所有。我正在使用Nginx,因此我执行了以下命令来解决我的问题:

sudo chown -R nginx:nginx /var/lib/php/7.1/session

如果您使用的是Apache,则可以执行以下命令来解决问题:

sudo chown -R www-data:www-data /var/lib/php/7.1/session

在浏览安装步骤时,输入vTiger向导的信息将保存到$_SESSION

当'session_save_path'由root而非Web服务器用户拥有时,会话数据不会保存在Step5()中的功能Step6()和功能modules/Install/views/Index.php之间。因此,当向导创建config.inc.php文件时,由于在两次请求之间您的数据没有保存在config.inc.php中,因此您输入表单中的所有配置数据都不会写入$_SESSION。可以通过将对“ session_save_path”的权限更改为Web服务器用户可写的方式来解决。

您可以在php.ini文件或www.conf文件(如果使用的是php-fpm)中找到session.save_path:

/etc/php-fpm-7.1.d/www.conf:php_value[session.save_path]    = /var/lib/php/7.1/session

此无用的错误实际上是因为您的数据库连接在函数include/database/PearDatabase.php中的文件connect()中失败,因为所有数据库变量均为空。

希望这会有所帮助。