Can't use an undefined value as a HASH reference in User.pm and Domain.pm

  • When I try to add a new domain (customer), I get two errors. The domain has been stored in the database, but it's on status "error".


    Distribution: Debian Jessie 8.7 (amd64)
    i-MSCP Version: 1.0.3.0
    PHP Version: PHP 5.6.30-0+deb8u1


    Errors:

    Code
    1. [ERROR] [Fri Nov 17 13:50:30 2017] Modules::Abstract::runAllSteps: Can't use an undefined value as a HASH reference at /var/www/imscp/engine/PerlLib/Modules/User.pm line 310.[ERROR] [Fri Nov 17 13:50:30 2017] Modules::Abstract::runAllSteps: Can't use an undefined value as a HASH reference at /var/www/imscp/engine/PerlLib/Modules/Domain.pm line 288.


    This is line 310 in User.pm:



    Perl
    1. $self->{httpd} = { DMN_NAME => $self->{domain_name}, DOMAIN_NAME => $self->{domain_name}, HOME_DIR => $hDir, PEAR_DIR => $main::imscpConfig{PEAR_DIR}, PHP_TIMEZONE => $main::imscpConfig{PHP_TIMEZONE}, USER => $userName, GROUP => $groupName, BASE_SERVER_VHOST_PREFIX => $main::imscpConfig{BASE_SERVER_VHOST_PREFIX}, BASE_SERVER_VHOST => $main::imscpConfig{BASE_SERVER_VHOST}, BWLIMIT => $self->{domain_traffic_limit}, DISABLE_FUNCTIONS => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{disable_functions} : $rdata->{PHPINI_DISABLE_FUNCTIONS}->{value}), MAX_EXECUTION_TIME => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{max_execution_time} : $rdata->{PHPINI_MAX_EXECUTION_TIME}->{value}), MAX_INPUT_TIME => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{max_input_time} : $rdata->{PHPINI_MAX_INPUT_TIME}->{value}), MEMORY_LIMIT => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{memory_limit} : $rdata->{PHPINI_MEMORY_LIMIT}->{value}), ERROR_REPORTING => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{error_reporting} : $rdata->{PHPINI_ERROR_REPORTING}->{value}), DISPLAY_ERRORS => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{display_errors} : $rdata->{PHPINI_DISPLAY_ERRORS}->{value}), REGISTER_GLOBALS => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{register_globals} : $rdata->{PHPINI_REGISTER_GLOBALS}->{value}), POST_MAX_SIZE => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{post_max_size} : $rdata->{PHPINI_POST_MAX_SIZE}->{value}), UPLOAD_MAX_FILESIZE => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{upload_max_filesize} : $rdata->{PHPINI_UPLOAD_MAX_FILESIZE}->{value}), ALLOW_URL_FOPEN => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{allow_url_fopen} : $rdata->{PHPINI_ALLOW_URL_FOPEN}->{value}), PHPINI_OPEN_BASEDIR => (exists $phpiniData->{$self->{domain_id}}->{PHPINI_OPEN_BASEDIR} ? ':'.$phpiniData->{$self->{domain_id}}->{PHPINI_OPEN_BASEDIR} : $rdata->{PHPINI_OPEN_BASEDIR}->{value} ? ':'.$rdata->{PHPINI_OPEN_BASEDIR}->{value} : '')


    And line 288 in Domain.pm:



    Perl
    1. $self->{httpd} = { DMN_NAME => $self->{domain_name}, DOMAIN_NAME => $self->{domain_name}, ROOT_DMN_NAME => $self->{domain_name}, PARENT_DMN_NAME => $self->{domain_name}, DMN_IP => $self->{ip_number}, WWW_DIR => $main::imscpConfig{'USER_HOME_DIR'}, HOME_DIR => $hDir, PARENT_DIR => $pDir, PEAR_DIR => $main::imscpConfig{'PEAR_DIR'}, PHP_TIMEZONE => $main::imscpConfig{'PHP_TIMEZONE'}, PHP_VERSION => $main::imscpConfig{'PHP_VERSION'}, BASE_SERVER_VHOST_PREFIX => $main::imscpConfig{'BASE_SERVER_VHOST_PREFIX'}, BASE_SERVER_VHOST => $main::imscpConfig{'BASE_SERVER_VHOST'}, USER => $userName, GROUP => $groupName, have_php => $self->{domain_php}, have_cgi => $self->{domain_cgi}, have_cert => $haveCert, BWLIMIT => $self->{domain_traffic_limit}, IP_ON_DOMAIN => (defined $self->{domains_on_ip} ? $self->{domains_on_ip} : 0), ALIAS => $userName, FORWARD => 'no', DISABLE_FUNCTIONS => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{disable_functions} : $rdata->{PHPINI_DISABLE_FUNCTIONS}->{value}), MAX_EXECUTION_TIME => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{max_execution_time} : $rdata->{PHPINI_MAX_EXECUTION_TIME}->{value}), MAX_INPUT_TIME => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{max_input_time} : $rdata->{PHPINI_MAX_INPUT_TIME}->{value}), MEMORY_LIMIT => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{memory_limit} : $rdata->{PHPINI_MEMORY_LIMIT}->{value}), ERROR_REPORTING => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{error_reporting} : $rdata->{PHPINI_ERROR_REPORTING}->{value}), DISPLAY_ERRORS => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{display_errors} : $rdata->{PHPINI_DISPLAY_ERRORS}->{value}), REGISTER_GLOBALS => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{register_globals} : $rdata->{PHPINI_REGISTER_GLOBALS}->{value}), POST_MAX_SIZE => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{post_max_size} : $rdata->{PHPINI_POST_MAX_SIZE}->{value}), UPLOAD_MAX_FILESIZE => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{upload_max_filesize} : $rdata->{PHPINI_UPLOAD_MAX_FILESIZE}->{value}), ALLOW_URL_FOPEN => (exists $phpiniData->{$self->{domain_id}} ? $phpiniData->{$self->{domain_id}}->{allow_url_fopen} : $rdata->{PHPINI_ALLOW_URL_FOPEN}->{value}), PHPINI_OPEN_BASEDIR => (exists $phpiniData->{$self->{domain_id}}->{PHPINI_OPEN_BASEDIR} ? ':'.$phpiniData->{$self->{domain_id}}->{PHPINI_OPEN_BASEDIR} : $rdata->{PHPINI_OPEN_BASEDIR}->{value} ? ':'.$rdata->{PHPINI_OPEN_BASEDIR}->{value} : '') };




    And here the debug log:


  • Distribution: Debian Jessie 8.7 (amd64)
    i-MSCP Version: 1.0.3.0
    PHP Version: PHP 5.6.30-0+deb8u1

    Hello Vince,


    Are you sure that you are using I-MSCP v1.0.3.0? If yes, we don´t support such old versions. Please upgrade to latest stable version of I-MSCP.


    Also keep our Reporting rules - Reminder in mind!


    If you had to upgrade please check first the errata files of every release (1.1.x, 1.2.x, 1.3.x, 1.4.x, 1.5.x,...) - You can find those Errata docs on Github!


    Best regards.

    Support Infos: I-MSCP Version: 1.5.x / Distro: Debian Stretch / PHP: 7.1.27 - FPM / I-MSCP Plugins: Let´s Encrypt + PHPSwitcher (latest Versions)