I am using a manjaro system and installed invoiceplan like that:
wget https://github.com/InvoicePlane/InvoicePlane/releases/download/v1.6.0/v1.6.0.zip
unzip v1.6.0.zip
cd ./InvoicePlane-1.6.0
docker-compose up -d
cp ipconfig.php.example ipconfig.php
I enabled extension=gd in /etc/php/php.ini. Also, i installed php-gd sudo pacman -S php-gd. Running Now i try to run composer install (in InvoicePlane-1.6.0 folder) with this error:
[user@system InvoicePlane-1.6.0]$ composer install
PHP Warning: PHP Startup: Unable to load dynamic library 'gd' (tried: /usr/lib/php/modules/gd (/usr/lib/php/modules/gd: cannot open shared object file: No such file or directory), /usr/lib/php/modules/gd.so (/usr/lib/php/modules/gd.so: undefined symbol: zend_unregister_ini_entries_ex)) in Unknown on line 0
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.
Problem 1
- Root composer.json requires PHP extension ext-gd * but it is missing from your system. Install or enable PHP's gd extension.
Problem 2
- mpdf/mpdf is locked to version v8.1.6 and an update of this package was not requested.
- mpdf/mpdf v8.1.6 requires ext-gd * -> it is missing from your system. Install or enable PHP's gd extension.
Problem 3
- setasign/fpdf is locked to version 1.8.6 and an update of this package was not requested.
- setasign/fpdf 1.8.6 requires ext-gd * -> it is missing from your system. Install or enable PHP's gd extension.
To enable extensions, verify that they are enabled in your .ini files:
- /etc/php/php.ini
You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode.
Alternatively, you can run Composer with `--ignore-platform-req=ext-gd` to temporarily ignore these required extensions.
php --ini shows the correct path:
PHP Warning: PHP Startup: Unable to load dynamic library 'gd' (tried: /usr/lib/php/modules/gd (/usr/lib/php/modules/gd: cannot open shared object file: No such file or directory), /usr/lib/php/modules/gd.so (/usr/lib/php/modules/gd.so: undefined symbol: zend_unregister_ini_entries_ex)) in Unknown on line 0
Configuration File (php.ini) Path: /etc/php
Loaded Configuration File: /etc/php/php.ini
Scan for additional .ini files in: /etc/php/conf.d
Additional .ini files parsed: (none)
Running composer install --ignore-platform-req=ext-gd leads to
[user@system InvoicePlane-1.6.0]$ composer install --ignore-platform-req=ext-gd
PHP Warning: PHP Startup: Unable to load dynamic library 'gd' (tried: /usr/lib/php/modules/gd (/usr/lib/php/modules/gd: cannot open shared object file: No such file or directory), /usr/lib/php/modules/gd.so (/usr/lib/php/modules/gd.so: undefined symbol: zend_unregister_ini_entries_ex)) in Unknown on line 0
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Package php-http/message-factory is abandoned, you should avoid using it. Use psr/http-factory instead.
Generating autoload files
18 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
So again Unable to load dynamic library 'gd'.
About the installation method: I want to run this inside a docker container (this has dependency reasons and thus is not optional).
So … by now I did the following:
Change the ipfnu.conf in resources/docker/nginx/ipfnu.conf to reflect the listening port on 8083 docker-compose up -d http://ipfnu.local:8083/ and ran through the setup
It completely installed InvoicePlane
I “entered” the php docker container: docker-compose exec -it --user=www-data php /bin/bash php --ini:
Ok, make it http://nuc.local:8083 and try again.
Check your /etc/hosts file, to see if nuc.local is there as well.
I saw in your screenshot that your .conf file was also pointing to nuc.local
tbh my hostname is not nuc.local but nuc. I can reach all my services with nuc:specific-port in browser. I removed the .local part in .conf and try to reach the weboverlay with nuc:8083 - no success. Again, all my other services are reachable under nuc:specific-port.
I’ve sent you 2 setups for your special url.
They’re .zip files so you can place them in the right directories locally.
Unfortunately I can’t make your setup work with just http://nuc:8083
I’ve made the .zips for you with http://nuc.local:8083
If anyone else wants to have a go at this user’s problem, feel free.
The problem with ext-gd is differently than I thought:
in the current Docker setup the composer isn’t installed.
The solution is:
Install composer in the current php-fpm Dockerfile (That’s an issue that needs to be taken care of in our InvoicePlane repository and in the new .zip file for Beta-3)
After cloning the repo or downloading the .zip run docker-compose up -d
After all containers are running: docker-compose exec -it --user=www-data php /bin/bash
Then run composer install (if you’ve cloned the repo, the .zip file has already ran composer install)
It will install the packages, including the mpdf package, which requires ext-gd