Problems Installing InvoicePlane

Hey Everyone,

I am trying to install InvoicePlane for the first time and am running into a problem. I complete the installation and start the setup in my web browser; I navigate through the setup, but after the user creation page, I am taken back to the language selection page and if I proceed through setup again, I get an error on the user creation page saying that a user already exists. The setup complete value in the config is set to false and I am unable to login. If I login to my MariaDB database, there are no users in the ip_users table in the database.

I can’t figure out if I am missing something or if I am doing something wrong. copied the ipconfig.php.example to ipconfig.php and set my IP_URL before starting the setup.

Environment Info:

  • Ubuntu Server 22.04
  • PHP 8.1
  • Nginx version 1.18.0 (Ubuntu)
  • MariaDB Server version 10.6.18-MariaDB-0ubuntu0.22.04.1

I created the MariaDB database as follows:

CREATE DATABASE ip;
CREATE USER 'ip'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON ip.* TO 'ip'@'localhost';
FLUSH PRIVILEGES;

InvoicePlane Debug Logs:

DEBUG - 2024-07-27 07:45:42 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:42 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:42 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:42 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:42 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:42 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:42 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:42 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:42 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:42 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:42 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:42 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:42 --> File loaded: /var/www/invoiceplane/application/modules/setup/views/language.php
DEBUG - 2024-07-27 07:45:42 --> File loaded: /var/www/invoiceplane/application/modules/layout/views/setup.php
DEBUG - 2024-07-27 07:45:42 --> Total execution time: 0.0019
DEBUG - 2024-07-27 07:45:43 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:43 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:43 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:43 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:43 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:43 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:43 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:43 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:43 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:43 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:43 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:43 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:43 --> File loaded: /var/www/invoiceplane/application/modules/setup/views/prerequisites.php
DEBUG - 2024-07-27 07:45:43 --> File loaded: /var/www/invoiceplane/application/modules/layout/views/setup.php
DEBUG - 2024-07-27 07:45:43 --> Total execution time: 0.0013
DEBUG - 2024-07-27 07:45:44 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:44 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:44 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:44 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:44 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:44 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:45 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:45 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:45 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:45 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:45 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:45 --> Layout MX_Controller Initialized
ERROR - 2024-07-27 07:45:45 --> Could not find the language line "cannot_connect_database_server"
ERROR - 2024-07-27 07:45:45 --> Could not find the language line "cannot_connect_database_server"
DEBUG - 2024-07-27 07:45:45 --> File loaded: /var/www/invoiceplane/application/modules/setup/views/configure_database.php
DEBUG - 2024-07-27 07:45:45 --> File loaded: /var/www/invoiceplane/application/modules/layout/views/setup.php
DEBUG - 2024-07-27 07:45:45 --> Total execution time: 0.0018
DEBUG - 2024-07-27 07:45:52 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:52 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:52 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:52 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:52 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:52 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:52 --> File loaded: /var/www/invoiceplane/application/modules/setup/views/configure_database.php
DEBUG - 2024-07-27 07:45:52 --> File loaded: /var/www/invoiceplane/application/modules/layout/views/setup.php
DEBUG - 2024-07-27 07:45:52 --> Total execution time: 0.0057
DEBUG - 2024-07-27 07:45:56 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:56 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:56 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:56 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:56 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:56 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:56 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:56 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:56 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:56 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:56 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:56 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:56 --> File loaded: /var/www/invoiceplane/application/modules/setup/views/install_tables.php
DEBUG - 2024-07-27 07:45:56 --> File loaded: /var/www/invoiceplane/application/modules/layout/views/setup.php
DEBUG - 2024-07-27 07:45:56 --> Total execution time: 0.0601
DEBUG - 2024-07-27 07:45:56 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:56 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:56 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:56 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:56 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:56 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:56 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:56 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:56 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:56 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:56 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:56 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:57 --> File loaded: /var/www/invoiceplane/application/modules/settings/models/Mdl_settings.php
DEBUG - 2024-07-27 07:45:57 --> File loaded: /var/www/invoiceplane/application/modules/settings/models/Mdl_versions.php
DEBUG - 2024-07-27 07:45:57 --> File loaded: /var/www/invoiceplane/application/modules/setup/views/upgrade_tables.php
DEBUG - 2024-07-27 07:45:57 --> File loaded: /var/www/invoiceplane/application/modules/layout/views/setup.php
DEBUG - 2024-07-27 07:45:57 --> Total execution time: 0.6321
DEBUG - 2024-07-27 07:45:58 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:58 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:58 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:58 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:58 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:58 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:58 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:45:58 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:45:58 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:45:58 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:45:58 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:45:58 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:45:58 --> File loaded: /var/www/invoiceplane/application/modules/users/models/Mdl_users.php
DEBUG - 2024-07-27 07:45:58 --> File loaded: /var/www/invoiceplane/application/modules/layout/views/alerts.php
DEBUG - 2024-07-27 07:45:58 --> File loaded: /var/www/invoiceplane/application/modules/setup/views/create_user.php
DEBUG - 2024-07-27 07:45:58 --> File loaded: /var/www/invoiceplane/application/modules/layout/views/setup.php
DEBUG - 2024-07-27 07:45:58 --> Total execution time: 0.0031
DEBUG - 2024-07-27 07:46:36 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:46:36 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:46:36 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:46:36 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:46:36 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:46:36 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:46:36 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:46:36 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:46:36 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:46:36 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:46:36 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:46:36 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:46:36 --> UTF-8 Support Enabled
DEBUG - 2024-07-27 07:46:36 --> Global POST, GET and COOKIE data sanitized
DEBUG - 2024-07-27 07:46:36 --> Setup MX_Controller Initialized
DEBUG - 2024-07-27 07:46:36 --> File loaded: /var/www/invoiceplane/application/modules/setup/models/Mdl_setup.php
DEBUG - 2024-07-27 07:46:36 --> File loaded: /var/www/invoiceplane/application/controllers/../modules/layout/controllers/Layout.php
DEBUG - 2024-07-27 07:46:36 --> Layout MX_Controller Initialized
DEBUG - 2024-07-27 07:46:36 --> File loaded: /var/www/invoiceplane/application/modules/setup/views/language.php
DEBUG - 2024-07-27 07:46:36 --> File loaded: /var/www/invoiceplane/application/modules/layout/views/setup.php
DEBUG - 2024-07-27 07:46:36 --> Total execution time: 0.0017

