[BUG]: Installation fails with ' Interface "VDM\Joomla\Interfaces\PHPConfigurationCheckerInterface" not found ' #1174
Labels
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: joomla/Component-Builder#1174
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What Happened?
I attempted to install JCB by uploading the 5.0.3 version(tar.gz). I expected it to install without errors but instead I see:
An error has occurred.
Call stack is:
Function Location
1 () JROOT/tmp/install_66fc984c42faa/component-builder/libraries/vendor_jcb/VDM.Joomla/src/Abstraction/PHPConfigurationChecker.php:25
2 require() JROOT/tmp/install_66fc984c42faa/component-builder/ComponentbuilderInstallerPowerloader.php:58
3 Com_ComponentbuilderInstallerScript->{closure}() JROOT/tmp/install_66fc984c42faa/component-builder/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/PHPConfigurationChecker.php:24
Steps to reproduce the Bug
Start with Joomla 5.1.4. I have the recommended PHP settings and modules. Install Component-Builder-v5.0.3.tar.gz. View error.
Which Joomla version are you compiling in?
5.1.4
Which PHP version are you compiling in?
8.2.23
Which Joomla versions are you targeting?
5.1.4
Which PHP version are you targeting?
8.2.23
Which Web server is JCB running on?
Joomla Docker image. Apache 2 it seems.
Which Relational Database is JCB running on?
mysqlnd 8.2.23
Which OS is JCB running on?
Alpine linux
Which JCB version are you using?
5.0.3
Where in JCB did this issue occur?
Other
On which browsers did you encounter the issue?
Firefox
Additional Comments
No response
Please try to install JCB from Package: https://git.vdm.dev/joomla/pkg-component-builder/releases
The tar.gz version is https://git.vdm.dev/joomla/pkg-component-builder/archive/v5.0.3.tar.gz
Then my tested setup for Joomla in Docker:
I am using traefik, read more here.
I also normally add a
php.ini
file to the container since JCB is a fairly large component in relation to Joomla.Here you can read more on that: https://git.vdm.dev/joomla/Component-Builder/wiki/PHP-Settings
PS. note that I have a little bash script to manage all this for me called OctoJoom: https://git.vdm.dev/octoleo/octojoom
Thanks for this. I have not yet delved into comparing your Docker setup to mine. I did already adjust the PHP settings per the documentation. Installing from the file you mentioned got it hooked up to Joomla but I am noticing the languages seem to be amiss, as the menus are identified by their language identifier e.g. COM_COMPONENTBUILDER_MENU.
There was a warning after install:
Copy file failed
Package Install: There was an error installing an extension: joomla__Component-Builder__5.x.zip
danger
Error installing package.
I will certainly explore further according to the instructions you provided, unless you have a quick fix for the new problems.
Yeah, the component is not working at all.
Are you sure that it's the component at fault? JCB has been the backbone for hundreds of corporate development infrastructures, and while I understand you're having issues, dismissing it entirely based on setup difficulties isn't productive.
I've been working with JCB daily for the past 10 years, alongside many teams worldwide who use it in production environments. We have automated systems that deploy and test JCB on a daily basis, including compiling tests. Rest assured, the component is functioning as expected.
What could be happening is that your system setup has some unique characteristics or configurations that we're not aware of. Instead of saying "the component is not working at all," it would be far more helpful if you could provide detailed information about your environment and the specific steps you're taking. This way, we can work together to identify and resolve the issue.
I think you are taking this too personally. I'm not disrespecting this obviously valuable tool. I've tried it before a few years ago and I was impressed. I'm just stating that the furthest I got was that it almost installed, I saw a bunch of menu items that were just language codes. Later I clicked on them to test things and I got more errors. So the component was not working, as I said.
So in the spirit of what you suggest, here's my current Docker compose file. Thanks again for your help.
For the record, in my attempt to fix the copy error I tried fixing the permissions using AdminTools but it didn't work.
As for the specific steps I'm taking, I simply attempt to install the package file and then I get the copy error.
Copy file failed
Package Install: There was an error installing an extension: joomla__Component-Builder__5.x.zip
danger
Error installing package.
I tried "installing from folder" after that and had the same problem.
Okay I took your
docker-composer.yml
file and found one error... theJOOMLA_ADMIN_USERNAME
This file just as it is worked perfectly well for me.
Just change the
admin_user
toadminuser
to clear this error from the logs:Then I add the JCB package to the install env values with:
And it all worked and installed and compiled... hope this helps.
That username was actually edited by me because I didn't want it public here. I do have a working Joomla running in Docker now. Thanks for checking my docker setup though. That bit about the JOOMLA_EXTENSIONS_URLS is good to know. I have been doing work on my current installation already so I'm hoping I don't have to start from a fresh install just yet.
I am able to install other components by uploading a zip or gzip file, with no error. Are you able to install the package "pkg-component-builder-v5.0.3.tar.gz" using that method?
I found the solution.
According to this article https://stackoverflow.com/questions/62390727/docker-chown-doesnt-work-for-www-data-user-permissions-arent-changing the problem is the volume mounting - the volume preserves the permissions from outside the container; it is inheriting the host user's permissions. I did check that and it seemed that the user was properly set to www-data, but I finally did this then it worked:
chown -R www-data: /var/www/html
Before doing that I had to open up a shell within the docker container. First found the hash for it (f7896c83e0d3) using
docker container ls -a
then started the shell usingdocker exec -t -i f7896c83e0d3 /bin/bash
. Then did the chown function and installed the component.