I am installing vtiger,
when i open the index page,
i got this error:
Fatal error: Call to a member function Execute() on null in C:\xampp\htdocs\vtigercrm\include\database\PearDatabase.php on line 357
i opened the PearDatabase.php file, and I found this:
if($this->avoidPreparedSql || empty($params)) {
$sql = $this->convert2Sql($sql, $params);
$result = $this->database->Execute($sql);
} else {
$result = $this->database->Execute($sql, $params);
}
the line 357 is:
$result = $this->database->Execute($sql);
Make sure you have installed all the pre-requisites:
Pre-requisites from here:
The error is suggesting that it can't work out what to do with the back end database.
If you have installed vtiger once locally, you have to clean cookies in your brower of your local vtiger domain. That should fix your problem, what a amazing bug it is!
You will receive this error when installing vTiger if your session_save_path()
is not writable by your web server user.
In my case, my 'session_save_path' was /var/lib/php/7.1/session
and was owned by root
. I am using Nginx so I executed the following command to resolve my issue:
sudo chown -R nginx:nginx /var/lib/php/7.1/session
If you are using Apache, you would execute the following command to resolve your issue:
sudo chown -R www-data:www-data /var/lib/php/7.1/session
The information entered into the vTiger wizard is saved to $_SESSION
as you navigate through the installation steps.
When the 'session_save_path' is owned by root
rather than the web server user, the session data is not saved between function Step5()
and function Step6()
in modules/Install/views/Index.php
. So when the config.inc.php
file is created by the wizard, all the configuration data you entered into the form is not written to config.inc.php
since your data was not saved in $_SESSION
between the requests. This can be fixed by changing the permissions on your 'session_save_path' to be writable by the web server user.
You can find your session.save_path in your php.ini
file or your www.conf
file if you are using php-fpm:
/etc/php-fpm-7.1.d/www.conf:php_value[session.save_path] = /var/lib/php/7.1/session
This unhelpful error is actually because your database connection is unsuccessful in file include/database/PearDatabase.php
in function connect()
since all the database variables are empty.
Hope this helps.