Nginx Config Block (Modified to remove site info):

server {
  listen 80;
  server_name billing.example.com;
  return 301 https://$host$request_uri;
}

server {
   listen 443 ssl;
   server_name billing.example.com;

   root /var/www/invoiceplane/;
   index index.php index.html;

  ssl_certificate /etc/letsencrypt/live/sitename/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/sitename/privkey.pem;

   access_log /var/log/nginx/invoiceplane_access.log;
   error_log /var/log/nginx/invoiceplane_error.log;

   location / {
       try_files $uri $uri/ /index.php?$query_string;
   }

   location ~ ^/(.+\.php)$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        include snippets/fastcgi-php.conf;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Any help or suggestions are greatly appreciated.

1 Like

Great question!

  • Open ipconfig.php
  • Add this variable: SESS_SAVE_PATH=
  • That path needs to be somewhere on your local system.

For example: My InvoicePlane is located at /var/www/domains/billing.invoiceplane.com/

The session save path will be something like:
/var/www/domains/billing.invoiceplane.com/storage/sessions

I had to create that “storage” directory and that “sessions” directory within storage
In my nginx config i made sure that no-one can reach that directory. No-one knows it exists and no-one should know it exists.

You shouldn’t be redirected back to the language selection page. That’s why you need that extra variable in your ipconfig.php

Tried a fresh installation with SESS_SAVE_PATH set to /var/www/ip/storage/sessions and created the directory, but I am still re-directed to the language selection after the user creation page.

1 Like

Ok, it’s still losing its sessiondata
I’ll post some code in couple of minutes

Open modules/setup/controllers/Setup.php
Find this code:

        if ($this->session->userdata('install_step') <> 'prerequisites') {
            redirect('setup/language');
        }

Right above that you’ll have to do something like:

print_r($this->session->userdata('install_step'));

Show the result here.
In the meantime check that directory you created for SESS_SAVE_PATH

Is there a file there? Or absolutely 0 files?